Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Допустимый объём данных в сессии, Не ходить в БД дважды 
:(
    Опции темы
Cyclone
Дата 23.11.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 2.5.2007

Репутация: нет
Всего: нет



Добрый день, господа и дамы.
Интересует некий принципиальный вопрос... а именно использование sessionScope при работе с многопользовательской web-системой.

Во-первых, подтвердите, пожалуйста, что Солнце действительно восходит на востоке:
1. Объект Session хранится в памяти сервера, не клиента - верно?
2. Объект сервлета создаётся для каждого обратившегося пользователя - сервлеты ... (как это по-русски? безопасны в многопользовательской среде) ... thread-safe - верно?
2. Объекты в sessionScope обладают thread-safity - наличие множества пользователей не должно привести к путанице в объектах - верно?
3. Session bean - обычный POJO, хранящийся в sessionScope - верно?

Есть ли какие-то разумные границы объёма хранения данных в сессии?
Я не говорю о мегабайтовых бинарниках, конечно. А в текстовых данных можно чувствовать себя свободно?

Ситуация, в общем, обычная. Зашли через сервлетик на страничку, получили там из базы всякие связанные списки, отобразили на страничке.
Дальнейшая работа включает использование полученной информации на других страницах - не получать же их из базы заново, верно?
Как обычно поступают в таких случаях - хранят объекты списков в session бине?

... ещё придумаю.
Нужно подтверждение того, что мыслю я в правильном направлении.
Развёрнутые комменты приветствуются.

Спасибо.
PM MAIL   Вверх
powerOn
Дата 23.11.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(Cyclone @  23.11.2009,  00:09 Найти цитируемый пост)
Есть ли какие-то разумные границы объёма хранения данных в сессии?
Я не говорю о мегабайтовых бинарниках, конечно. А в текстовых данных можно чувствовать себя свободно?


Объем данных хранимых в сессии ограничен по самый OutOfMemoryException. Т.е. не безграничен. Отсюда вывод, что всегда найдется такое количество открытых сессий что бы сервер начал "пробуксовывать". Поэтому, чем меньше данных в сессии тем лучше. По крайней мере вы должны уметь ограничивать размер сессионных данных для пользователя.  В лучшем случае, если в сессии вообще нет бизнес данных. В идеале - полностью stateless обработка запросов.



--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
polosatij
Дата 23.11.2009, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 22.2.2004
Где: Stuttgart<-> ;Karlsruhe, Germany

Репутация: 3
Всего: 8



Цитата(powerOn @  23.11.2009,  08:06 Найти цитируемый пост)
 В лучшем случае, если в сессии вообще нет бизнес данных. В идеале - полностью stateless обработка запросов.



такой вопрос: в некоторых случаях, например, переходах между сайтами и проблемы реализации"Back" в браузере требуют определённых объектов в сессии. в них сохраняются не только откуда пришёл пользователь, но ещё и кое-какая информация в объекте в сессии, если всё же был нажать "Back".

как вы реализуете эту траблу? smile


--------------------
PM   Вверх
powerOn
Дата 23.11.2009, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


software saboteur
****


Профиль
Группа: Участник
Сообщений: 4367
Регистрация: 7.10.2005

Репутация: 28
Всего: 159



Цитата(polosatij @  23.11.2009,  13:41 Найти цитируемый пост)
такой вопрос: в некоторых случаях, например, переходах между сайтами и проблемы реализации"Back" в браузере требуют определённых объектов в сессии. в них сохраняются не только откуда пришёл пользователь, но ещё и кое-какая информация в объекте в сессии, если всё же был нажать "Back".

как вы реализуете эту траблу? smile 


Если возможности отказаться от сессионных данных нет, то нужно их использовать. Я просто хочу сказать, что чем меньше вы используете сессию тем лучше. Это не означает, что использование сессионных данных является антипаттерном.


--------------------
user posted image нет времени думать - нужно писать КОД!

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0419 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.