This content has been marked as final.
Show 3 replies
-
1. Re: Hibernate statistics and JPA
jkronegg Jan 20, 2009 11:07 AM (in response to markwigmans)I'm using something like:
import org.hibernate.stat.Statistics; @Name("hibernateUtils') public class HibernateUtils { public static Statistics getStatistics() { EntityManager em = (EntityManager)Component.getInstance(EntityManager.class); return ((HibernateSessionProxy)em.getDelegate()).getSession(EntityMode.YOUR_ENTITY_MODE_HERE).getSessionFactory().getStatistics(); } }
Note: error checking and evident imports have been removed in the example above. You may want to add error messages, e.g. if there is no session or if the Delegate is not an HibernateSessionProxy.
In the persistence.xml, I added the following property:
<property name="hibernate.generate_statistics" value="true"/>
-
2. Re: Hibernate statistics and JPA
jkronegg Jan 20, 2009 11:49 AM (in response to markwigmans)Or instead of using the Session, you can simply use:
((HibernateSessionProxy)em.getDelegate()).getSessionFactory().getStatistics();
-
3. Re: Hibernate statistics and JPA
gonorrhea Apr 25, 2009 9:48 AM (in response to markwigmans)I modded the booking example and got the following results:
0:01,205 INFO [StatisticsImpl] Logging statistics.... 0:01,206 INFO [StatisticsImpl] start time: 1240643960318 0:01,207 INFO [StatisticsImpl] sessions opened: 5 0:01,207 INFO [StatisticsImpl] sessions closed: 3 0:01,208 INFO [StatisticsImpl] transactions: 3 0:01,209 INFO [StatisticsImpl] successful transactions: 3 0:01,210 INFO [StatisticsImpl] optimistic lock failures: 0 0:01,211 INFO [StatisticsImpl] flushes: 2 0:01,213 INFO [StatisticsImpl] connections obtained: 4 0:01,214 INFO [StatisticsImpl] statements prepared: 4 0:01,215 INFO [StatisticsImpl] statements closed: 4 0:01,216 INFO [StatisticsImpl] second level cache puts: 0 0:01,217 INFO [StatisticsImpl] second level cache hits: 0 0:01,217 INFO [StatisticsImpl] second level cache misses: 0 0:01,218 INFO [StatisticsImpl] entities loaded: 13 0:01,219 INFO [StatisticsImpl] entities updated: 0 0:01,220 INFO [StatisticsImpl] entities inserted: 0 0:01,221 INFO [StatisticsImpl] entities deleted: 0 0:01,222 INFO [StatisticsImpl] entities fetched (minimize this): 0 0:01,223 INFO [StatisticsImpl] collections loaded: 0 0:01,224 INFO [StatisticsImpl] collections updated: 0 0:01,225 INFO [StatisticsImpl] collections removed: 0 0:01,226 INFO [StatisticsImpl] collections recreated: 0 0:01,228 INFO [StatisticsImpl] collections fetched (minimize this): 0 0:01,229 INFO [StatisticsImpl] queries executed to database: 3 0:01,229 INFO [StatisticsImpl] query cache puts: 0 0:01,231 INFO [StatisticsImpl] query cache hits: 0 0:01,231 INFO [StatisticsImpl] query cache misses: 0 0:01,233 INFO [StatisticsImpl] max query time: 9ms
HibernateUtils:
package org.jboss.seam.example.booking; import org.hibernate.stat.Statistics; import javax.persistence.EntityManager; import org.jboss.seam.persistence.HibernateSessionProxy; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.In; import org.jboss.seam.Component; import org.jboss.seam.annotations.AutoCreate; @Name("hibernateUtils") @AutoCreate public class HibernateUtils { @In EntityManager entityManager; public Statistics getStatistics() { return ((HibernateSessionProxy)entityManager.getDelegate()).getSessionFactory().getStatistics(); } }
HotelBookingAction:
@Begin public void selectHotel(Hotel selectedHotel) { hotel = em.merge(selectedHotel); hibernateUtils.getStatistics().logSummary(); }