powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему deadlock?
25 сообщений из 37, страница 1 из 2
Почему deadlock?
    #33867562
Существует приложение, в котором удаляются записи из таблицьі Pratica.
Pratica_id - primary key.
Для удаления используется 4 job, каждьій из которьіх удаляет свои записи (множества записей, которьіе не пересекаются).

Какая может бьіть причина возникновения deadlock???

Версия - Oracle 10.2.0.2.0
Код: plaintext
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.
DEADLOCK DETECTED
[Transaction Deadlock]
Current SQL statement for this session:
DELETE FROM PRATICA A WHERE A.PRATICA_ID IN ( SELECT B.NUM_PRATICA FROM DATA_TO_LOAD B WHERE B.ID_NUM BETWEEN :B2 AND :B1 )


----- PL/SQL Call Stack -----
object line object
handle number name
7000000cce2dd60  391  package body MSCMODEL.LOAD_RAPPORTO_CA
7000000cd789e80  2  anonymous block
7000000cb6d00e0  132  package body MSCUTIL.JOB_APPLIER
7000000cb6d00e0  173  package body MSCUTIL.JOB_APPLIER
7000000cb6d00e0  206  package body MSCUTIL.JOB_APPLIER
7000000ccc8f088  2  anonymous block
Deadlock graph:

---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX- 00170006 -0000b09b  22   137  X  24   144  S
TX- 00150000 -0000aeb5  24   144  X  23   141  S
TX-0007000c-000425f0  23   141  X  22   137  S
session  137 : DID  0001 - 0016 -0000031A session  144 : DID  0001 - 0018 -0000023F
session  144 : DID  0001 - 0018 -0000023F session  141 : DID  0001 - 0017 -000002B8
session  141 : DID  0001 - 0017 -000002B8 session  137 : DID  0001 - 0016 -0000031A
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867620
Randll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДругаяТаняКакая может бьіть причина возникновения deadlock???
Попробую предположить что bitmap index.
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867628
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с чего Вы взяли, что записи не пересекаются? Может вместо удаления к примеру писать id в лог. А потом проверить действительно ли нет пересечений...
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867629
Randll ДругаяТаняКакая может бьіть причина возникновения deadlock???
Попробую предположить что bitmap index.
Нет, не используем.
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867638
alex-lsс чего Вы взяли, что записи не пересекаются? Может вместо удаления к примеру писать id в лог. А потом проверить действительно ли нет пересечений...
потому что разбивание на куски происходит по первичному ключу таким образом 1-5000, 5001-10000, 10001-15000 и т.д.
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867667
AlAndreev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А initrans и pctfree у таблицы PRACTICA и ее индексов какой???
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867673
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
When a table's INITRANS is set too low , the block is full with data, and
there are many concurrent DML's occurring on rows within the block, one may
see a Share Lock being requested when doing a DML. To my knowledge, this
is only time we grab the SHARED lock. Instead of waiting for a lock, this
process is waiting for some extra space or a release of an INITRANS within
the transaction layer of the block.
See Note 62354.1 TX Transaction locks - Example wait scenarios
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867680
AlAndreevА initrans и pctfree у таблицы PRACTICA и ее индексов какой???
У таблицьі:
initrans = 2
pctfree=10
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867695
ДругаяТаня AlAndreevА initrans и pctfree у таблицы PRACTICA и ее индексов какой???
У таблицьі:
initrans = 2
pctfree=10

Т.е. стоит увеличить initrans? А какое значение установить?
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867702
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из того, что ID_NUM разбито на непересекающиеся диапазоны, в общем случае не следует, что NUM_PRATICA придерживается того же разбиения.
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867741
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerИз того, что ID_NUM разбито на непересекающиеся диапазоны, в общем случае не следует, что NUM_PRATICA придерживается того же разбиения.
то, что разбиение не виновато следует из типа блокировки - SHARED (S)
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867752
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DВАTo my knowledge, this is only time we grab the SHARED lock.Ната, откуда дровишки? Стив Адамс знает 4 случая :-)

Всего
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867760
softwarerИз того, что ID_NUM разбито на непересекающиеся диапазоны, в общем случае не следует, что NUM_PRATICA придерживается того же разбиения.
Да, конечно, в общем случае не следует. Но тут логика такая, что NUM_PRATICA в таблице data_to_load - единственное значение.
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867801
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааз DВАTo my knowledge, this is only time we grab the SHARED lock.Ната, откуда дровишки? Стив Адамс знает 4 случая :-)

