Обычная версия
Java форум JavaTalks
форум программистов

Поиск   Пользователи   Группы   Регистрация 
 Профиль   Личные сообщения 

 Вход 

Хибер сессию расширить на несколько реквестов? Длинн.тразакц
Список форумов
 ->  Персистентность в Java (JPA, ORM, ODB)


На страницу Пред.  1, 2, 3 
Начать новую тему 
Предыдущая тема :: Следующая тема  
Автор Сообщение
WebPrj : 72
Новичок

СообщениеЯнв 23, 2012 13:28 
Ответить с цитатой
Skipy писал(а):

Делаем таблицу(-ы) для временных данных.
....
Запросы производятся из основных и промежуточных данных, логика слияния несложная.

да, мне этот вариант тоже кажется НАДЁЖНЕЕ для хранения состояния.
Если Веб не позволяет это состояние хранить Smile
----
Ручками, конечно есть работа.
Т.к. в оракле уже есть у каждого объекта метка на сессию - scn строки.
Итого. 2 варианта пока - Длинные, и Временная БД рядом с основной.

Цитата:
Conversation, или user transaction - это некая единица работы с системой с точки зрения пользователя. Обычно она состоит из последовательности шагов, набора запросов к приложению, набора запросов по работе с БД. К примеру, это может быть процедура order placement, которая включает такие шаги: выбора единиц заказа, варианта доставки, варианта оплаты, и т.д. В рамках этих шагов приложению может быть необходимо осуществить N запросов к БД, и розумеется, в данном случае нельзя полагаться на database-level transaction для изоляции конкурентных conversation'ов.

Далее будут показаны различные варианты выбора уровня гранулярности session/transaction scope.

http://samoshkin.blogspot.com/2011/04/nhibernate-session-management.html
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nullvoid : 505
Постоянный посетитель
Откуда: Красноярск

СообщениеЯнв 23, 2012 16:12 
Ответить с цитатой
Всем привет.
Вот тут насколько я понял рецепт от авторов, описаны варианты для решения задачи ТС http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/transactions.html (читать всё)

Хибер сессия на http сессию - антипаттерн, те кто говорят обратное лохи =)
_________________
http://LinguaLeo.ru/r/8b3o08
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
WebPrj : 72
Новичок

СообщениеЯнв 23, 2012 16:39 
Ответить с цитатой
nullvoid писал(а):

Вот тут насколько я понял рецепт от авторов,

не вижу рецепт.
Написано то, что я говорил: "....В Интернете и корпоративных приложений, это не приемлемо для транзакций базы данных....."

nullvoid писал(а):

Хибер сессия на http сессию - антипаттерн, те кто говорят обратное лохи =)

ну ещё бы. Ведь это авторы Хибера. А он не приспособлен для этого.
Цитата:

Вы должны использовать несколько транзакций базы данных для осуществления разговора. В этом случае, сохраняя изоляцию бизнес-процессов становится частичной ответственности уровня приложений. Одного разговора обычно занимает несколько транзакций базы данных. Это будет атомным, если только один из этих транзакций базы данных (последняя) хранит обновленных данных. Все остальные просто читает данные (например, в стиле мастера диалог на протяжении нескольких запрос / ответ циклов). Это проще в реализации, чем это может показаться, особенно если вы используете некоторые возможности в Hibernate:

Автоматическая версий : Hibernate может выполнять автоматическую оптимистичный контроль параллелизма для вас. Он может автоматически обнаружить, если одновременное изменение произошло во время пользователь думаете времени. Проверьте это в конце разговора.

Отдельно стоящих объектов : если вы решите использовать сессии за запрос узор, все загруженные экземпляры будут находиться в отдельные государства во время пользователь думаете времени. Hibernate позволяет прикрепить объектов и сохраняются изменения. Модель называется сессии за запрос-с-отдельные объекты . Автоматическое управление версиями используется для изоляции одновременных изменений.

Extended (или Long) Сессия : Hibernate сессии может быть отключен от основного соединения JDBC после транзакции базы данных было совершено и подключить, когда новый запрос клиента происходит. Эта модель известна как сессия за разговор и делает даже прикрепления ненужным. Автоматическое управление версиями используется для изоляции одновременных изменений и сессии не будет позволено быть сброшены автоматически, но в явном виде.

где тут решение?
- все сначала читают, а последняя правит - это решение?
- или Ext что-то там - решение?
У меня, к примеру, до 1000 пользователей и Оракл. Я что? Должен длинной транзакции бояться?
Нафига мне веб, если я без него за 2 дня наклепаю решение.
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора
nullvoid : 505
Постоянный посетитель
Откуда: Красноярск

СообщениеЯнв 23, 2012 16:44 
Ответить с цитатой
Ндаа
_________________
http://LinguaLeo.ru/r/8b3o08
К началу Посмотреть профиль Отправить личное сообщение Посетить сайт автора ICQ Number
 
Начать новую тему  Ответить на тему
Страница 3 из 3
На страницу Пред.  1, 2, 3
Список форумов
 -> Персистентность в Java (JPA, ORM, ODB)


 
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Java and all Java-related trademarks and logos are trademarks or registered trademarks of Oracle Corporation in the United States and other countries.
Это сайт не относится к фирме Oracle Corporation и не поддерживается ею.

© 2006-2010 www.javatalks.ru: форум java программистов
Используется скрипт phpBB © 2001, 2010 phpBB Group

Хостинг от bizname.ru