Код причины 68 уже говорит вам, что это связано с тайм-аутом блокировки (взаимоблокировка - это код причины 2). Это может быть связано с тем, что другие пользователи одновременно выполняют запросы, которые используют те же данные, к которым вы обращаетесь, или ваши собственные множественныеupdates.
Начните с запуска db2pd -db locktest -locks show detail
из командной строки db2, чтобы увидеть, где находятся блокировки.Затем вам нужно будет выполнить что-то вроде:
select tabschema, tabname, tableid, tbspaceid
from syscat.tables where tbspaceid = # and tableid = #
, заполнив символы # идентификатором, который вы получите из вывода команды db2pd
.
Как только вы увидите, где блокировкиВот несколько советов:
frequency Частота блокировки иногда может быть уменьшена путем обеспечения того, чтобы все приложения обращались к своим общим данным в том же порядке - это означает, например, что они получают доступ (и, следовательно, блокируют) строки в таблицеА, затем таблица В, затем таблица С и т. Д.
взято из: http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/topic/com.ibm.db2.luw.admin.trb.doc/doc/t0055074.html
рекомендуемое прочтение: http://www.ibm.com/developerworks/data/library/techarticle/dm-0511bond/index.html
Добавление: если ваш сервлет или другое виновное приложение использует select
операторов, которые были обнаружены вв тупик, вы можете попробовать добавить with ur
в операторы выбора, если точность вновь обновленных (или вставленных) данных не важна.