Size: a a a

2021 December 13

М

Михаил Власов... in Oracle RU
источник

Z

ZhekaPPP in Oracle RU
а чем vw_documents отличается от documents?
источник

DS

Dmitriy Sergeevich in Oracle RU
ну там есть еще под запросы и необходимые поля. Функция упрощена для демонстрации.
источник

Z

ZhekaPPP in Oracle RU
а в плане упрощения кода - там точно нет каких-то коммитов от dbms_lock.request до UPDATE documents
             SET status = 2
             WHERE id = p_id;
           COMMIT;
?
источник

DS

Dmitriy Sergeevich in Oracle RU
100% коммит один после апдейта documents
источник

KL

Kirill Leontev in Oracle RU
IF l_status = 1 THEN
           UPDATE documents
             SET status = 2
             WHERE id = p_id;
           COMMIT;
           RETURN 1;
       ELSE
           RETURN 0;
       END IF;      

кто и когда отпускает блокировку при return 0?
источник

DS

Dmitriy Sergeevich in Oracle RU
ну сам провайдер оракла при закрытии коннекта
источник

Z

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

Z

ZhekaPPP in Oracle RU
и еще можно попробовать заменить на DBMS_LOCK.ALLOCATE_UNIQUE_AUTONOMOUS - оно, по идее, должно получше работать в этом случае (если у Вас >=12.1)
источник

Z

ZhekaPPP in Oracle RU
и даже автономные транзакции в середине убрали? :)
источник

DS

Dmitriy Sergeevich in Oracle RU
А одна сессия может выполнять два запроса одновременно из разных потоков?
источник

KL

Kirill Leontev in Oracle RU
нет
источник

KL

Kirill Leontev in Oracle RU
@dmitriy_schleht так что с этим вопросом?)
источник

DS

Dmitriy Sergeevich in Oracle RU
значит где то косяк в коде...
источник

DS

Dmitriy Sergeevich in Oracle RU
да
источник

DS

Dmitriy Sergeevich in Oracle RU
он же и воспроизводится
источник

Z

ZhekaPPP in Oracle RU
а как вы на этом коде понимаете, что обновилось дважды?
источник

DS

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

DS

Dmitriy Sergeevich in Oracle RU
есть лог (табличка истории статусов)
источник

KL

Kirill Leontev in Oracle RU
а кто ее обновляет
источник