Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
14.08.2009, 17:17
|
|||
---|---|---|---|
|
|||
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
Добрый день, Подскажите пожалуйста, можно ли время ожидания освобождения ресурсов таблицы (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. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
14.08.2009, 18:46
|
|||
---|---|---|---|
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
IDS UserПодскажите пожалуйста, можно ли время ожидания освобождения ресурсов таблицы (LOCK WAIT) задавать не на клиенте (SET LOCK MODE TO WAIT n), а на сервере (например в ONCONFIG)? Насколько я понимаю, по умолчанию ожидание = 0 сек. Должен вас огорчить - такого параметра (в onconfig или переменной окружения), действующего на весь сервер сразу, по моему мнению, нет и быть не может. По той причине, что это прерогатива прикладной системы, как ей реагировать на блокировку, т.е. на состояние изменения нужной записи. Только архитектор системы совместно с аналитиком и программистами может сказать - как нужно поступать в кажом конкретном случае. К тому же у вас на сервере может крутиться много подсистем и БД с совершенно противоположными требованиями. Для некоторых систем реального времени это просто неприемлемо - что-то ждать. Нужен просто результат - можно или нельзя изменить строку. Конечно же, в большинстве систем всегда устанавливается некоторое приемлемое время ожидания блокировки (5-10 сек) и его всегда хватает для устранения конфликтов в правильно спроектированной и нагруженной системе. И то, что в вашей прикладной системе этого нет говорит о том, что создатели не сподобились протестировать систему в многопользовательской среде (что, в принципе, довольно распространененная ошибка) и проектировали ее "кривыми ручками". А то, что вы теперь не можете заставить разработчиков внести необходимые изменения говорит о том, что ваша компания купила "неправильный" продукт без соответствующего тестирования и без договора о сопровождении. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2009, 09:26
|
|||
---|---|---|---|
|
|||
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
По поводу саппорта и кривых рук, я с Вами вынужден согласиться. Сам неоднократно переписывал некоторые куски кода. Но как и многие компании мы "на крючке", т.к. мигрировать на другой продукт в данный момент и на данных объемах очень сложно. Просто было соскочить года 2-3 назад.... В любом случае спасибо за комментарий и ответ ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2009, 20:27
|
|||
---|---|---|---|
|
|||
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
Эту ситуация можно обойти. Если у вас 11.50 - на процедуру открытия БД повесьте нужный локвайт. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2009, 22:42
|
|||
---|---|---|---|
|
|||
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
У меня 9-ка. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
16.08.2009, 22:45
|
|||
---|---|---|---|
|
|||
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
А можно чуть подробнее, что значит "процедура открытия БД"? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
17.08.2009, 10:53
|
|||
---|---|---|---|
Есть ли параметр, управляющий LOCK WAIT? |
|||
#18+
В 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." ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=44&tablet=1&tid=1607763]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 348ms |
total: | 466ms |
0 / 0 |