2010-10-28 26 views
2

J'essaye de déboguer une application web qui rencontre des problèmes de performances. je me suis tourné sur l'enregistrement de mise en veille prolongée et je vois beaucoup de ceci:gestion des sessions hibernate

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 

Je suis préoccupé qu'il n'y a pas de journaux sur « huis clos à »

je suis regarde actuellement à ceci: http://static.springsource.org/spring/docs/2.5.x/reference/orm.html mais il n'a rien qui me donne une tranquillité d'esprit sur les journaux

Répondre

1

Comment accédez-vous aux sessions? Utilisez-vous l'annotation de transaction de printemps?

Nous utilisons le modèle d'hibernation dans notre application actuelle .. bien que ce ne soit apparemment plus nécessaire. Je n'arrive pas à voir ça comme un débogage, bien que je vois d'autres instructions de débogage d'initialisation d'hibernate.

Quoi qu'il en soit, vous pouvez probablement obtenir une référence à l'usine de session et appeler sessionFactory.getStatistics(). GetSessionOpenCount()

Vous pourriez avoir à appeler setStatisticsEnabled (true)

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

Ce serait au moins vous obtenir le nombre de séances ouvertes pour voir si elle est continuellement en hausse.

Pour la réponse de binil, il existe également un rapport de bogue concernant les entrées de journal d'ouverture/fermeture à différents niveaux de consignation. http://opensource.atlassian.com/projects/hibernate/browse/HHH-2425

3

En regardant le source, le message semble être enregistré à partir du constructeur de SessionImpl.java. Il existe une instruction de journal correspondante lorsque les sessions sont fermées (voir la méthode public Connection close() throws HibernateException), mais cela est enregistré au niveau TRACE. Je ne suis pas familier avec slf4j, mais de this piece of documentation il semble que TRACE est à un niveau plus fin que DEBUG. Donc, essayez d'augmenter la quantité de journalisation (peut-être à ALL?) Et vérifiez si les sessions sont fermées.