Всего
цитата :)

а в общем случае, например, SRX!=S, ну или Адамс знает больше, чем металинк готов признать ;)
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867850
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пять
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867867
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааз DВАTo my knowledge, this is only time we grab the SHARED lock.Ната, откуда дровишки? Стив Адамс знает 4 случая :-)
Всего
Other Scenarios
~~~~~~~~~~~~~~~
There are other wait scenarios which can result in a SHARE mode wait for a TX
lock but these are rare compared to the examples given above.
Eg: If a session wants to read a row locked by a transaction in a PREPARED
state then it will wait on the relevant TX lock in SHARE mode (REQUEST=4).
As a PREPARED transaction should COMMIT , ROLLBACK or go to an in-doubt
state very soon after the prepare this is not generally noticeable..

--------------------------------------------------------------------------
раз уж заинтриговали, оч хочется узнать, что к этому может добавить Адамс :)
плиз...
:)
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867869
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и ёжикпять
кто даст больше?
...
Рейтинг: 0 / 0
Почему deadlock?
    #33867902
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Ожидание разрешения Unique или Primary key ограничения.
2) Ожидание освобождения ITL-слота в блоке.
3) Ожидание освобождения фрагмента BITMAP индекса
4) Ожидание освобождения блокировки Main Free Lists сегмента при возврате блоков из TFL.
5) Ожидания чтения строки которая заблокирована транзакцией в prepared состоянии (распределенные транзакции)).
...
Рейтинг: 0 / 0
Почему deadlock?
    #33868051
Фотография DВА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и ёжик1) Ожидание разрешения Unique или Primary key ограничения.
2) Ожидание освобождения ITL-слота в блоке.
3) Ожидание освобождения фрагмента BITMAP индекса
4) Ожидание освобождения блокировки Main Free Lists сегмента при возврате блоков из TFL.
5) Ожидания чтения строки которая заблокирована транзакцией в prepared состоянии (распределенные транзакции)).
спасиб. про пункт 4 не знала :)
...
Рейтинг: 0 / 0
Почему deadlock?
    #33868077
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я не знал про пункт 5. Спасибо Ёжик :-)

Всего
...
Рейтинг: 0 / 0
Почему deadlock?
    #33868096
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АазА я не знал про пункт 5. Спасибо Ёжик :-)
Засыпал раньше чем дочитывал ноту 62354.1 до конца? ;)
...
Рейтинг: 0 / 0
Почему deadlock?
    #33868136
Фотография Ааз
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я и ёжикЗасыпал раньше чем дочитывал ноту 62354.1 до конца? ;)В практике не встречал, вот, видимо, и не отложилось. Про 4-й пункт от Стива на его семинаре узнал (действительно экзотика, хотя тест-кеКс Стив демонстрировал).

Всего
...
Рейтинг: 0 / 0
Почему deadlock?
    #34032723
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот тут у Kyle Hayley встретил упоминание 6 случая

Kyle Hayley 'Waits Defined'
Difficult – uses modifying different data
1)ITL
2)Unique Key
3)Bitmap Index

Rare
4)Read only Tablespace
5)Free Lists
6)Two phase commit

Вот про 4) кто ни будь может, что сказать, что имеется ввиду?

Andrei Kiselev
--
The views expressed are my own and not necessarily those of my hedgehog
...
Рейтинг: 0 / 0
Почему deadlock?
    #34032797
Я и ёжик

Вот про 4) кто ни будь может, что сказать, что имеется ввиду?
Возможно это:

Session 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> create table t(n number) tablespace sample;
 
Table created.
 
SQL> insert into t values( 1 );
 
 1  row created.

SQL>
Session 2
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> select sid from v$mystat where rownum= 1 ;
 
       SID
----------
         11 
 
SQL> alter tablespace users read only;
-- висим, причем пофиг, какое TS переводили в read only - users или sample
 
Session 1
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> select sid,type,lmode,request from v$lock where sid= 11 ;
 
       SID TY      LMODE    REQUEST
---------- -- ---------- ----------
         11  TX           6            0 
         11  TX           0            4 
         11  TT           5            0 
         11  AT           6            0 
         11  IS           4            0 
 
SQL>
...
Рейтинг: 0 / 0
Почему deadlock?
    #34032819
kapelan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
any trigger on the table?
Pimary/foreign key?
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему deadlock?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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