Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / Есть ли параметр, управляющий LOCK WAIT? / 8 сообщений из 8, страница 1 из 1
14.08.2009, 17:17
    #36145188
IDS User
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
Добрый день,

Подскажите пожалуйста, можно ли время ожидания освобождения ресурсов таблицы (LOCK WAIT) задавать не на клиенте (SET LOCK MODE TO WAIT n), а на сервере (например в ONCONFIG)? Насколько я понимаю, по умолчанию ожидание = 0 сек.

Дело в том, что в моей БД с одной и той же таблицой могут работать одновременно несколько сессий, и, несмотря на то, что таблица блокируется в ROW LEVEL, если вторая сессия пытается прочитать обновляемую строку, ее сессия получает Lock Timeout Expired.

Т.к. сам код написан третьей стороной, то внести изменения в процедуры я не могу. В поиске самостоятельно, кроме CDR_DSLOCKWAIT (который используется репликацией) я найти не сумел.

P.S. В целом ход моих мыслей верен? Может быть, я вообще ушел в лес, и проблема не в этом?

IBM Informix Dynamic Server Version 9.40.TC6 on Windows 2k.
...
Рейтинг: 0 / 0
14.08.2009, 18:46
    #36145350
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
IDS UserПодскажите пожалуйста, можно ли время ожидания освобождения ресурсов таблицы (LOCK WAIT) задавать не на клиенте (SET LOCK MODE TO WAIT n), а на сервере (например в ONCONFIG)? Насколько я понимаю, по умолчанию ожидание = 0 сек.
Должен вас огорчить - такого параметра (в onconfig или переменной окружения), действующего на весь сервер сразу, по моему мнению, нет и быть не может. По той причине, что это прерогатива прикладной системы, как ей реагировать на блокировку, т.е. на состояние изменения нужной записи. Только архитектор системы совместно с аналитиком и программистами может сказать - как нужно поступать в кажом конкретном случае. К тому же у вас на сервере может крутиться много подсистем и БД с совершенно противоположными требованиями.
Для некоторых систем реального времени это просто неприемлемо - что-то ждать. Нужен просто результат - можно или нельзя изменить строку.
Конечно же, в большинстве систем всегда устанавливается некоторое приемлемое время ожидания блокировки (5-10 сек) и его всегда хватает для устранения конфликтов в правильно спроектированной и нагруженной системе. И то, что в вашей прикладной системе этого нет говорит о том, что создатели не сподобились протестировать систему в многопользовательской среде (что, в принципе, довольно распространененная ошибка) и проектировали ее "кривыми ручками". А то, что вы теперь не можете заставить разработчиков внести необходимые изменения говорит о том, что ваша компания купила "неправильный" продукт без соответствующего тестирования и без договора о сопровождении.
...
Рейтинг: 0 / 0
16.08.2009, 09:26
    #36146207
IDS user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
По поводу саппорта и кривых рук, я с Вами вынужден согласиться. Сам неоднократно переписывал некоторые куски кода. Но как и многие компании мы "на крючке", т.к. мигрировать на другой продукт в данный момент и на данных объемах очень сложно. Просто было соскочить года 2-3 назад....


В любом случае спасибо за комментарий и ответ ;)
...
Рейтинг: 0 / 0
16.08.2009, 20:27
    #36146562
zaiets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
Эту ситуация можно обойти.
Если у вас 11.50 - на процедуру открытия БД повесьте нужный локвайт.
...
Рейтинг: 0 / 0
16.08.2009, 22:42
    #36146668
IDS user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
У меня 9-ка.
...
Рейтинг: 0 / 0
16.08.2009, 22:45
    #36146670
IDS user
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
А можно чуть подробнее, что значит "процедура открытия БД"?
...
Рейтинг: 0 / 0
17.08.2009, 10:53
    #36147138
Ikir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
В 10 это было для XPS, в 11.5 и для IDS
"To change the properties of a session, design custom sysdbopen( ) and sysdbclose( ) procedures for various databases to support the applications of specific users or the PUBLIC group. The sysdbopen( ) and sysdbclose( ) procedures can contain a sequence of SET, SET ENVIRONMENT, SQL, or SPL statements that the database server executes for the user or the PUBLIC group when the database opens or closes."
...
Рейтинг: 0 / 0
17.08.2009, 19:18
    #36148608
vasilis
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли параметр, управляющий LOCK WAIT?
IkirВ 10 это было для XPS, в 11.5 и для IDS
Уточню, эта фича появилась в IDS 11.1
Подробнее можно прочитать в "New Features in Dynamic Server, Version 11.10".
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / Есть ли параметр, управляющий LOCK WAIT? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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