2010-10-28 6 views
2

Я пытаюсь отлаживать веб-приложение, которое имеет некоторые проблемы с производительностью. я включил протоколирование спящего режима, и я вижу много это:Управление сессиями спящего режима

2010-10-28 10:58:00,423 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786198212608 
2010-10-28 10:58:01,390 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786202173440 
2010-10-28 10:58:01,418 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786202288128 
2010-10-28 10:58:26,181 DEBUG [org.hibernate.impl.SessionImpl] - opened session at timestamp: 5276786303717376 

Я обеспокоен тем, что нет журналов о «закрытой сессии на»

я в настоящее время смотрю на это: http://static.springsource.org/spring/docs/2.5.x/reference/orm.html , но он не имеет ничего, что даст мне спокойствие о журналах

ответ

1

Как вы получаете доступ к сеансам? Вы используете аннотацию весной транзакции?

Мы используем шаблон спящего режима в нашем текущем приложении .. хотя это, по-видимому, больше не требуется. Я как-то не вижу, что это отлаживается, хотя я вижу другие операторы отладки инициализации hibernate.

Во всяком случае, вы, вероятно, можете получить ссылку на сессию завод и вызвать sessionFactory.getStatistics(). GetSessionOpenCount()

Вы могли бы назвать setStatisticsEnabled (истинный)

http://docs.jboss.org/hibernate/stable/core/api/org/hibernate/stat/Statistics.html

Это по крайней мере, даст вам количество открытых сессий, чтобы увидеть, постоянно ли он растет.

В ответе Пиньиля есть также отчет об ошибках записи журнала открытия/закрытия на разных уровнях журнала. http://opensource.atlassian.com/projects/hibernate/browse/HHH-2425

3

Глядя на source, сообщение, кажется, быть авторизованы из конструктора SessionImpl.java. Существует соответствующий лог-оператор, когда сеансы закрыты (см. Метод public Connection close() throws HibernateException), но он зарегистрирован на уровне TRACE. Я не знаком с slf4j, но от this piece of documentation он выглядит как TRACE находится на более тонком уровне, чем DEBUG. Поэтому попробуйте увеличить количество регистрации (возможно, до ALL?) И проверить, закрыты ли сеансы.

Смежные вопросы