|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
Коллеги, по-вашему мнению необходима ли блокировка данных с помощью инструкции select ... for update или в случае АРЕХа модно положиться на PAGE CHECKSUM? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2009, 10:37 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
коллега, предлагаю Вам для начала почитать про оптимистические и пессимистические блокировки, а также про проблему потеряных изменений. а то, как мне кажется, Вы не совсем понимаете, о чём говорите. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2009, 22:17 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
добрый желатель, суть-то не в типе блокировки, а в возможности использовать данный механизм в АРЕХ! 1. У меня складывается впечатление, что данные, заблокированные одним пользователем АРЕХ фактически доступны для другого, т.к. сеанс осуществляется от APEX_PUBLIC_USER. 2. Опытным путем установлено, что данные, заблокированные честным сеансом Oraclа в АРЕХ не доступны, до снятия блокировки... 3. Хотелось бы выяснить : возможно ли из АРЕХа заблокировать выбранные данные для других сеансов БД возможно ли из АРЕХа заблокировать выбранные данные для других сеансов АРЕХ при этом очень бы не хотелось использовать схему авторизации DB Account ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2009, 12:22 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
dvksqlru, APEX поддерживает оптимистические блокировки и пользовательские блокировки. Поскольку для работы с БД каждый раз используется теоретически новая сессия, то пессимистическое блокирование реализовать не выйдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2009, 13:58 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
suPPLer APEX поддерживает оптимистические блокировки и пользовательские блокировки. Поскольку для работы с БД каждый раз используется теоретически новая сессия, то пессимистическое блокирование реализовать не выйдет. Прошу прощения, почему не выйдет? Если я в page process делаю select ... for update, я в явном виде (пессимистически) блокирую записи. Никакая другая сессия эти записи изменить не сможет пока моя транзакция не закончится. Поясните, пожалуйста, что Вы имеете в виду. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2009, 23:39 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
ossv ...Если я в page process делаю select ... for update, я в явном виде (пессимистически) блокирую записи... Подобным образом сделать блокировку мне не удалось (использовались сессии от одного пользователя но в разных браузерах (фаерфокс и опера)). Интуитивно согласен с suPPLer что реально это сделать не получится, но вдруг??? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2009, 11:18 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
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 поддерживает оптимистическое и пользовательское блокирование. Пессимистическое блокирование не поддерживает в силу ассинхронной модели работы с СУБД. "В этом смысл, в этом наша стратегия." (с) к/ф "ДМБ". ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2009, 13:20 |
|
Блокировки в APEX
|
|||
---|---|---|---|
#18+
suPPLer Ещё раз: APEX поддерживает оптимистическое и пользовательское блокирование. Пессимистическое блокирование не поддерживает в силу ассинхронной модели работы с СУБД. "В этом смысл, в этом наша стратегия." (с) к/ф "ДМБ". Смысл будет гораздо понятнее, если сказать, что APEX поддерживает только короткие транзакции, ограниченные либо фазой page rendering, либо page processing. Пессимистические блокировки соответственно поддерживаются только в этих рамках. А ассинхронная модель, то есть отсутствие корреляции по времени между (событиями) запросом и ответом, в APEX не используется и смысла не проясняет. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2010, 23:48 |
|
|
start [/forum/topic.php?fid=50&msg=36383340&tid=1877142]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 276ms |
total: | 419ms |
0 / 0 |