Am 23.12.2013 10:55 schrieb "Emmanuel Bernard" <emman...@hibernate.org>: > > Sanne, I wonder if that could be used as a way to get rid of the weak > identity hash map we have in Hibernate Search. (I think we got rid of > all ThreadLocal already). > > Steve, do you think I could (ab)use these as Session level cache? I > think OGM could benefit from such feature in a couple of situations. > That would require that from an eventsource, I could reach the list of > listeners to access the state I suppose.
In the OGM case, could such caching facility not be implemented within OgmSession? This seems a bit less abusive. > > Emmanuel > > On Wed 2013-11-13 15:16, Steve Ebersole wrote: > > 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