|
|
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане! Подскажите, пожалуйста, возможно я делаю что-то не так Долго мучаюсь с хибером (с сессиями). Назрел вопрос - можно ли держать всегда открытую сессию? У меня сокетсервер, который постоянно обменивается данными с БД, и я подумал какой смысл открывать сессию каждый раз, ведь во-первых одна открытая сессия избавит от lazyinitializationexception, во-вторых на мой взгляд открытие/закрытие сессии это минус к быстродействию. Но вот проблема, при session.getTransaction().commit() сессия автоматом закрывается. Можно ли сделать так, чтобы сессия не закрывалась? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 00:14:44 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
max_drmick, Если вы используете DataSource, то там есть пул соединений, которые открыты и ожидают своей очереди. Не думаю что открытие/закрытие сессии дорогостоящая операция. Почему бы не использовать тот же Spring для управления транзакциями? Мне кажется это удобнее и избавит вас от не очевидных ошибок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 09:12:40 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
max_drmick, Сессия хибера для обслуживания HTTP юзверов. Если у вас их нет, то может и хибер - оверхед? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 10:52:14 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
max_drmickНазрел вопрос - можно ли держать всегда открытую сессию? Нет. Session это кэш первого уровня. Там хранятся все данные, которые через неё прошли. Есть у хибера опция в виде сессии без состояния. Но на неё было много нареканий. max_drmickво-первых одна открытая сессия избавит от lazyinitializationexception Ну, это не есть верный путь использования ленивой инициализации. С тем же успехом, можно просто всю БД загрузить в память и там держать. Никакой ленивой инициализации не нужно. max_drmick, во-вторых на мой взгляд открытие/закрытие сессии это минус к быстродействию. Вообще работа с базой, да ещё и через ORM это минус к быстродействию. По-вашему производительность это единственный критерий качества кода? max_drmickНо вот проблема, при session.getTransaction().commit() сессия автоматом закрывается. Можно ли сделать так, чтобы сессия не закрывалась? Ну, именно в таком виде нет. Но при особом желании, через менеджер транзакций можно сделать несколько независимых транзакций на одну сессию. Вопрос только зачем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 11:27:29 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
Petro123Сессия хибера для обслуживания HTTP юзверов. ROFL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 11:27:44 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)). Т.е. о Цели сессий хибера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 13:13:59 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
Petro123Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)). Т.е. о Цели сессий хибера. У автора темы - "сокетсервер". Принципиальной разницы с HTTP сервером для Hibernate - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 13:19:46 |
|
||
|
Одна открытая сессия
|
|||
|---|---|---|---|
|
#18+
BlazkowiczPetro123Ты все верно описал Технически. Я по простому о коротких транзакциях и изоляции сессий юзверов)). Т.е. о Цели сессий хибера. У автора темы - "сокетсервер". Принципиальной разницы с HTTP сервером для Hibernate - нет. а откуда тогда такой сабж вырос? )))). Я считаю - разница кардинальная. По крайней мере догадался по автору что он умолчал по ТЗ)). Потом окажется что связь двухстронняя и юзверь всегда один и ..... Удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.11.2013, 13:33:18 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38478093&tid=2128128]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 519ms |

| 0 / 0 |
