|
|
|
Блокировки и таймаут?
|
|||
|---|---|---|---|
|
#18+
Привет, солнцеподобные корифеи! Oracle 7.3 + клиент на Дельфи/БДЕ Может кто вразумит, как сделать примерно следующее: юзер А забирает запись на редактирование. В это же время юзер Б ее же желает удалить. И допустить такого нельзя, нужно сразу дать отбой на удаление. Я пользую для блокировки SELECT ...FOR UPDATE NOWAIT. При запросе на удаление клиент зависает в ожидании разлочки записи, и по факту тут же убивает наработанное другим бедолагой. Никакого тюнинга на тему timeout я не нахожу. Как быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 10:06 |
|
||
|
Блокировки и таймаут?
|
|||
|---|---|---|---|
|
#18+
По-моему. в твоем случае обе сессии должны перед изменением записи попытаться залочить ее. Т.е. сессия, пытающая удалить запись, перед delete тоже должна сказать select ... for update nowait, и если кто-то эту запись уже держит, получит ORA-00054: resource busy and acquire with NOWAIT specified. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2002, 10:51 |
|
||
|
|

start [/forum/search_topic.php?author=plant_01&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
get settings: |
5ms |
get forum list: |
10ms |
get settings: |
8ms |
get forum list: |
17ms |
get settings: |
6ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
181ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
28ms |
get tp. blocked users: |
1ms |
| others: | 1419ms |
| total: | 1724ms |

| 0 / 0 |
