Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Update & NoWait / 10 сообщений из 10, страница 1 из 1
23.06.2003, 15:00:02
    #32189241
Ivanoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
Есть такая ситуация. 1й клиент блокирует запись с помощью select ... for update. Другой пытается изменить ту же запись - естественно подвисает в ожидании commit от первого клента.
Я так понимаю для того что бы второй клиент не висел в ожидании, нужно перед update поытаться заблокировать запись используя select ... for update.
А можно ли сделать так, чтобы в такой ситуации Update возвращал ошибку 54, а не ожидал освобождения ресурса?
...
Рейтинг: 0 / 0
23.06.2003, 15:03:14
    #32189245
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
select .... for update nowait;

и ловить 54 ошибку.
...
Рейтинг: 0 / 0
23.06.2003, 15:04:47
    #32189249
theNomad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
используй select ... for update NO WAIT
...
Рейтинг: 0 / 0
23.06.2003, 15:48:06
    #32189338
Ivanoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
А если другой клиент удалил запись? Как ловить? Оракл ошибку не возвращает:(
...
Рейтинг: 0 / 0
23.06.2003, 17:03:15
    #32189476
Simon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
очень просто
посмотреть на кол-во обработанных записей, если их 0 то кто-то что-то удалил или изменил
...
Рейтинг: 0 / 0
23.06.2003, 17:34:38
    #32189533
Ivanoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
А вот другой изыск. Запись была прочитана, затем чего-то считалось. В это время другой клиент изменил прочитанную запись. Может ли первый клиент определить факт этого изменения?
...
Рейтинг: 0 / 0
23.06.2003, 17:41:36
    #32189551
Duce
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
Слушай, ну какие тут изыски? Один залочил на апдейт\удаление.
Другой при попытке залочить с опцией nowait получит сообщение- отбой на
любые изменения, и пойдет курить :) Придет, сделает рефреш,
или это произойдет по таймеру...или не проникся я?
...
Рейтинг: 0 / 0
23.06.2003, 18:56:25
    #32189668
Update & NoWait
2 Ivanoff
Однако этот совсем другой изыск, и решается он другими средствами.
Например timestamp в записи и сравнение в тригере перед Update: ту ли запись правил юзер, или она успела поменяться пока он правил.
У меня на этот случай в записи храниться двухбайтовая циклическая "версия" записи.
...
Рейтинг: 0 / 0
24.06.2003, 08:43:57
    #32189849
Ivanoff
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
2 Duce
Не, не проникся, все гораздо запущенее:)

2 Поплюев Алексей
К сожалению (к счастью?) мне такие сложности не грозят. Это не тот случай.
Но если используется подобная техника - значит я верно представлял себе весь процесс.

Всем спасибо. Всю необходимую информацию я получил.
...
Рейтинг: 0 / 0
24.06.2003, 11:44:40
    #32190070
Simon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Update & NoWait
2Ivanoff:

ситуация простая
первый юзер прочитал запись, потом 5 минут ее другим оператором обсчитывает и хочет узнать не поменялась ли она за это время

возьми и считай ее заново если у нее другие значения или ее нет
значит поменялась
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Update & NoWait / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]