Договор № 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 блокировка.
Конкретная же запись блокируется логически - надо искать в службе блокировок ИБСО.
Я не вижу смысла в таких изысканиях. Если блокировка кому-то помешала, то информация об экземпляре уже есть. |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|