Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Пессимистическое блокирование и web / 2 сообщений из 2, страница 1 из 1
16.08.2006, 11:30
    #33920974
Tiv
Tiv
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пессимистическое блокирование и web
Допустим есть задача по редактированию некой анкеты. Соответственно ее нужно заблокировать и при сохранении/изменений закрыть транзакцию. Соответственно между загрузкой-блокированием анкеты пользователь может проделать кучу разных действий, включая закрытие браузера. Исходя из web специфики сразу вытекают проблемы.
1. Обычно db сессию получают из пула для определенного действия и по завершению ее отдают сразу в пул. Можно хранить db сессию.
2. Если хранить db сессию, то ее нужно закрывать например при закрытии браузера. Не очень хорошо ждать 20-30 мин пока закроется web сессия. Кроме того, нужно видимо писать сервлет на событие закрытия сессии.

Исходя из этого вопрос: оправдано ли применение пессимистического блокирования в web приложениях? И может кто поделится, как кто концептуально все эти проблемы решал если не используются EJB или какие либо O-R службы.
...
Рейтинг: 0 / 0
16.08.2006, 14:34
    #33921852
carper
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пессимистическое блокирование и web
Во-первых, проблема не только с занятой сессией, а и с самой блокировкой (надеюсь, что хотя бы не на уровне нескольких таблиц?), вы же своими руками себе могилу роете в плане масштабируемости базы.

Во-вторых, IMHO пессиместическая блокировка - это очень сильнодействующее лекарство, обычно применяемое либо в рамках одной, жизненно важной и максимально быстрой составной транзакции, либо поневоле - при административных операциях над самой базой.

WEB здесь не причем - открытое приложение вполне может висеть до мороковкина заговения и у "толстого" клиента.


Если все же есть причины для пессимистической блокировки, то можно это решить средствами самой СУБД, например, в виде процедуры, устанавливающий блокировку, таймер и генерирующей уникальный ID, который потом требует подтверждения через опр. промежуток времени - но это обычно делается только в очень навороченных случаях, т.к. в большинстве вариантов эту проблему гораздо проще решить правильной архитектурой базы и политикакми доступа.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Пессимистическое блокирование и web / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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