|
|
|
Пессимистическое блокирование и web
|
|||
|---|---|---|---|
|
#18+
Допустим есть задача по редактированию некой анкеты. Соответственно ее нужно заблокировать и при сохранении/изменений закрыть транзакцию. Соответственно между загрузкой-блокированием анкеты пользователь может проделать кучу разных действий, включая закрытие браузера. Исходя из web специфики сразу вытекают проблемы. 1. Обычно db сессию получают из пула для определенного действия и по завершению ее отдают сразу в пул. Можно хранить db сессию. 2. Если хранить db сессию, то ее нужно закрывать например при закрытии браузера. Не очень хорошо ждать 20-30 мин пока закроется web сессия. Кроме того, нужно видимо писать сервлет на событие закрытия сессии. Исходя из этого вопрос: оправдано ли применение пессимистического блокирования в web приложениях? И может кто поделится, как кто концептуально все эти проблемы решал если не используются EJB или какие либо O-R службы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 11:30 |
|
||
|
Пессимистическое блокирование и web
|
|||
|---|---|---|---|
|
#18+
Во-первых, проблема не только с занятой сессией, а и с самой блокировкой (надеюсь, что хотя бы не на уровне нескольких таблиц?), вы же своими руками себе могилу роете в плане масштабируемости базы. Во-вторых, IMHO пессиместическая блокировка - это очень сильнодействующее лекарство, обычно применяемое либо в рамках одной, жизненно важной и максимально быстрой составной транзакции, либо поневоле - при административных операциях над самой базой. WEB здесь не причем - открытое приложение вполне может висеть до мороковкина заговения и у "толстого" клиента. Если все же есть причины для пессимистической блокировки, то можно это решить средствами самой СУБД, например, в виде процедуры, устанавливающий блокировку, таймер и генерирующей уникальный ID, который потом требует подтверждения через опр. промежуток времени - но это обычно делается только в очень навороченных случаях, т.к. в большинстве вариантов эту проблему гораздо проще решить правильной архитектурой базы и политикакми доступа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2006, 14:34 |
|
||
|
|

start [/forum/moderation_log.php?user_name=thedanik1995]: |
0ms |
get settings: |
8ms |
get forum list: |
17ms |
get settings: |
10ms |
get forum list: |
21ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
176ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 1732ms |
| total: | 2047ms |

| 0 / 0 |
