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