Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очень плохая блокировка / 19 сообщений из 19, страница 1 из 1
03.09.2014, 10:34
    #38735814
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Народ, подскажите что можно делать, в какую сторону смотреть. Ошибка вылетает com.ibm.db2.jcc.c.SqlException: DB2 SQL error: SQLCODE: -911, SQLSTATE: 40001, SQLERRMC: 68. Судя по описанию очень плохая ошибка. Скоро отпуск, а блокировок много. База нормализована и как следствие много справочников и таблиц-связок, и самое неприятное в этом случае, некоторые данные заносятся и выбираются через длинную цепочку таблиц. Много длинных транзакций(много действий select, insert, update в одном). Откуда начинать расследование? Я не силен в DB2. DB2 версии 8.1.
...
Рейтинг: 0 / 0
03.09.2014, 10:40
    #38735821
vitabios
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,
ну сначала можно db2diag.log посмотреть, а так же логи приложения, оно случаем не на IBM Websphere Application Server работает?
...
Рейтинг: 0 / 0
03.09.2014, 10:49
    #38735832
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Не, Tomcat. Приложение моё. На этом сервере и значительно более нагруженные базы и их приложения. Я уже убрал по максимуму все не сильно важные запросы вложенные(select`ы в insert`е). Все работает быстро до какого-то момента, когда количество пользователей увеличивается некий порог, начинают плодиться блокировки. Я когда-то менял параметр ответственный за блокировки(время или таймаут), но тогда я решил проблему разбив серию действий на отдельные со своей транзакцией.
...
Рейтинг: 0 / 0
03.09.2014, 11:09
    #38735867
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Что-то db2diag.log большой.
...
Рейтинг: 0 / 0
03.09.2014, 11:28
    #38735914
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

кусок db2diag.log в студию!

а LOCKSIZE таблицы какой?
...
Рейтинг: 0 / 0
03.09.2014, 11:31
    #38735923
CawaSPb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

68 - это истечение времени ожидания по блокировке.

В 9.7 я бы предложил установить DB2_CAPTURE_LOCKTIMEOUT в ON:
Код: plaintext
db2set DB2_CAPTURE_LOCKTIMEOUT=ON
и смотреть отчёты, падающие в каталог с db2diag.log.
Но в 8-ке, если не ошибаюсь, этого параметра ещё не было.

В принципе, ничего страшного в отстреле по LOCK timeout'у нет, вопрос только как часто это происходит, и сколько вообще приложения висят в блокировках.

В вашем случае похоже, что нагрузка со стороны начинает превышать "пропускную способность", которую обеспечивает база при работе с некоторым ресурсом (таблицей?). Определите этот ресурс, дальше или обеспечьте неблокирующий доступ к нему (на уровне приложения), или боритесь за производительность работы с ним.
Т.е. в первую очередь смотрите, какие ожиадния по блокировкам начинают появляться, и на каких запросах.

BTW А во что выставлен LOCKTIMEOUT у базы?
При лавинообразном нарастании количества блокировок при повышении нагрузки его увеличение не поможет, но поиграться тоже можно.
...
Рейтинг: 0 / 0
03.09.2014, 12:24
    #38736039
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Файл db2diag.log большой. 980 мб за 3 года. Я выбрал за период когда примерно должна сия напость произойти. Но вот то что сервер сильно нагружен это да. Причем там очень много дисковых операций и причем периодичных.
...
Рейтинг: 0 / 0
03.09.2014, 12:25
    #38736040
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Тут скрин настроек
...
Рейтинг: 0 / 0
03.09.2014, 16:30
    #38736534
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
И на другом сервере не работает
...
Рейтинг: 0 / 0
03.09.2014, 17:49
    #38736666
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

Автоматический бэкап логов, автоматический реорг таблиц...

Если бэкап очень нужен, попробовать сначала снять автоматичесий реорг и проводить его по расписанию
UPDATE DB CONFIGURATION FOR ACS USING AUTO_REORG OFF;

