powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Блокировки в APEX
8 сообщений из 8, страница 1 из 1
Блокировки в APEX
    #36377059
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коллеги, по-вашему мнению необходима ли блокировка данных с помощью инструкции select ... for update или в случае АРЕХа модно положиться на PAGE CHECKSUM?
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36383340
коллега, предлагаю Вам для начала почитать про оптимистические и пессимистические блокировки, а также про проблему потеряных изменений. а то, как мне кажется, Вы не совсем понимаете, о чём говорите.
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36389537
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
добрый желатель, суть-то не в типе блокировки, а в возможности использовать данный механизм в АРЕХ!
1. У меня складывается впечатление, что данные, заблокированные одним пользователем АРЕХ фактически доступны для другого, т.к. сеанс осуществляется от APEX_PUBLIC_USER.

2. Опытным путем установлено, что данные, заблокированные честным сеансом Oraclа в АРЕХ не доступны, до снятия блокировки...

3. Хотелось бы выяснить :
возможно ли из АРЕХа заблокировать выбранные данные для других сеансов БД

возможно ли из АРЕХа заблокировать выбранные данные для других сеансов АРЕХ

при этом очень бы не хотелось использовать схему авторизации DB Account
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36389836
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvksqlru,

APEX поддерживает оптимистические блокировки и пользовательские блокировки. Поскольку для работы с БД каждый раз используется теоретически новая сессия, то пессимистическое блокирование реализовать не выйдет.
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36393007
ossv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer
APEX поддерживает оптимистические блокировки и пользовательские блокировки. Поскольку для работы с БД каждый раз используется теоретически новая сессия, то пессимистическое блокирование реализовать не выйдет.

Прошу прощения, почему не выйдет? Если я в page process делаю select ... for update, я
в явном виде (пессимистически) блокирую записи. Никакая другая сессия эти записи изменить не сможет пока моя транзакция не закончится. Поясните, пожалуйста, что Вы имеете в виду.
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36393392
dvksqlru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ossv
...Если я в page process делаю select ... for update, я
в явном виде (пессимистически) блокирую записи...

Подобным образом сделать блокировку мне не удалось (использовались сессии от одного пользователя но в разных браузерах (фаерфокс и опера)). Интуитивно согласен с suPPLer что реально это сделать не получится, но вдруг???
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36393715
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ossv Прошу прощения, почему не выйдет? Если я в page process делаю select ... for update, я
в явном виде (пессимистически) блокирую записи. Никакая другая сессия эти записи изменить не сможет пока моя транзакция не закончится. Поясните, пожалуйста, что Вы имеете в виду.

Если это Page Process, который будет выполняться при формировании страницы (On Load), то транзакция закончится не позже, чем по окончанию формирования страницы. Если это Page Process, который выполняется при подтверждении (After Submit), то транзакция закончится не позже, чем по окончанию обработки страницы (Processes Before Computations -> Computations -> Processes Before Validations -> Validations -> Processes after All). Если это On Demand Process, то транзакция закончится с получением ответа от СУБД.

Выше всё изложено очень оптимистически. Поскольку APEX использует асинхронную модель работы с СУБД, то в реалистическом варианте может быть открыто и закрыто несколько сессий при формировании одной страницы. Не надейтесь изменить данные в одном процессе и зафиксировать или откатить их в другом. Для Вас транзакция начинается вместе с выполнением процесса, с окончанием процесса она заканчивается.

Ещё раз: APEX поддерживает оптимистическое и пользовательское блокирование. Пессимистическое блокирование не поддерживает в силу ассинхронной модели работы с СУБД.

"В этом смысл, в этом наша стратегия." (с) к/ф "ДМБ".
...
Рейтинг: 0 / 0
Блокировки в APEX
    #36402743
ossv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer
Ещё раз: APEX поддерживает оптимистическое и пользовательское блокирование. Пессимистическое блокирование не поддерживает в силу ассинхронной модели работы с СУБД.

"В этом смысл, в этом наша стратегия." (с) к/ф "ДМБ".

Смысл будет гораздо понятнее, если сказать, что APEX поддерживает только короткие транзакции, ограниченные либо фазой page rendering, либо page processing. Пессимистические блокировки соответственно поддерживаются только в этих рамках. А ассинхронная модель, то есть отсутствие корреляции по времени между (событиями) запросом и ответом, в APEX не используется и смысла не проясняет.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Блокировки в APEX
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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