powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JBoss, Hibernate и сессия
8 сообщений из 8, страница 1 из 1
JBoss, Hibernate и сессия
    #33910359
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день !

Есть JBoss 4.0.3 , Hibernate 3.1.3 и десктопное приложение, которое вызывает методы через
Stateful session bean.
В методе сессия hibernate открывается и закрывается. Соответственно очищается кэш первого уровня.
А хотелось бы чтобы объекты вытаскивались из кэша, т.к. бывает что достаточно много вызывов делается
из приложения, и соотвественно еще тратится время на создание сессии.

Попытка сохранить ссылку на сессию не прошла. При попытке обратиться к сохраненной сессии получаю:
org.hibernate.SessionException: Session is closed!

Здесь такое обсуждали , но прямого ответа не нашел.

Проясните пож-ста:

Можно ли извратиться и оставить сессию на все время жизни Session bean ?

P.S. рекомендованные стратегии по работе с сессией на форуме читал. Меня можно в это не тыкать.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912022
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Думаю, что можно:
1) поэкспериментировать с кэшем второго уровня (на уровне SessionFactory), который не чистится;
2) использовать Session.reconnect(), ведь "Session is closed!" – это не Nullpointer, с этим можно жить;
Можно, наверное, и еще что-то придумать? Ссылку глянуть не удалось, т.ч. если говорю то, что Вы и без меня знаете, то не ругайте.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912223
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо,

pretenderиспользовать Session.reconnect()
но, глянув в доку испытал сомнение:
Код: plaintext
Deprecated. Manual reconnection is only needed in the  case  of application-supplied connections, in which  case  the reconnect(java.sql.Connection)  for  should be used. 

Получается, что этот метод (устаревший) служит для восстановления JDBC соединений. Но попробовать надо.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912337
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сейчас перечитал еще раз все (вопрос и свой ответ) и кажется я ошибся. Reconnect() не поможет, похоже, поскольку Вы сами делаете close() сессии, поэтому reconnect() даст Вам ту же самую ошибку.Т.ч. надо думать.
Правда, справедливости ради, надо сказать, что смотрел я в исходниках Hibernate 3.0, а не 3.1. Кстати, в 3.0 метод еще не был deprecated.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912379
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И еще, если взгянуть на документацию (опять же 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.
    < class  ...>
        <cache .../>
    </ class >
по-дефолту в кэш второго уровня попадают и оттуда берутся при последующих обращениях...
Т.ч. должно все работать через кэш, если у Вас настройки дефолтовые.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912503
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое,

Тоже посмотрел доки только что ;)

Видно пришла пора поработать с кэшем 2 -го уровня.

А Вы с JBoss не работали ? Не знаете как вырубить лог парсирования HSQL Hibernate ? В jboss-service.xml у меня записано
Код: plaintext
1.
    <attribute name="ShowSqlEnabled">false</attribute>

а в \\server\default\log\server.log все равно пишутся логи. Лишние тормоза хотелось бы отключить.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912709
pretender
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВидно пришла пора поработать с кэшем 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.
<hibernate-configuration>
    <session-factory>
…
        <property name="show_sql">false</property>
…
    </session-factory>
</hibernate-configuration>
3) Если это не помогает, то возможно у Вас как-то логгинг не до конца настроен. Такое (что логии пишутся, когда их никто не просит) бывает (ну у меня, во всяком случае, такое было), когда неправильно (не до конца) был сконфигурирован логгинг в приложении (commons-logging в сочетании с log4j). В принципе, могу подробнее рассказать (ну как я боролся под Tomcat-ом с «несанкционированным» логгированием в Hibernate), но пока не понятно надо это или нет, в этом проблема или нет.

Опять же, если что-то тривиальное и хорошо известное сказал прошу прощения.
...
Рейтинг: 0 / 0
JBoss, Hibernate и сессия
    #33912777
galisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, просто нет времени покопаться, поэтому и спросил.

В лоб и по быстрому не удалось отключить в свое время. Может еще кто-нибудь из форума подскажет ?
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JBoss, Hibernate и сессия
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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