Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему deadlock? / 25 сообщений из 37, страница 1 из 2
20.07.2006, 15:56
    #33867562
Почему deadlock?
Существует приложение, в котором удаляются записи из таблицьі 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
20.07.2006, 16:15
    #33867620
Randll
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
ДругаяТаняКакая может бьіть причина возникновения deadlock???
Попробую предположить что bitmap index.
...
Рейтинг: 0 / 0
20.07.2006, 16:17
    #33867628
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
с чего Вы взяли, что записи не пересекаются? Может вместо удаления к примеру писать id в лог. А потом проверить действительно ли нет пересечений...
...
Рейтинг: 0 / 0
20.07.2006, 16:17
    #33867629
Почему deadlock?
Randll ДругаяТаняКакая может бьіть причина возникновения deadlock???
Попробую предположить что bitmap index.
Нет, не используем.
...
Рейтинг: 0 / 0
20.07.2006, 16:19
    #33867638
Почему deadlock?
alex-lsс чего Вы взяли, что записи не пересекаются? Может вместо удаления к примеру писать id в лог. А потом проверить действительно ли нет пересечений...
потому что разбивание на куски происходит по первичному ключу таким образом 1-5000, 5001-10000, 10001-15000 и т.д.
...
Рейтинг: 0 / 0
20.07.2006, 16:25
    #33867667
AlAndreev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
А initrans и pctfree у таблицы PRACTICA и ее индексов какой???
...
Рейтинг: 0 / 0
20.07.2006, 16:26
    #33867673
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
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
20.07.2006, 16:28
    #33867680
Почему deadlock?
AlAndreevА initrans и pctfree у таблицы PRACTICA и ее индексов какой???
У таблицьі:
initrans = 2
pctfree=10
...
Рейтинг: 0 / 0
20.07.2006, 16:30
    #33867695
Почему deadlock?
ДругаяТаня AlAndreevА initrans и pctfree у таблицы PRACTICA и ее индексов какой???
У таблицьі:
initrans = 2
pctfree=10

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

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

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

а в общем случае, например, SRX!=S, ну или Адамс знает больше, чем металинк готов признать ;)
...
Рейтинг: 0 / 0
20.07.2006, 17:02
    #33867850
Я и ёжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
пять
...
Рейтинг: 0 / 0
20.07.2006, 17:06
    #33867867
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
Ааз 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
20.07.2006, 17:06
    #33867869
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
Я и ёжикпять
кто даст больше?
...
Рейтинг: 0 / 0
20.07.2006, 17:13
    #33867902
Я и ёжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
1) Ожидание разрешения Unique или Primary key ограничения.
2) Ожидание освобождения ITL-слота в блоке.
3) Ожидание освобождения фрагмента BITMAP индекса
4) Ожидание освобождения блокировки Main Free Lists сегмента при возврате блоков из TFL.
5) Ожидания чтения строки которая заблокирована транзакцией в prepared состоянии (распределенные транзакции)).
...
Рейтинг: 0 / 0
20.07.2006, 17:49
    #33868051
DВА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
Я и ёжик1) Ожидание разрешения Unique или Primary key ограничения.
2) Ожидание освобождения ITL-слота в блоке.
3) Ожидание освобождения фрагмента BITMAP индекса
4) Ожидание освобождения блокировки Main Free Lists сегмента при возврате блоков из TFL.
5) Ожидания чтения строки которая заблокирована транзакцией в prepared состоянии (распределенные транзакции)).
спасиб. про пункт 4 не знала :)
...
Рейтинг: 0 / 0
20.07.2006, 17:57
    #33868077
Ааз
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
А я не знал про пункт 5. Спасибо Ёжик :-)

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

Всего
...
Рейтинг: 0 / 0
04.10.2006, 17:42
    #34032723
Я и ёжик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
Вот тут у 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
04.10.2006, 18:01
    #34032797
Почему deadlock?
Я и ёжик

Вот про 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
04.10.2006, 18:06
    #34032819
kapelan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Почему deadlock?
any trigger on the table?
Pimary/foreign key?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Почему deadlock? / 25 сообщений из 37, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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