from a WebSphere developer it isn't possible to suspend/resume
transaction in any other way. AFAIK the only "supported" way WebSphere
offers for suspension/resuming transactions is through the use of the
UOW API but that works by supplying a callback.
I think the only way to make this work without bigger changes is to use
Mit freundlichen Grüßen,
Am 03.05.2017 um 09:48 schrieb Gail Badner:
Currently, in master and 5.1, WebSphereExtendedJtaPlatform will not
for any tasks that use a DdlTransactionIsolatorJtaImpl.
The problem is that DdlTransactionIsolatorJtaImpl calls
TransactionManager#suspend and #resume on the TransactionManager returned
by WebSphereExtendedJtaPlatform#locateTransactionManager, which throws
I see that Christian suggested a custom JtaPlatform to work around this
issue., which is basically the same as WebSphereJtaPlatform for
If com.ibm.ws.Transaction.TransactionManagerFactory really has been working
since 5.1, it should be safe to update WebSphereExtendedJtaPlatform as
Christian proposed. That would be the simplest, but, I see that
com.ibm.ws.Transaction.TransactionManagerFactory is not listed in
WebSphere's Application Server API. 
I see that WebSphereExtendedJtaPlatform uses classes
in com.ibm.websphere.jtaextensions, which are listed in WebSphere's
Application Server API. I think it would be good thing for Hibernate to
only depend on the API. Unfortunately, I see that the API still does not
expose the TransactionManager.
Is there any way that
WebSphereExtendedJtaPlatform$TransactionManagerAdapter could implement
#suspend and #resume without referring to
com.ibm.ws.Transaction.TransactionManagerFactory? I suspect not, but
figured I'd ask.
Other than that, alternatives I see are:
1) Deprecate WebSphereExtendedJtaPlatform in favor of WebSphereJtaPlatform;
2) Change WebSphereExtendedJtaPlatform as Christian suggested (using
hibernate-dev mailing list