Мэйнфрейм DB2: queryTimeout не работает с SqlTransactionRollbackException: SQLCODE=-911, SQLSTATE=40001
Мы видели это следующее исключение из мэйнфрейма DB2. У нас есть CallableStatement.querytimeout, но в этом случае он действительно не работает. Какие-либо предложения? Благодарю.
Ошибка SQL DB2: SQLCODE=-911, SQLSTATE=40001, SQLERRMC=00C9008E;00000801;NULLID.SYSSTAT.5359534C564C3031, DRIVER=3.61.109; Вложенным исключением является com.ibm.db2.jcc.am.SqlTransactionRollbackException: ошибка SQL DB2: SQLCODE = -911, SQLSTATE = 40001, SQLERRMC = 00C9008E; 00000801; NULLID.SYSSTAT.5359534C564C3031, DRIVER = 3.61.109
То же самое относится и к следующему исключению. Тайм-аут запроса не работает.
вложенное исключение - com.ibm.db2.jcc.am.SqlException: НЕУДАЧНОЕ ИСПОЛНЕНИЕ, ВЫЗВАННОЕ НЕДОСТУПНЫМ РЕСУРСОМ. ПРИЧИНА 00E30083, ТИП РЕСУРСА 00000802, И НАЗВАНИЕ РЕСУРСА BINDLOCK
1 ответ
Время ожидания ожидания блокировки (от BINDLOCK01 до 20).
Убедитесь, что таблица, которую вы пытаетесь загрузить, не заблокирована другим продолжительным заданием, выполняющим запрос на обновление / вставку / удаление.
Центр знаний IBM предлагает по возможности добавлять частые операции COMMIT.
Toad World предлагает несколько дополнительных стратегий для оптимизации времени блокировки:
Рекомендация: ACQUIRE(USE) и RELEASE(DEALLOCATE) обеспечивают хороший параллелизм при использовании блокировки страниц или строк и максимизируют производительность.
Чтобы исключительные блокировки были как можно более короткими, рекомендуется сгруппировать операторы INSERT, UPDATE и DELETE вместе в программе на языке хоста, за которой следует COMMIT. Если эти операторы SQL перемежаются с кодом основного языка, блокировки сохраняются при выполнении кода основного языка.
В крайнем случае, если вы не хотите оптимизировать свой запрос и предположить, что он не тупиковый, вы можете отключить тайм-ауты блокировки:
В DB2 для *NIX/Windows измените параметр 'LOCKTIMEOUT' на '-1'. (Не уверен, что это за z/OS, или возможные последствия.)
Добро пожаловать в стек переполнения.