Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
25.02.2015, 11:46
|
|||
---|---|---|---|
Unlock |
|||
#18+
Имеется dw_1. Update Properties: Key Columns, Use Delete and Insert и т.д. Иногда(!) при dw_1.Update(TRUE, TRUE) происходит зависание. Т.е. таблицу закрывают из какого-то другого места в программе/компьютера. Найти проблему не можем. Можно ли как-то узнать, есть ли lock на эту таблицу и сделать unlock перед апдейтом? Disconnect - Connect не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.02.2015, 14:34
|
|||
---|---|---|---|
Unlock |
|||
#18+
25.02.2015 11:46, Riska пишет: > Можно ли как-то узнать, есть ли lock на эту таблицу и сделать unlock > перед апдейтом? Как ты себе это представляешь ;)? > Disconnect - Connect не подходит. Тогда нельзя. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
25.02.2015, 17:08
|
|||
---|---|---|---|
|
|||
Unlock |
|||
#18+
Riska, Нужно либо не брать лок вообще, либо его отпускать вовремя. Искать кто взял лок - через профайлер и системные таблицы вашей СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2015, 09:21
|
|||
---|---|---|---|
Unlock |
|||
#18+
Вообще таблица лочится не зря, как вы понимаете. Блокировки в каждой СУБД свои. Прежде всего нужно сделать логирование, чтобы посмотреть кто накладывает блокировки и в какой момент. Посмотреть, что именно блокируется. Например для Sybase ASE и MS SQL это может быть страница данных, а не строка, именно это вызывает проблему. Для Oracle открытие dw с обновлением, даже если просто кто-то читает данные. Можно просто не разрешать редактирование, если кто-то уже открыл запись в этом режиме. Снять блокировку без disconnect-а вряд ли получится, да и опасно это. Зато можно проверить наличие блокировок перед update, скажем в updatestart и просто сообщить, что в данный момент сохранение невозможно. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2015, 15:25
|
|||
---|---|---|---|
Unlock |
|||
#18+
spas2001, Действительно, pbm_dwnupdatestart может быть поможет. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
26.02.2015, 16:19
|
|||
---|---|---|---|
Unlock |
|||
#18+
транзакции должны быть короткими. Какой смысл проверять залочена ли запись и кто её залочил? Если транзакция зависла ищите ошибку в коде - там где есть апдэйт, но нет коммита или ролбэка. Хотя может у вас архитектура такая - считываем данные и ставим блокировку? Тогда тут без комментариев. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=15&mobile=1&tid=1335283]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 240ms |
total: | 373ms |
0 / 0 |