Ваша транзакция откатилась на Db2, потому что ваша транзакция или имела значение LOCK TIMEOUT или DEADLOCK.
В этом значение sqlcode -911.
Вам необходимо выяснить, был ли это тайм-аут блокировки или тупик, потому что применяются разные стратегии предотвращения.
Чтобы определить , какие (тайм-аут блокировки или тупик) ваш код может либо использовать getNextException (), либо получить причину, либо использовать функции PD_GET_LOG_MSGS или PDLOGMSGS_LAST24HOURS .Код причины 2 указывает на тупик, а код причины 68 указывает на тайм-аут блокировки.Эта информация может быть доступна из методов в классе (или подклассах) SQLException или DB2Diagnosable.
Чтобы избежать тайм-аута блокировки или тупика, вам нужно проверить уровень изоляции (для оператора или транзакции,или пакет, или соединение), и другие параллельно выполняемые задания, которые используют ту же таблицу (таблицы), что и ваша транзакция, или отрегулируйте ваш допуск ожидания блокировки (посредством установки текущего времени ожидания блокировки для вашей транзакции).Как правило, вам нужно обеспечить наилучшие планы доступа, наименьший требуемый уровень изоляции, наименьшую единицу работы для достижения желаемого результата (более частое принятие) и убедиться, что в базе данных нет зависших потоков или незафиксированных старых транзакций, которые без необходимости удерживают блокировки.