Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Таблица Deadlock dlconn содержит только 1 половину дедлока / 2 сообщений из 2, страница 1 из 1
05.02.2009, 16:00
    #35799590
шубин_ду
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица Deadlock dlconn содержит только 1 половину дедлока
Добрый день!

Создал и включил монитор дедлоков.

Код: plaintext
1.
2.
CREATE EVENT MONITOR DLMON_04 FOR DEADLOCKS WITH DETAILS HISTORY VALUES WRITE TO TABLE
SET EVENT MONITOR DLMON_04 STATE  1 

запустил тест, дождался завершения.

Выключил и удалил монитор

Код: plaintext
1.
2.
SET EVENT MONITOR DLMON_04 STATE  0 
DROP EVENT MONITOR DLMON_04

Во время теста получил 52 дедлока. Теперь анализирую трейсовые таблицы. Удивительно, что каждый второй дедлок содержит только половину дедлока - в таблице есть записи только для одного participant_no.

Код: 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.
26.
27.
28.
29.
db2 => select \
db2 =>    deadlock_id, \
db2 =>    count(*) \
db2 => from \
db2 =>    dlconn_dlmon_04 \
db2 => group by \
db2 =>    deadlock_id \
db2 => order by \
db2 =>    deadlock_id

DEADLOCK_ID           2 
-------------------- -----------
                    3             2 
                    4             1 
                    5             2 
                    6             1 
                    7             2 
                    8             1 
                    9             2 
                   10             1 
                   11             2 
                   12             1 
                   13             2 
                   14             1 
                   15             2 
---
                   50             1 
                   51             2 
                   52             1 

А где второй участник дедлока? То же относится и к остальным таблицам трейса: dllock, stmthist, stmtvals - там сохранены данные только для одного participant.

Пока имею только одно предположение. Тест был запущен через пул соединений на апликейшн-сервере. Очередная транзакция получает коннект из пула. Если коннект был создан еще до включения трейса, то его запросы в трейс не попадают. Или может надо еще какой-нибудь flush перед выключением монитора делать, чтобы все данные попали в трейсовые таблицы?
...
Рейтинг: 0 / 0
05.02.2009, 16:14
    #35799641
шубин_ду
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Таблица Deadlock dlconn содержит только 1 половину дедлока
Догадка насчет старого конекта не подтвердилась. В APPL_ID в конце стоит дата начала коннекта. Все коннекты были созданы до начала мониторинга и в частности тот, что упомянут в колонке appl_id_holding_lk в трейсовой таблице dlconn. В чем может быть причина потери второй сессии в каждом втором дедлоке?
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Таблица Deadlock dlconn содержит только 1 половину дедлока / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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