Договор № C/xxx/xxx-xx заблокирован. 
	   
	     | 
   
 
	
		| Предыдущая тема :: Следующая тема   | 
	 
	
	
		| Автор | 
		Сообщение | 
	 
	
		Sant Участник со стажем
 
  Вступление в Клуб: 19.08.2013
  | 
		
			
				 Вт Июл 01, 2014 08:00   Договор № C/xxx/xxx-xx заблокирован. | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Доброго времени суток!
 
Если по кредитному договору запущена операция "Распределение погашения задолженностей (Alt+G)", то это операция блокирует эту договор и когда запускаем эту операцию из другой сессии по этому договору то получаем сообщению "Договор № C/xxx/xxx-xx заблокирован.".
 
Как найти сессию которую заблокировал эту договор? | 
			 
		  | 
	 
	
		  | 
	 
	
		devor Профи
 
  Вступление в Клуб: 13.02.2012
  | 
		
			
				 Вт Июл 01, 2014 08:32   Re: Договор № C/xxx/xxx-xx заблокирован. | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				 	  | Sant пишет: | 	 		  Доброго времени суток!
 
Если по кредитному договору запущена операция "Распределение погашения задолженностей (Alt+G)", то это операция блокирует эту договор и когда запускаем эту операцию из другой сессии по этому договору то получаем сообщению "Договор № C/xxx/xxx-xx заблокирован.".
 
Как найти сессию которую заблокировал эту договор? | 	  
 
 
Навигатором если запустить операцию, то он скажет все что надо - и пользователя, и рабочее место, и сессию.
 
Программно можно поймать ошибку с полным текстом вот так:
 
 
 	  | Код: | 	 		  
 
begin
 
    rtl.chk_lock(ID_экземляра, null);
 
end;
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		Sant Участник со стажем
 
  Вступление в Клуб: 19.08.2013
  | 
		
			
				 Вт Июл 01, 2014 08:46   Re: Договор № C/xxx/xxx-xx заблокирован. | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | devor пишет: | 	 		  
 
Навигатором если запустить операцию, то он скажет все что надо - и пользователя, и рабочее место, и сессию.
 
 | 	  
 
 
Навигатором запускаю получаю только эту сообщению:
 
 	  | Код: | 	 		  
 
Договор № C/001-00/-001 заблокирован.
 
 | 	  
 
 	  | Код: | 	 		  
 
ORA-20300: APP-PR_CRED.DISTR_DEBT_DOG: Договор № C/001-00/-001 заблокирован.
 
 
ORA-06512: на  "IBS.MESSAGE", line 50
 
 
ORA-06512: на  "IBS.Z$PR_CRED_DISTR_DEBT_DOG", line 73
 
 
ORA-06512: на  "IBS.Z$PR_CRED_DISTR_DEBT_DOG", line 902
 
 
ORA-06512: на  "IBS.Z$PR_CRED_DISTR_DEBT_DOG_E", line 91
 
 
ORA-06512: на  "IBS.Z$U$480528203", line 1566
 
 
ORA-06512: на  line 1
 
 
BEGIN
 
 
DECLARE
 
 
   R VARCHAR2(1);
 
 
BEGIN
 
 
   $$$.Z$U$480528203.S(?);
 
 
   $$$.Z$U$480528203.P(?,R,?);
 
 
   IF R='1' THEN
 
 
      ?:=$$$.Z$U$480528203.G(R);
 
 
   ELSE
 
 
      R:='1';
 
 
   END IF;
 
 
   ?:=R;
 
 
   ?:=$$$.EXECUTOR.GET_DEBUG_TEXT('B');
 
 
END;
 
 
END;
 
 | 	  
 
 
 	  | devor пишет: | 	 		  
 
Программно можно поймать ошибку с полным текстом вот так:
 
 	  | Код: | 	 		  
 
begin
 
    rtl.chk_lock(ID_экземляра, null);
 
end;
 
 | 	 
  | 	  
 
 
 
 	  | Код: | 	 		  
 
LOCK-RESOURCE_BUSY:
 