Но мне кажется не очень поможет...
...
Рейтинг: 0 / 0
03.09.2014, 17:51
    #38736671
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

А что показывает команда GET DB CFG FOR ACS в части AUTO_MAINT ?
...
Рейтинг: 0 / 0
04.09.2014, 08:56
    #38737054
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
На новом сервере блокировок меньше. Но они там иногда по любому должны быть. Там очень длинные транзакции. Теперь висит на запросах, но не отпадает как при множестве блокировок. Состояние базы пишет нормальное. Пользователи вчера повесили мне Tomcat. Поэтому их количество я не узнал. А вот количество соединенных программ более 18(из центра управления) не поднимается. Выполнил UPDATE DB CONFIGURATION FOR ACS USING AUTO_REORG OFF;
Включены AUTO_DB_BACKUP, AUTO_MAINT, AUTO_RUNSTAT, AUTO_TBL_MAINT. Что тут можно выключить? Бэкапы я по расписанию настрою.
...
Рейтинг: 0 / 0
04.09.2014, 09:01
    #38737055
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Через конфигурирование автоматического обслуживания убрал еще некоторые. Остались только AUTO_MAINT, AUTO_TBL_MAINT.
...
Рейтинг: 0 / 0
04.09.2014, 09:24
    #38737078
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

Если backup логов не нужен, то отключается переменными LOGARCHMETH1 и LOGARCHMETH2 посттановкой их в OFF и рестартом базы. Но надо не забывать, что логи не бесконечны... может их придётся увеличить.
...
Рейтинг: 0 / 0
04.09.2014, 09:30
    #38737090
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей ВасильевичЧерез конфигурирование автоматического обслуживания убрал еще некоторые. Остались только AUTO_MAINT, AUTO_TBL_MAINT.

да больше и не надо ничего отключать, и так всё OFF, AUTO_MAINT - родительский параметр, поставив его в OFF- остальные можно не трогать, всё равно работать не будут.
...
Рейтинг: 0 / 0
04.09.2014, 09:35
    #38737096
knudsen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
...
Рейтинг: 0 / 0
04.09.2014, 09:36
    #38737098
A.Panskikh
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Андрей Васильевич,

включите db2set DB2_CAPTURE_LOCKTIMEOUT=ON на сервере, в восьмерке он был. В каталоге с db2diag.log будут создаваться файлы с детальными причинами возникновения блокировок.Самая обычная ошибка новичков с БД - не закрываете транзакции за собой. Включите в приложении автокоммит и не парьтесь до тех пор, пока не разберетесь что такое транзакция, уровень изоляции и т.п.

Поставьте db2mon и сможете наблюдать за блокировками в реальном времени.

Andy
...
Рейтинг: 0 / 0
04.09.2014, 09:44
    #38737112
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
Увеличил память для Tomcat. Добавил до 400000 страниц(по 4 кб) пул IBMDEFAULTBP. Там все в разделе "Неблокировано". Не знаю так ли нужно. Отключил логирование в приложении(действия в приложении в таблицу заносились). Может лишних инсертов уменьшилось. Пользователей значительно меньше. Пока работает нормально. Судя по всему надо дробить транзакции, думать что с логами делать и где хранить, и на хороший сервер перемещать это дело.
...
Рейтинг: 0 / 0
04.09.2014, 09:52
    #38737122
Андрей Васильевич
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Очень плохая блокировка
A.Panskikh,

Что такое транзакции и уровни изоляции я знаю. Еще в универе изучал. Я плохо знаю DB2. Действия такие, что нужно или всё сохранить или ничего. А этих "всё" 3-5 таблиц. База данных нормализована. Вот и затрагивают изменения сразу несколько таблиц. Но за блокировками буду следить. Надо что-то по db2 почитать полезное.
...
Рейтинг: 0 / 0
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Очень плохая блокировка / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]