Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 DBA_LOCK/DBA_LOCK_INTERNAL LOCK_ID  [new]
Блокер
Guest
В DBA_LOCK, так же как и в DBA_LOCK_INTERNAL имеются колонки
LOCK_ID1
LOCK_ID2

В документации они описываются как
Type-specific lock identifier, part 1
Type-specific lock identifier, part 2

Где есть описание их значений для различных lock type?

Особенно интересно, что находится в LOCK_ID1 для 'PL/SQL User Lock'?

(Работавшие ночью процессы повисли, ожидая такую блокировку, хочется узнать что конкретно было заблокировано)?
13 сен 07, 18:00    [4665166]     Ответить | Цитировать Сообщить модератору
 Re: DBA_LOCK/DBA_LOCK_INTERNAL LOCK_ID  [new]
Elic
Member

Откуда:
Сообщений: 29976
Блокер
что находится в LOCK_ID1 для 'PL/SQL User Lock'?
dbms_lock.request(id=>
dbms_lock_allocated.lockid
13 сен 07, 18:13    [4665282]     Ответить | Цитировать Сообщить модератору
 Re: DBA_LOCK/DBA_LOCK_INTERNAL LOCK_ID  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18339
SQL> select * from dba_lock where session_id=(select t.SID from v$mystat t where rownum=1);

SESSION_ID LOCK_TYPE                  MODE_HELD                                MODE_REQUESTED                           LOCK_ID1                                 LOCK_ID2                                 LAST_CONVERT BLOCKING_OTHERS
---------- -------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ------------ ----------------------------------------
       129 PL/SQL User Lock           Exclusive                                None                                     1073741824                               0                                                  97 Not Blocking

SQL> declare
  2    l_handle varchar2(128);
  3    l_result number;
  4  begin
  5    dbms_lock.allocate_unique('MyFavoriteLock',l_handle);
  6    l_result := dbms_lock.request(l_handle);
  7  end;
  8  /

PL/SQL procedure successfully completed

SQL> select * from dba_lock where session_id=(select t.SID from v$mystat t where rownum=1);

SESSION_ID LOCK_TYPE                  MODE_HELD                                MODE_REQUESTED                           LOCK_ID1                                 LOCK_ID2                                 LAST_CONVERT BLOCKING_OTHERS
---------- -------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ---------------------------------------- ------------ ----------------------------------------
       129 PL/SQL User Lock           Exclusive                                None                                     1073741824                               0                                                  98 Not Blocking

SQL> 
Соответственно, ID1 для данного вида блокировок - lock_id.
За подробностями в доку, в спецификацию пакета dbms_lock и к программистам.
13 сен 07, 18:16    [4665307]     Ответить | Цитировать Сообщить модератору
 Re: DBA_LOCK/DBA_LOCK_INTERNAL LOCK_ID  [new]
Блокер
Guest
Elic,
andrey_anonymous,
спасибо.

andrey_anonymous
...
Соответственно, ID1 для данного вида блокировок - lock_id.
За подробностями в доку, в спецификацию пакета dbms_lock и к программистам.

Жаль-жаль. Что-то такое и подозревал, как раз тот вариант, который сложнее найти.
13 сен 07, 18:26    [4665375]     Ответить | Цитировать Сообщить модератору
 Re: DBA_LOCK/DBA_LOCK_INTERNAL LOCK_ID  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18339
Блокер
Elic,
andrey_anonymous,
спасибо.

Сорри, я сегодня, в день программистов, похоже отмечаю день опечаток, ошибок, ляпов и багов.
Повторно запустив свой тест в той же сессии, я получил две непустых выборки из dba_locks, что сделало бессмысленным все демо.
Надеюсь, что читатели учтут этот момент - первый select из dba_locks строк возвращать не должен.
13 сен 07, 19:03    [4665547]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить