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

Откуда:
Сообщений: 442
Имеется самая обычная функция:
CREATE OR REPLACE FUNCTION set_name_schema
   RETURN VARCHAR2
AS
BEGIN
   RETURN UPPER ('askp');
END set_name_schema;
/

Имеются процедуры её использующие и определённые как IS PRAGMA AUTONOMOUS_TRANSACTION;
Процедуры вызываются из триггеров на события таблици, в итоге получаю сообщение вида
ORA-04021: timeout occurred while waiting to lock object SET_NAME_SCHEMA
Для себя хочу понять почему происходит блокировка функции, из-за её вызова в в процедурах PRAGMA AUTONOMOUS_TRANSACTION ?

И как можно победить данную проблему?


-----------------------------------------------------------
Информация – это то, чем я пользуюсь для принятия решений.

Бернерс-Ли
25 июл 07, 09:19    [4432141]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
Elic
Member

Откуда:
Сообщений: 29991
Заколебал

из-за её вызова в в процедурах PRAGMA AUTONOMOUS_TRANSACTION ?
Нет.
25 июл 07, 09:26    [4432172]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64002
Блог
копосов нв
И как можно победить данную проблему?

SoftIce + HexEditor
25 июл 07, 09:27    [4432175]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
Elic
Member

Откуда:
Сообщений: 29991
softwarer
копосов нв
И как можно победить данную проблему?
SoftIce + HexEditor
Картинка с другого сайта.
А если сервер не мастдай? :)
25 июл 07, 09:30    [4432188]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 64002
Блог
Я почему-то уверен....
25 июл 07, 09:37    [4432227]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Elic
Заколебал

из-за её вызова в в процедурах PRAGMA AUTONOMOUS_TRANSACTION ?
Нет.



>Отложить grant "на потом" в виде job-а.

Использую не для grant'a!
В этой части топика я об этом не говорил, иначе спросил в топике по ссылке

Вот пример:
CREATE OR REPLACE PROCEDURE ASKP.pr_delete_user (v_username IN VARCHAR2)
IS
   PRAGMA AUTONOMOUS_TRANSACTION;
   v_count   INTEGER := 0;
BEGIN
   SELECT COUNT (*)
     INTO v_count
     FROM dba_users u
    WHERE UPPER (username) = UPPER (v_username);

   IF (    v_username IS NOT NULL
       AND v_count != 0
       AND UPPER (v_username) <> UPPER ('askp')              --set_name_schema
      )
   THEN
      EXECUTE IMMEDIATE 'drop user "' || UPPER (v_username) || '"';
   END IF;
END;
/
25 июл 07, 09:57    [4432339]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
softwarer
копосов нв
И как можно победить данную проблему?

SoftIce + HexEditor


ага, отладку на уровне ядра я сделал первым делом ...
25 июл 07, 10:02    [4432367]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
Elic
Member

Откуда:
Сообщений: 29991
копосов нв
Elic
Отложить grant "на потом" в виде job-а.
Использую не для grant'a!
Без разницы. По шаблону додумать сам не можешь?

А вообще, пользуйся ролями. Именно эта проблема уйдёт.
25 июл 07, 10:16    [4432442]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
>Додумывать ...

лучше укажите, что по этому поводу прочитать, т.к. додумать можно всё что угодно!

-----------------------------------------------------------
Информация – это то, чем я пользуюсь для принятия решений.

Бернерс-Ли
25 июл 07, 10:22    [4432472]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
Elic
Member

Откуда:
Сообщений: 29991
копосов нв
>Додумывать ...

лучше укажите, что по этому поводу прочитать, т.к. додумать можно всё что угодно!
Мля :) "Отложить drop ..."
25 июл 07, 10:24    [4432494]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Elic
копосов нв
>Додумывать ...

лучше укажите, что по этому поводу прочитать, т.к. додумать можно всё что угодно!
Мля :) "Отложить drop ..."


ГДЕ НАПИСАНО О ПРИЧИНЕ БЛОКИРОВКИ ОБЪЕКТА ПРИ DROP В ДИНАМИЧ. SQL!!!
Будьте добры ответьте, где можно прочитать, более авторитетную и официальную документацию.
25 июл 07, 10:43    [4432636]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
Elic
Member

Откуда:
Сообщений: 29991
копосов нв
ГДЕ НАПИСАНО О ПРИЧИНЕ БЛОКИРОВКИ ОБЪЕКТА ПРИ DROP В ДИНАМИЧ. SQL!!!
Не надо орать. Динамический SQL тут причём только потому, что без него не сделать DDL.
RTFM DDL Locks (FAQ)
25 июл 07, 12:55    [4433780]     Ответить | Цитировать Сообщить модератору
 Re: как избавиться от блокировки функции ...  [new]
копосов нв
Member

Откуда:
Сообщений: 442
Elic
копосов нв
ГДЕ НАПИСАНО О ПРИЧИНЕ БЛОКИРОВКИ ОБЪЕКТА ПРИ DROP В ДИНАМИЧ. SQL!!!
Не надо орать. Динамический SQL тут причём только потому, что без него не сделать DDL.
RTFM DDL Locks (FAQ)


2 Elic
Спасибо! Буду вникать ...
25 июл 07, 15:09    [4434804]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить