Журнал db2locktimeout не найден после включения DB2_CAPTURE_LOCKTIMEOUT = ON - PullRequest
0 голосов
/ 17 мая 2018

Основываясь на следующей ссылке:

https://www.ibm.com/support/knowledgecenter/SSEPGG_10.5.0/com.ibm.db2.luw.admin.regvars.doc/doc/r0005657.html

Я включаю 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 журнал.

Могу ли я узнать, какую ошибку я совершаю?

1 Ответ

0 голосов
/ 17 мая 2018

Поскольку вы цитировали страницу V10.5, я предполагаю, что ваш Db2-сервер по крайней мере в этой версии.Всегда пишите свою Db2-версию и пакет исправлений при обращении за помощью.

Эта устаревшая (но все еще работающая) переменная эффективна только для вновь скомпилированных операторов SQL.Это означает, что если в вашем кэше пакетов уже есть кэшированные операторы SQL (те, которые вы используете для воссоздания кода причины -911), то для этих SQL-файлов не появятся файлы, если они включены в -911.

Если ваш сценарий восстановления может работать с базой данных разработки или тестирования, тогда вы можете либо очистить кэш динамических операторов (не делать этого в рабочей среде), либо вы можете сбросить экземпляр Db2(который имеет побочный эффект очистки кэша пакета).

Если в вашем сценарии восстановления используется только статический SQL, то эти пакеты нужно будет восстановить (не делайте этого в рабочей среде), или вы можете сбросить экземпляр Db2.

Если выможет воссоздать проблему только на производстве, и очистка, отскок или повторное связывание слишком агрессивны в этой среде, поэтому рекомендуется альтернативный подход использования монитора событий для блокировки , хотя это требует гораздо больших усилий.

Чтобы узнать больше о том, как Db2 компилирует SQL, и как операторы динамического SQL хранятся вместе с их планом доступа в памяти (так называемый кэш пакета), изучите Центр знаний Db2 или обратитесь к любому справочнику по Db2..

...