On 14 November 2013 11:36, Gunnar Morling <gun...@hibernate.org> wrote: > Hi, > > This sounds very promising. > > Regarding the suggested type names, I'd personally prefer SessionEventListener > (without the plural "s") and something like BaseSessionEventListener > instead of EmptySessionEventsListener, as "empty" implies a specific > behavior which a sub-class would not satisfy when overriding methods.
+1 +1 Sanne > > --Gunnar > > > > > 2013/11/13 Steve Ebersole <st...@hibernate.org> > >> I wanted to highlight a new feature in 4.3 as it came about from >> performance testing efforts. Its a way to hopefully help track down >> potential performance problems in applications that use Hibernate. In >> this way it is similar to statistics, but it operates per-Session >> (though certainly custom impls could role the metrics up to a SF level). >> >> It revolves around the SessionEventsListener[1] interface which >> essentially defines a number of start/end pairs for the interesting >> events (for example starting to prepare a JDBC statement and ending that >> preparation). >> >> Multiple SessionEventsListener instances can be associated with the >> Session simultaneously. You can add them programatically to a Session >> using Session#addEventsListeners(SessionEventsListener...) method. They >> can also be added to the Session up-front via the >> SessionFactory#withOptions API for building Sessions. >> >> Additionally there are 2 settings that allow SessionEventsListener impls >> to be applied to all Sessions created: >> >> * 'hibernate.session.events.auto' allows you to name any arbitrary >> SessionEventsListener class to apply to all Sessions. >> * 'hibernate.session.events.log' refers to a particular built-in >> implementation of SessionEventsListener that applies some timings across >> the start/end pairs >> (org.hibernate.engine.internal.LoggingSessionEventsListener). In fact >> this listener is added by default if (a) stats are enabled and (b) the >> log level (currently INFO) of LoggingSessionEventsListener is enabled. >> Below[2] is some sample output of LoggingSessionEventsListener. >> >> There is also a org.hibernate.EmptySessionEventsListener (no-op) class >> to help develop custom ones. >> >> Anyway, as much as anything I wanted to point it out so people can try >> it out and to get feedback. I think the API covers most of the >> interesting events. If you feel there are any missing, lets discuss >> here or on a Jira issue. >> >> >> [1] https://gist.github.com/sebersole/7438250 >> >> [2] >> 14:40:20,017 INFO LoggingSessionEventsListener:275 - Session Metrics { >> 9762 nanoseconds spent acquiring 1 JDBC connections; >> 0 nanoseconds spent releasing 0 JDBC connections; >> 1020726 nanoseconds spent preparing 4 JDBC statements; >> 1442351 nanoseconds spent executing 4 JDBC statements; >> 0 nanoseconds spent executing 0 JDBC batches; >> 0 nanoseconds spent executing 0 L2C puts; >> 0 nanoseconds spent executing 0 L2C hits; >> 0 nanoseconds spent executing 0 L2C misses; >> 2766689 nanoseconds spent executing 1 flushes (flushing a total of >> 3 entities and 1 collections); >> 1096552384585007 nanoseconds spent executing 2 partial-flushes >> (flushing a total of 3 entities and 3 collections) >> } >> _______________________________________________ >> hibernate-dev mailing list >> hibernate-dev@lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/hibernate-dev >> > _______________________________________________ > hibernate-dev mailing list > hibernate-dev@lists.jboss.org > https://lists.jboss.org/mailman/listinfo/hibernate-dev _______________________________________________ hibernate-dev mailing list hibernate-dev@lists.jboss.org https://lists.jboss.org/mailman/listinfo/hibernate-dev