Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Виснет пакет при исполнении / 17 сообщений из 17, страница 1 из 1
03.10.2019, 14:53
    #39871169
lleopolld1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
Код: plaintext
1.
2.
3.
4.
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE	11.2.0.1.0	Production
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production

После старта зависает на исполнении(и toad,и sqlplus). Другие процедуры пакета отрабатывают.
Код: sql
1.
2.
3.
begin
MMM.TOP.P_BUILD;
end;




Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
SELECT s.sid,
l.lock_type,
l.mode_held,
l.mode_requested,
l.lock_id1
FROM   dba_lock_internal l,
v$session s
WHERE s.sid = l.session_id
AND UPPER(l.lock_id1) LIKE '%MMM%'
AND l.lock_type = 'Body Definition Lock';


sid    lock_type                  mode_held  mode_requested  lock_id1
---------------------------------------------------------------------------------
15	Body Definition Lock	   Null	       None	     MMM.TOP




В представлении dba_ddl_locks то видно следующее:

SELECT * from   dba_ddl_locks where owner='MMM'; 

SESSION_ID OWNER NAME        TYPE                       MODE_HELD      MODE_REQUESTED
---------------------------------------------------------------------------------
15          MMM	 TOP	     Body	                 Null	       None
15	    MMM  TOP     Table/Procedure/Type	         Null          None
  



select EVENT from V$SESSION_WAIT where SID='15'; 

EVENT
---------------------------------------------------------------------------------
PX Deq Credit: send blkd

Blocking_Session/Final_Blocking_Session - пусты




Как можно пофиксить данное зависание?

Кстати,перекомпиляция проходит быстро и гладко
Код: sql
1.
2.
3.
ALTER PACKAGE MMM.TOP COMPILE PACKAGE; 
   
ALTER PACKAGE MMM.TOP COMPILE BODY; 
...
Рейтинг: 0 / 0
03.10.2019, 15:21
    #39871186
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1Как можно пофиксить данное зависание?Заменить тело процедуры на null;
...
Рейтинг: 0 / 0
03.10.2019, 16:23
    #39871222
lleopolld1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
-2-, Что значит заменить на null? каким образом?
...
Рейтинг: 0 / 0
03.10.2019, 16:28
    #39871227
mefman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1-2-, Что значит заменить на null? каким образом?
а что значит виснет?
...
Рейтинг: 0 / 0
03.10.2019, 16:34
    #39871233
maverick2104
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1,

Если в Вашем понимание "виснет" означает бесконечное исполнение процедуры , то копайте в сторону качеcтва кода , я почти уверен что проблема именно в этом . У самого было такое , оказалось что процедура входила в бесконечный loop.
...
Рейтинг: 0 / 0
04.10.2019, 09:50
    #39871482
lleopolld1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
maverick2104,
mefman,
виснет - бесконечное выполнение,да. Хотя в sqlplus'e я дождался,что сессия была просто убита и процесс завершился.
Вряд ли дело в коде,так как дело в том,что эта же процедура, и пакет в целом, работает на исходной бд. Здесь я развернул бд на новом хосте и все содержимое пакета работает,за исключение этой процедуры
...
Рейтинг: 0 / 0
04.10.2019, 10:01
    #39871488
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1Вряд ли дело в коде,так как дело в том,что эта же процедура, и пакет в целом, работает на исходной бд.
Вы БД копию сделали исходной по данным?
...
Рейтинг: 0 / 0
04.10.2019, 10:17
    #39871496
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
alex-lsпо данным?

По db-link-ам и еще черти по чему, что в проде используется.

Все равно придется залезать в "черный ящик".
...
Рейтинг: 0 / 0
04.10.2019, 10:20
    #39871499
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1Вряд ли дело в коде

Так может просто продемонстрируете код процедуры?
...
Рейтинг: 0 / 0
04.10.2019, 11:05
    #39871516
lleopolld1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
alex-ls, expdp/impdp
...
Рейтинг: 0 / 0
14.10.2019, 08:40
    #39875773
lleopolld1
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
env, я же говорю,что на исходной бд тело процедруы идентичное и отрабатывает быстро достаточно.
...
Рейтинг: 0 / 0
14.10.2019, 08:51
    #39875776
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
Остается пинать по покрышкам и вытряхивать пепельницу.
Или таки уже начать отладку.
...
Рейтинг: 0 / 0
14.10.2019, 09:05
    #39875782
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1я же говорю,что на исходной бд тело процедруы идентичное и отрабатывает быстро достаточно.Это же просто убийственный аргумент, которому должно всех убедить, что ты сделал всё возможное для понимания ситуации, не так ли?
Существует множество механизмов мониторинга, но тебе же это не интересно, тебе нужна "золотая пуля"? Иначе с чего тебе месяцами плакаться по форумам?
...
Рейтинг: 0 / 0
14.10.2019, 10:59
    #39875835
Lary Denis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1я же говорю,что на исходной бд тело процедруы идентичное и отрабатывает быстро достаточно.


Как вариант решения, использовать свой пакет/процедуру на "исходной бд". Говорят, там все хорошо.
...
Рейтинг: 0 / 0
14.10.2019, 12:42
    #39875920
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
Выполнить пошаговую отладку процедуры. Так Вы увидите тот блок, который зависает. Или найдете цикл, из которого нет выхода.
lleopolld1... на исходной бд тело процедруы идентичное и отрабатывает быстро достаточно.
Вы знаете, оказывается бывают процедуры, которые и на той же базе неделю назад отрабатывали на ура, а сейчас виснут.
И причин тому великое множество.
...
Рейтинг: 0 / 0
14.10.2019, 13:19
    #39875951
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
Александр СпелицинВыполнить пошаговую отладку процедуры.Как микроскопом искать упавший метеорит.
...
Рейтинг: 0 / 0
14.10.2019, 17:03
    #39876114
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Виснет пакет при исполнении
lleopolld1,

Примитивный пример на пальцах, при котором "идентичное тело процедуры" будет висеть при кривых входных данных.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
drop table dropme_t;

create table dropme_t (
  n number,
  k number
);

create or replace procedure dropme_p as
  l_m number;
begin
  for v in (select n, k from dropme_t) loop
    l_m := v.k;
    while not (l_m - v.n) = 0 loop
      dbms_output.put_line(l_m);
      l_m := l_m - 1;
    end loop;
  end loop;
end;
/

insert into dropme_t values (1, 3);

commit;

set serveroutput on;
begin
  dbms_output.enable;
  dropme_p;
end;
/

insert into dropme_t values (-1, -3);

commit;

begin
  dropme_p;
end;
/



dbms_output добавлен для падения по переполнению буфера. Если закомментить, получишь "зависающую" процедуру на втором наборе данных.

И, да, это кривой код. Так что покажите уже свой.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Виснет пакет при исполнении / 17 сообщений из 17, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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