Воспользуйтесь следующей ссылкой:
Я включаю DB2_CAPTURE_LOCKTIMEOUT=ON, а затем проверяю, успешно ли меняю его с помощью db2set -all, и вижу, что он уже включен.
После этого я успешно смоделировал тайм-аут блокировки, перейдя по этой ссылке:
https://db2forum.wordpress.com/2011/10/17/new-options-for-analyzing-lock-timeouts-in-db2-9-5/
Получил Reason code "68". SQLSTATE=40001.
Однако я все еще не могу получить журнал db2locktimeout на /home/db2inst1/sqllib/db2dump.
На этом пути я вижу только db2diag.log, но не журнал db2locktimeout.
Могу ли я узнать, в чем я ошибаюсь?





Поскольку вы цитировали страницу V10.5, я предполагаю, что ваш сервер Db2 по крайней мере этой версии. При обращении за помощью всегда указывайте свою версию Db2 и пакет исправлений.
Эта устаревшая (но все еще работающая) переменная эффективна только для операторов SQL недавно скомпилированный. Это означает, что если в вашем кэше пакетов уже есть кэшированные операторы SQL (те, которые вы используете для воссоздания кода причины -911 68), то для этих SQL-запросов не будет отображаться файл (-ы), если они задействованы в -911.
Если ваш сценарий воссоздания может работать в разрабатываемой или тестовой базе данных, вы можете либо очистить кеш динамических операторов (не делайте этого в производственной среде), либо вы можете вернуть экземпляр Db2 (что имеет побочный эффект очистки кеша пакетов).
Если в вашем сценарии воссоздания используется только статический SQL, либо эти пакеты нужно будет повторно привязать (не делайте этого в производственной среде), либо вы можете вернуть экземпляр Db2.
Если вы можете воссоздать проблему только в производственной среде, а сброс, возврат или повторное связывание слишком агрессивны в этой среде, то рекомендуется альтернативный подход с использованием монитор событий для блокировки, хотя он требует гораздо больше усилий.
Чтобы узнать больше о том, как Db2 компилирует SQL и как операторы динамического SQL сохраняются вместе с их планом доступа в памяти (называемой кешем пакетов), изучите Db2-Knowledge Center или обратитесь к любому справочнику Db2.
Повторение того, что описано в центре знаний Db2 по этим темам (кэш пакетов, пакет, компиляция и т. д.), Сделало бы ответ слишком длинным. Любая хорошая книга объяснит эти концепции, которые используют многие СУБД. Не задавайте дополнительных вопросов в комментариях. Постарайтесь провести время в Центре знаний Db2, чтобы помочь вам в изучении этих тем.
Принято к сведению. Я упомяну свою версию db2, когда буду просить о помощи. Извините, я все еще не понимаю, что такое
your package-cache already has the SQL statements cached, можете попробовать объяснить более подробно или непрофессиональные термины? Поскольку я только что запустил очень простой оператор обновления.update table1 set name = 'newName' where id=1;