[hibernate-dev] HHH-9993 - IsolationDelegate + no-Connection

Steve Ebersole steve at hibernate.org
Mon Jan 25 12:16:05 EST 2016


HHH-9993[1] is a request to extend IsolationDelegate to cater for
transaction hooks which do not need access to a JDBC Connection.

A quick primer for those unfamiliar, IsolationDelegate is a contract to
allow work to be done in a fashion that makes sure it is isolated from the
main Session transaction.  We have implementations of this to fit JTA and
JDBC scenarios.  Additionally, it allows to indicate that the isolated work
should itself be transacted or not.  In the JDBC-transaction scenario
(which HHH-9993 deals with) transacted-isolated work is achieved by passing
in a separate Connection to use since that is the only way to achieve a new
transaction in JDBC (JDBC has no "suspend/resume" transaction
functionality).

HHH-9993 is again about this isolated, transacted scenario under the
JDBC-transaction handling.  Specifically for hibernate-infinispan call
backs there is no need to obtain the second Connection.  So HHH-9993 is
about reducing the overhead of this call by allowing it a way to say "I
need to do some isolated, transacted work but I do not need the Connection".

For this particular use case that is fine: hibernate-infinispan will never
access the Connection.  I do worry however about this general use-case.  My
concern is specifically that some use cases will attempt to call back into
the Session.  At the moment we do not "protect" against that.

I'd like to get some opinions on this.


[1] https://hibernate.atlassian.net/browse/HHH-9993


More information about the hibernate-dev mailing list