Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PowerBuilder Новый топик    Ответить
 Unlock  [new]
Riska
Member

Откуда: Израиль
Сообщений: 985
Имеется dw_1.
Update Properties: Key Columns, Use Delete and Insert и т.д.

Иногда(!) при dw_1.Update(TRUE, TRUE) происходит зависание. Т.е. таблицу закрывают из какого-то другого места в программе/компьютера. Найти проблему не можем.

Можно ли как-то узнать, есть ли lock на эту таблицу и сделать unlock перед апдейтом?
Disconnect - Connect не подходит.
25 фев 15, 11:46    [17309182]     Ответить | Цитировать Сообщить модератору
 Re: Unlock  [new]
Dim2000
Member

Откуда: Москва
Сообщений: 5318

25.02.2015 11:46, Riska пишет:

> Можно ли как-то узнать, есть ли lock на эту таблицу и сделать unlock
> перед апдейтом?

Как ты себе это представляешь ;)?

> Disconnect - Connect не подходит.

Тогда нельзя.

Posted via ActualForum NNTP Server 1.5

25 фев 15, 14:34    [17310424]     Ответить | Цитировать Сообщить модератору
 Re: Unlock  [new]
Локшин Марк
Member

Откуда: Воронеж
Сообщений: 3154
Riska,

Нужно либо не брать лок вообще, либо его отпускать вовремя. Искать кто взял лок - через профайлер и системные таблицы вашей СУБД.
25 фев 15, 17:08    [17311479]     Ответить | Цитировать Сообщить модератору
 Re: Unlock  [new]
spas2001
Member

Откуда: Тамбов--->Москва-->Тамбов-->Москва-->Тамбов
Сообщений: 2010
Вообще таблица лочится не зря, как вы понимаете.
Блокировки в каждой СУБД свои.
Прежде всего нужно сделать логирование, чтобы посмотреть кто накладывает блокировки и в какой момент.
Посмотреть, что именно блокируется. Например для Sybase ASE и MS SQL это может быть страница данных, а не строка, именно это вызывает проблему.
Для Oracle открытие dw с обновлением, даже если просто кто-то читает данные.
Можно просто не разрешать редактирование, если кто-то уже открыл запись в этом режиме.
Снять блокировку без disconnect-а вряд ли получится, да и опасно это. Зато можно проверить наличие блокировок перед update, скажем в updatestart и просто сообщить, что в данный момент сохранение невозможно.
26 фев 15, 09:21    [17313615]     Ответить | Цитировать Сообщить модератору
 Re: Unlock  [new]
Riska
Member

Откуда: Израиль
Сообщений: 985
spas2001,

Действительно, pbm_dwnupdatestart может быть поможет.
Спасибо.
26 фев 15, 15:25    [17316164]     Ответить | Цитировать Сообщить модератору
 Re: Unlock  [new]
rcryo
Member

Откуда: Москва
Сообщений: 323
транзакции должны быть короткими. Какой смысл проверять залочена ли запись и кто её залочил? Если транзакция зависла ищите ошибку в коде - там где есть апдэйт, но нет коммита или ролбэка.
Хотя может у вас архитектура такая - считываем данные и ставим блокировку? Тогда тут без комментариев.
26 фев 15, 16:19    [17316617]     Ответить | Цитировать Сообщить модератору
Все форумы / PowerBuilder Ответить