Size: a a a

2021 December 09

IG

Ildar Garaev in Oracle RU
Вы сказали у вас ASH VIEWer в нем в истории будет видно
источник

IG

Ildar Garaev in Oracle RU
active_session_history
источник

Z

ZhekaPPP in Oracle RU
как оно может пройти? запись заблокирована первым вызовом. Второй вызов будет ждать разблокировки и не отберет запись, т.к status будет уже 2
источник

DS

Dmitriy Sergeevich in Oracle RU
блокируется она на апдейт а не на чтение, чтение то будет как до апдейта не важно заблокирована она или нет
источник

Z

ZhekaPPP in Oracle RU
так, еще раз. у вас в самом начале есть select for update на запись с проверкой статуса?
источник

KL

Kirill Leontev in Oracle RU
покажите код...
источник

DS

Dmitriy Sergeevich in Oracle RU
select for update читаем статус запихиваем в переменную, далее ее проверяем если 1 то делаем еще апдейты/инсерты а в самом конце обновляем запись на 2.
источник

DS

Dmitriy Sergeevich in Oracle RU
А и забыл сказать, эти апдейты других табличек происходят в другой процедуре с автономной транзакцией
источник

Z

ZhekaPPP in Oracle RU
🙊🙊🙊
источник

IG

Ildar Garaev in Oracle RU
Ну ничего еще много что вспомните.
источник

DS

Dmitriy Sergeevich in Oracle RU
да можно по тролить 😄
источник

DS

Dmitriy Sergeevich in Oracle RU
ну это не особо влияет. т.к. даже если бы не было это автономной процедуры, апдейт статуса то все равно в изначальной транзакции
источник

Z

ZhekaPPP in Oracle RU
да, но это никак не защищает от того, что после выполнения автономки и до commit статуса вы не словите ошибку и rollback
источник

KL

Kirill Leontev in Oracle RU
select for update
выполнение автономок
ошибка, ролбек, не дошли до апдейта статуса
перезапуск процедуры....
источник

DS

Dmitriy Sergeevich in Oracle RU
почему перезапуск процедуры? в автономке все исключения обрабатываются и в итоге она в любом случае успешно завершится не важно был там ролбек или коммит
источник

KL

Kirill Leontev in Oracle RU
я (и не только я) вам привел пример сценария при котором ваш select for update ни от чего не защищает
источник

Z

ZhekaPPP in Oracle RU
вы не защищены на момент, когда автономка уже завершилась, а в основной сессии commit еще не произошел
источник

KL

Kirill Leontev in Oracle RU
что там на самом деле происходит кроме вас никто не видит
источник

DS

Dmitriy Sergeevich in Oracle RU
так я и не утверждаю что он защищает, он вообще что есть что нету...
источник

KL

Kirill Leontev in Oracle RU
ну так а чего вы от оракла хотите? у вас в коде потенциальный баг. пять лет не стрелял - сегодня почему-то выстрелил
источник