|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
Имеется жалоба от программистов, что хранимая процедура иногда падает с текстом "Could not do a physical-order read to fetch next row" и isam тоже говорит, что "ISAM error: record is locked". Я предлагаю установить SET LOCK MODE TO WAIT и не париться. НО: сделав такое один раз, эта сессия и по жизни пойдет дальше с бесконечным ожиданием окончания блокировки. Что может отразиться на поведении приложения. То есть менять код, добавлять в него "SET LOCK MODE TO WAIT" перед вызовом хранимки и восстанавливать предыдущее значение должны разработчики приложения. У которых все расписано на месяцы вперед, и у ихних тестеров тоже. Что бы вы сделали ? В таком вот аксепте ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 00:44 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
Выбегалло, вариант а: Сделать самому сервисную хп. Которая получает текущее состояние лок моуд, меняет на указанное и сообщает на выходе запомненное. В проблемную хп добавляется переменная для запоминания состояния на входе и два вызова сервисной хп - в начале и в конце проблемной, со сменой лок моуд и восстановлением. Но это не совсем правильный путь, скорее временный. По хорошему нужно разбираться в причинах ошибки. Или у вас работа сессии в режиме ноу вейт - это естественное поведение? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 01:32 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
И да, на каких версиях информикс должно работать решение? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 01:34 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
АнатоЛойВыбегалло, вариант а: Сделать самому сервисную хп. Которая получает текущее состояние лок моуд, меняет на указанное и сообщает на выходе запомненное. В проблемную хп добавляется переменная для запоминания состояния на входе и два вызова сервисной хп - в начале и в конце проблемной, со сменой лок моуд и восстановлением. Но это не совсем правильный путь, скорее временный. По хорошему нужно разбираться в причинах ошибки. Или у вас работа сессии в режиме ноу вейт - это естественное поведение? Ну, собственно, задачка и заключается в получении значения set lock mode wait и установлении его взад :) Версии 11.5 и выше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 03:18 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
то есть - задачка на знание внутренностей :) Как получить значение lock mode wait ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2016, 03:18 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
Выбегаллото есть - задачка на знание внутренностей :) Как получить значение lock mode wait ? Код: sql 1.
-1 wait 0 no wait >0 wait time Но я бы не сказал, что так надо решать проблемы ожидания блокировок. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 10:13 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
Посмотреть сколько таблиц имеют lock mode page ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 17:58 |
|
Задачка для ДБА-5
|
|||
---|---|---|---|
#18+
ВыбегаллоАнатоЛойВыбегалло, вариант а: Сделать самому сервисную хп. Которая получает текущее состояние лок моуд, меняет на указанное и сообщает на выходе запомненное. В проблемную хп добавляется переменная для запоминания состояния на входе и два вызова сервисной хп - в начале и в конце проблемной, со сменой лок моуд и восстановлением. Но это не совсем правильный путь, скорее временный. По хорошему нужно разбираться в причинах ошибки. Или у вас работа сессии в режиме ноу вейт - это естественное поведение? Ну, собственно, задачка и заключается в получении значения set lock mode wait и установлении его взад :) Версии 11.5 и выше. Хех, ну для вашей версии уже ответили. Хочу сказать, что задача таким же подходом решалась и на 7.31, причём прикладная проблема была установить новейт, после чего корректно вернуть. И делалось это для собственной реализации unique sequence с разрывами и резервированием подмножеств последовательности при активном конкуррентном доступе :). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 01:15 |
|
|
start [/forum/topic.php?fid=44&fpage=4&tid=1606809]: |
0ms |
get settings: |
13ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
50ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
257ms |
get tp. blocked users: |
2ms |
others: | 34ms |
total: | 391ms |
0 / 0 |