Экземпляр [406868484]
 
блокирован, тип
 
[KRED_PERS]
 
Продолжить загрузку
 
оперции?
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		devor Профи
 
  Вступление в Клуб: 13.02.2012
  | 
		
			
				 Вт Июл 01, 2014 10:49    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Значит блокировка не логическая, а физическая.
 
 	  | Код: | 	 		  
 
SELECT * 
 
FROM v$lock v, dba_objects d 
 
WHERE v.id1 = d.object_id 
 
   AND d.object_name = 'Z#PR_CRED'
 
 | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		Sant Участник со стажем
 
  Вступление в Клуб: 19.08.2013
  | 
		
			
				 Вт Июл 01, 2014 11:13    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | devor пишет: | 	 		  Значит блокировка не логическая, а физическая.
 
 	  | Код: | 	 		  
 
SELECT * 
 
FROM v$lock v, dba_objects d 
 
WHERE v.id1 = d.object_id 
 
   AND d.object_name = 'Z#PR_CRED'
 
 | 	 
  | 	  
 
 
Спасибо, devor.
 
Можно как нибудь модифицировать запрос чтобы ввести номер договора или ид из таблицы Z#PR_CRED ? | 
			 
		  | 
	 
	
		  | 
	 
	
		Reddom Участник со стажем
 
  Вступление в Клуб: 25.01.2013
  | 
		
			
				 Чт Июл 03, 2014 15:22    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Sant пишет: | 	 		  
 
Можно как нибудь модифицировать запрос чтобы ввести номер договора или ид из таблицы Z#PR_CRED ? | 	  
 
 
Не совсем понятно, зачем искать блокировку у объекта? Блокировки чаще смотрят от сессии, так как обычно попадая на блокировку вы уже имеете sid.
 
 	  | Код: | 	 		  | select SID from v$session where AUDSID = userenv('SESSIONID') | 	  
 
Или
 
 	  | Код: | 	 		  | to_number(substr(rtl.session_id,1,4), 'XXXX') | 	  
 
 
Попробуйте что-нибудь с таким скриптом:
 
 	  | Код: | 	 		  select s.sid,
 
       pc.id,
 
       pc.c_num_dog
 
  from v$lock v, dba_objects d, v$session s, Z#PR_CRED pc
 
 where v.id1 = d.object_id
 
   and d.object_name = 'Z#PR_CRED'
 
   and s.SID = v.sid
 
   and row_wait_obj# != -1
 
   and pc.rowid = dbms_rowid.rowid_create(1,
 
                                          d.object_id,
 
                                          row_wait_file#,
 
                                          row_wait_block#,
 
                                          row_wait_row#); | 	 
  | 
			 
		  | 
	 
	
		  | 
	 
	
		devor Профи
 
  Вступление в Клуб: 13.02.2012
  | 
		
			
				 Пт Июл 04, 2014 05:11    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Reddom пишет: | 	 		  
 
Попробуйте что-нибудь с таким скриптом:
 
[code]select s.sid,
 
       pc.id,
 
       pc.c_num_dog
 
  from v$lock v, dba_objects d, v$session s, Z#PR_CRED pc
 
 where v.id1 = d.object_id
 
   and d.object_name = 'Z#PR_CRED'
 
   and s.SID = v.sid
 
   and row_wait_obj# != -1
 
   and pc.rowid = dbms_rowid.rowid_create(1,
 
                                          d.object_id,
 
                                          row_wait_file#,
 
                                          row_wait_block#,
 
                                          row_wait_row#); | 	  
 
Это тоже самое, что представление "1.4 User Sessions Locks" в Системных журналах.
 
Для случая автора не поможет. На Z#PR_CRED будет TM блокировка.
 
Конкретная же запись блокируется логически - надо искать в службе блокировок ИБСО.
 
 
Я не вижу смысла в таких изысканиях. Если блокировка кому-то помешала, то информация об экземпляре уже есть. | 
			 
		  | 
	 
	
		  | 
	 
	
		 | 
	 
 
  
	 
	    
	   | 
	
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
  | 
   
 
		 |