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

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

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

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

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

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

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

Подобным образом сделать блокировку мне не удалось (использовались сессии от одного пользователя но в разных браузерах (фаерфокс и опера)). Интуитивно согласен с suPPLer что реально это сделать не получится, но вдруг???
...
Рейтинг: 0 / 0
30.12.2009, 13:20
    #36393715
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки в APEX
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
10.01.2010, 23:48
    #36402743
ossv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Блокировки в APEX
suPPLer
Ещё раз: APEX поддерживает оптимистическое и пользовательское блокирование. Пессимистическое блокирование не поддерживает в силу ассинхронной модели работы с СУБД.

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

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


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