|
|
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
Добрый день ! Есть JBoss 4.0.3 , Hibernate 3.1.3 и десктопное приложение, которое вызывает методы через Stateful session bean. В методе сессия hibernate открывается и закрывается. Соответственно очищается кэш первого уровня. А хотелось бы чтобы объекты вытаскивались из кэша, т.к. бывает что достаточно много вызывов делается из приложения, и соотвественно еще тратится время на создание сессии. Попытка сохранить ссылку на сессию не прошла. При попытке обратиться к сохраненной сессии получаю: org.hibernate.SessionException: Session is closed! Здесь такое обсуждали , но прямого ответа не нашел. Проясните пож-ста: Можно ли извратиться и оставить сессию на все время жизни Session bean ? P.S. рекомендованные стратегии по работе с сессией на форуме читал. Меня можно в это не тыкать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 13:10 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
Думаю, что можно: 1) поэкспериментировать с кэшем второго уровня (на уровне SessionFactory), который не чистится; 2) использовать Session.reconnect(), ведь "Session is closed!" – это не Nullpointer, с этим можно жить; Можно, наверное, и еще что-то придумать? Ссылку глянуть не удалось, т.ч. если говорю то, что Вы и без меня знаете, то не ругайте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 08:14 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
спасибо, pretenderиспользовать Session.reconnect() но, глянув в доку испытал сомнение: Код: plaintext Получается, что этот метод (устаревший) служит для восстановления JDBC соединений. Но попробовать надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 09:53 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
Сейчас перечитал еще раз все (вопрос и свой ответ) и кажется я ошибся. Reconnect() не поможет, похоже, поскольку Вы сами делаете close() сессии, поэтому reconnect() даст Вам ту же самую ошибку.Т.ч. надо думать. Правда, справедливости ради, надо сказать, что смотрел я в исходниках Hibernate 3.0, а не 3.1. Кстати, в 3.0 метод еще не был deprecated. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:28 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
И еще, если взгянуть на документацию (опять же hibernate 3.0), то видим вот такое: hibernate.cache.use_second_level_cache May be used to completely disable the second level cache, which is enabled by default for classes which specify a <cache> mapping. Т.е. это значит, что классы которые кэшируемые Код: plaintext 1. 2. Т.ч. должно все работать через кэш, если у Вас настройки дефолтовые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 10:40 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
спасибо большое, Тоже посмотрел доки только что ;) Видно пришла пора поработать с кэшем 2 -го уровня. А Вы с JBoss не работали ? Не знаете как вырубить лог парсирования HSQL Hibernate ? В jboss-service.xml у меня записано Код: plaintext 1. а в \\server\default\log\server.log все равно пишутся логи. Лишние тормоза хотелось бы отключить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:07 |
|
||
|
JBoss, Hibernate и сессия
|
|||
|---|---|---|---|
|
#18+
авторВидно пришла пора поработать с кэшем 2 -го уровня. По идее с ним не надо специальные какие-то операции делать, его не надо специально включать (главное не выключить случайно). Ну и классам указать, что они кэшируемы <cache> надо. автор А Вы с JBoss не работали ? Не знаете как вырубить лог парсирования HSQL Hibernate ? В jboss-service.xml у меня записано <attribute name="ShowSqlEnabled">false</attribute> а в \\server\default\log\server.log все равно пишутся логи. Лишние тормоза хотелось бы отключить. Про jboss я Вам не скажу, но думаю что jboss тут и не при делах. Зато про логгинг в Hibenrate могу сказать: 1) Hibernate сам свои логи пишет используя commons-logging; 2) Можно управлять логгированием sql запросов Hibenrate-а: В настройках hibernate есть show_sql – поставьте в false: Код: plaintext 1. 2. 3. 4. 5. 6. Опять же, если что-то тривиальное и хорошо известное сказал прошу прощения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2006, 11:45 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2148434]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
38ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 367ms |

| 0 / 0 |
