powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / deadlock при компиляции пакета
11 сообщений из 11, страница 1 из 1
deadlock при компиляции пакета
    #39517051
Фотография Pastic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
Есть джобы, которые с разной периодичностью запускают разные процедуры одного и того же пакета. Эти процедуры, запускаемые джобом, вставляют записи в таблицы. Поэтому при попытке перекомпилировать этот пакет (при выкладке новых изменений) происходит зависание пакета, которое заканчивается сообщением об ошибке ORA-04021: timeout occured while waiting to lock object или ORA-04020: deadlock detected while trying to lock object.

Список блокируемых объектов я смотрел в результатах следующего запроса:
Код: plsql
1.
2.
3.
4.
5.
6.
select unique c.owner, c.object_name, c.object_type, b.sid, b.serial#, b.status, b.osuser,
  b.machine, b.SQL_ID, vs.SQL_TEXT
from gv$locked_object a, gv$session b, dba_objects c, gv$sql vs
where a.session_id=b.sid and a.object_id=c.object_id(+) and b.SQL_ID=vs.SQL_ID(+)
  and b.STATUS = 'ACTIVE'
order by 1, 2;


Он показал, что всё зависало на конструкции вида insert into ... select ...

Тогда я переделал insert into ... select ... в цикл for i in (select ...), внутри которого происходит insert (...) values(...); commit;

Это привело к тому, что вышеуказанный sql-запрос стал возвращать пустой набор данных, но пакет также виснет при компиляции, как и с вариантом insert into ... select ...

Тогда я решил попробовать применить решение с forall, описанное по ссылке http://psoug.org/snippet/FORALL-Insert_499.htm, но оно почему-то не работает: пишет об ошибке ORA-00947: not enough values на строку insert into ... values s_array(i);

Как можно решить эту проблему?
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517097
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не могу заварить чай в дуршлаге. Засыпаю заварку, заливаю кипятком, но вода вытекает.
Я попробовал класть чай в пакетиках - не помогает.
А чай в упаковке вообще не влазит.

Как можно решить эту проблему?
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517236
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pastic,

отрубаешь джобы, копмилишь, рекомпилишь все инвалиды, врубаешь джобы.
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517237
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EDUARD_2,

А если ТС имел ввиду, что если поменять код в пакете, то джобы начинают валится по дедлоку?
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517240
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевА если ТС имел ввиду, что если поменять код в пакете, то джобы начинают валится по дедлоку?Это было бы уже не попыткой:
Pasticпри попытке перекомпилировать
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517242
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Elic,

Ну если заставили вернуть взад и больше так не делать, то именно ей.
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517245
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, не может же хирург паяющий по живому удивляться, что если он подменяет пакет то использующему его джобу в этот момент плохеет.
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517248
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и конструкция
авторinsert into ... select ...
как
авторпопытка перекомпилировать этот пакет (при выкладке новых изменений)
слабо тянет
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517250
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но мой хрустальный шар замутнился и потрескался весь - не вижу очевидного.
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517277
EDUARD_2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевА если ТС имел ввиду, что если поменять код в пакете, то джобы начинают валится по дедлоку?

В чем разница? не пойму? Чтоб код в пакете поменялся, нужно его скомпилить, чтобы скомпилить - нужно отрубить всех, кто использует этот пакет и другие зависимости. - джобы и приложения.
...
Рейтинг: 0 / 0
deadlock при компиляции пакета
    #39517289
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей АрсеньевНу если заставили вернуть взад и больше так не делать, то именно ей.Сергей АрсеньевНу, не может же хирург паяющий по живому удивляться, что если он подменяет пакет то использующему его джобу в этот момент плохеет.Складывается впечатление, что ты не в теме ORA-04021
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / deadlock при компиляции пакета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]