|
|
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
С FireBird знаком плохо, ногами не бить. Есть одна база FireBird 2.5 и две программы с ней взаимодействующие. При работе первая програма делает lock на все данные с которыми в текущий момент работает пользователь. Программа сторонняя, написана давно, исходников нет. Вторая программа(наша) работает с выборками из этой же базы. Задача: если при работе во второй программе в выборку попали данные, которые в текущий момент редактируются в первой программе, то необходимо превать работу и вывести сообщение(именно прервать, а не считать назакоммиченые данные). Не нашел чего-то полезного на эту тему в интернете. (Буду рад ссылке) Пытался проверять lock на запись в таблице фэйковым апдейтом(update table set value = value where id = @id) с таймаутом команды выставленным на пару секунд. Не помогло, транзакция "залипает" пока запись в таблице залочена. Решение желательно применимое к .Net, со стандартной функциональностью взаимодействия с FireBird. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 15:34:41 |
|
||
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
AlexandrSkПытался проверять lock на запись в таблице фэйковым апдейтом(update table set value = value where id = @id) с таймаутом команды выставленным на пару секунд. Не помогло, транзакция "залипает" пока запись в таблице залочена. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 15:39:21 |
|
||
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
AlexandrSkРешение желательно применимое к .Net Не используй умолчательный уровень изоляции Read Committed. Он в .NET провайдере вроде бы ещё не пофикшен. Читай: http://ibase.ru/devinfo/versions.htm http://ibase.ru/devinfo/plocks.htm http://ibase.ru/devinfo/pslock.htm Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 15:44:15 |
|
||
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
Isolation level пробовал разные. Ни один из них не повел себя корректно. Все "залипали". Может кому будет полезно. Проблема решилась следующим образом. Для транзакции нужно было выствавить опцию NO_wait. Похоже что для всех уровней изоляции она была определена как Wait. В моем случае выставлялось так : FbTransaction tran = cnn.BeginTransaction(FbTransactionOptions.NoWait); (на самом деле не сразу приходи в голову что в конструктор можно передать не только IsolationLevel) Попытка выполнить команду апдейта на залоченую запись в таблице сразу возвращает ошибку update conflict, таймаут ставить не нужно. Впринципе это то, о чем я спрашивал. Тему можно закрывать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 16:39:52 |
|
||
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
AlexandrSkМожет кому будет полезно. Разве что таким же шарпеям, которые тоже ниасилили прочитать три статьи по ссылкам... Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.10.2013, 16:42:27 |
|
||
|
Помогите программно определить, заблокирована ли запись в таблице (FireBird 2.5, .Net)
|
|||
|---|---|---|---|
|
#18+
AlexandrSkПроблема решилась следующим образом. Для транзакции нужно было выствавить опцию NO_wait. охрененно полезно. У всех драйверов и компонент no_wait по умолчанию, только у одного .Net Firebird по умолчанию wait, и Иржи кладет болт на любые пожелания на эту тему. Мол, программист может сам выставить нужный режим. А программист, оказывается, ни сном ни духом про транзакции в IB/FB http://www.ibase.ru/devinfo/ibtans.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.11.2013, 00:24:38 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38448674&tid=1564179]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 200ms |
| total: | 306ms |

| 0 / 0 |
