Тайм-аут операции DB2 или тупик - PullRequest
1 голос
/ 02 декабря 2011

У меня JDBC DB2error, тайм-аут операции или тупик, номер ошибки: -913.

сценарий: Операция 1 выполняет обновление строки в таблице, что может занять 2 минуты для завершения операции.

Операция 2 пытается прочитать ту же строку по номеру кавычки.

имеет CS блокировки по умолчанию (транзакция_read_commited). Я вижу «Тайм-аут операции или тупик» через 60 секунд, Это сценарий таймаута или тупика?

Можно ли как-нибудь избежать тупика, увеличив время ожидания соединения или время блокировки?

Предложение вокруг будет признателен ..

Ответы [ 2 ]

2 голосов
/ 05 декабря 2011

Вы можете увеличить время ожидания блокировки, изменив параметр locktimeout.

db2 update db cfg using locktimeout 180

Это меняет ожидание на 2 минуты.Вы также можете поставить -1, чтобы ждать бесконечно.

Для получения дополнительной информации http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.config.doc/doc/r0000329.html

Сценарий не является тупиком, потому что операция 2 не содержит ресурсов, она просто пытаетсячтобы получить доступ к обновляемой строке.

0 голосов
/ 03 декабря 2011

2 минуты подряд?Что, черт возьми, вы пытаетесь сделать?

В любом случае, да, это проблема времени ожидания - ваша операция 2 использует (предположительно) время ожидания по умолчанию.Это может быть установлено для файла , и (по крайней мере для iSeries, и, вероятно, для всех версий DB2) по умолчанию установлено значение 60 секунд.

Я не уверен, может ли это значение бытьустанавливается только из SQL - вы должны использовать собственные команды iSeries CHGPF или CHGLF (параметр WAITFILE / WAITRECORD, через секунд ), если это ваша платформа (вы этого не сделалиуточнить).Хотя я не очень рекомендую это - посмотрите, не можете ли вы запустить этот оператор обновления быстрее ... или посмотрите, как можно как-то изменить архитектуру.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...