Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Одна открытая сессия / 8 сообщений из 8, страница 1 из 1
26.11.2013, 00:14:44
    #38477471
max_drmick
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
Здравствуйте, уважаемые форумчане!

Подскажите, пожалуйста, возможно я делаю что-то не так

Долго мучаюсь с хибером (с сессиями).
Назрел вопрос - можно ли держать всегда открытую сессию?
У меня сокетсервер, который постоянно обменивается данными с БД, и я подумал какой смысл открывать сессию каждый раз, ведь во-первых одна открытая сессия избавит от lazyinitializationexception, во-вторых на мой взгляд открытие/закрытие сессии это минус к быстродействию.

Но вот проблема, при session.getTransaction().commit() сессия автоматом закрывается. Можно ли сделать так, чтобы сессия не закрывалась?


Спасибо.
...
Рейтинг: 0 / 0
26.11.2013, 09:12:40
    #38477618
maksaimer
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
max_drmick,

Если вы используете DataSource, то там есть пул соединений, которые открыты и ожидают своей очереди. Не думаю что открытие/закрытие сессии дорогостоящая операция.

Почему бы не использовать тот же Spring для управления транзакциями? Мне кажется это удобнее и избавит вас от не очевидных ошибок.
...
Рейтинг: 0 / 0
26.11.2013, 10:52:14
    #38477782
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
max_drmick,
Сессия хибера для обслуживания HTTP юзверов. Если у вас их нет, то может и хибер - оверхед?
...
Рейтинг: 0 / 0
26.11.2013, 11:27:29
    #38477851
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
max_drmickНазрел вопрос - можно ли держать всегда открытую сессию?

Нет. Session это кэш первого уровня. Там хранятся все данные, которые через неё прошли. Есть у хибера опция в виде сессии без состояния. Но на неё было много нареканий.

max_drmickво-первых одна открытая сессия избавит от lazyinitializationexception

Ну, это не есть верный путь использования ленивой инициализации. С тем же успехом, можно просто всю БД загрузить в память и там держать. Никакой ленивой инициализации не нужно.

max_drmick, во-вторых на мой взгляд открытие/закрытие сессии это минус к быстродействию.

Вообще работа с базой, да ещё и через ORM это минус к быстродействию. По-вашему производительность это единственный критерий качества кода?

max_drmickНо вот проблема, при session.getTransaction().commit() сессия автоматом закрывается. Можно ли сделать так, чтобы сессия не закрывалась?
Ну, именно в таком виде нет. Но при особом желании, через менеджер транзакций можно сделать несколько независимых транзакций на одну сессию. Вопрос только зачем.
...
Рейтинг: 0 / 0
26.11.2013, 11:27:44
    #38477852
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
Petro123Сессия хибера для обслуживания HTTP юзверов.
ROFL
...
Рейтинг: 0 / 0
26.11.2013, 13:13:59
    #38478081
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
Blazkowicz,
Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)).
Т.е. о Цели сессий хибера.
...
Рейтинг: 0 / 0
26.11.2013, 13:19:46
    #38478093
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
Petro123Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)).
Т.е. о Цели сессий хибера.
У автора темы - "сокетсервер". Принципиальной разницы с HTTP сервером для Hibernate - нет.
...
Рейтинг: 0 / 0
26.11.2013, 13:33:18
    #38478126
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Одна открытая сессия
BlazkowiczPetro123Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)).
Т.е. о Цели сессий хибера.
У автора темы - "сокетсервер". Принципиальной разницы с HTTP сервером для Hibernate - нет.
а откуда тогда такой сабж вырос? )))).
Я считаю - разница кардинальная. По крайней мере догадался по автору что он умолчал по ТЗ)).
Потом окажется что связь двухстронняя и юзверь всегда один и .....
Удачи.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Одна открытая сессия / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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