[hibernate-dev] WebSphereExtendedJtaPlatform (HHH-11606)

Christian Beikov christian.beikov at gmail.com
Wed May 3 05:03:25 EDT 2017


According to this answer 
<http://stackoverflow.com/questions/37185697/using-com-ibm-ws-transaction-transactionmanagerfactory-in-websphere-8-5> 
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 
com.ibm.ws.Transaction.TransactionManagerFactory.


Mit freundlichen Grüßen,
------------------------------------------------------------------------
*Christian Beikov*
Am 03.05.2017 um 09:48 schrieb Gail Badner:
> Currently, in master and 5.1, WebSphereExtendedJtaPlatform will not work
> 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
> UnsupportedOperationException.
>
> I see that Christian suggested a custom JtaPlatform to work around this
> issue.[1], which is basically the same as WebSphereJtaPlatform for
> WebSphereEnvironment#WS_5_1.
>
> 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. [2]
>
> 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
> com.ibm.ws.Transaction.TransactionManagerFactory);
>
> Other ideas?
>
> Thanks,
> Gail
>
> [1]
> https://hibernate.atlassian.net/browse/HHH-11606?focusedCommentId=92405&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-92405
> [2]
> https://www.ibm.com/support/knowledgecenter/en/SSEQTP_8.5.5/com.ibm.websphere.javadoc.doc/web/apidocs/index.html
> _______________________________________________
> hibernate-dev mailing list
> hibernate-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hibernate-dev



More information about the hibernate-dev mailing list