Hello,
Here is my Configuration -
Hibernate - 2.1.8
WebSphere - 6.1.0.0
Oracle - 10g
We have two EJB's with business methods which needs to communicate and update info in the DB. The work done across EJB's should be committed as a single unit. Either all changes done by both EJBs needs to be committed or rollbacked if either of these fails.
These two uses hibernate to manipulate the DB & have configured to use container managed transactions. The transaction attributes are set to "Required" for business merhods.
Here is the hibernate configuration file for one of the EJB
Code:
<property name="connection.datasource">jdbc/isDataSource</property>
<property name="dialect">net.sf.hibernate.dialect.OracleDialect</property>
<property name="show_sql">false</property>
<property name="use_outer_join">false</property>
<property name="transaction.factory_class">net.sf.hibernate.transaction.JTATransactionFactory</property>
<propertyname="transaction.manager_lookup_class">net.sf.hibernate.transaction.WebSphereExtendedJTATransactionLookup</property>
<property name="jta.UserTransaction">java:comp/websphere/ExtendedJTATransaction</property>
I get following error when i try to invoke method involving DB operations.
All this setup works fine in Weblogic 9.0 with maintenance pack 3
Before posting this i have searches this forum and tried various things like changing the transaction manager to
WebSphereTransactionLookup or specifying the UserTransaction JNDI entry differently but without any luck.
Would really appreciate any help in terms to getting more insights, resolving this with some patches etc.
I know that we are using pretty old version of the Hibernate but we are in production with this version and cannot just change the implementation version without invoking heavy re-testing costs.
Exception:com.chordiant.dm.ra.util.ServiceException: com.chordiant.dm.dedo.DMServiceException: could not register synchronization with JTA TransactionManager
at com.chordiant.dm.ra.service.cc.ITSService.setResponse(ITSService.java:200)
at com.chordiant.dm.ra.mgdbeans.ResponseMgdBean.setResponse(ResponseMgdBean.java:405)
at com.chordiant.dm.ra.mgdbeans.ResponseMgdBean.respond(ResponseMgdBean.java:248)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at com.sun.el.parser.AstValue.invoke(AstValue.java:130)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274)
at com.sun.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:68)
at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:69)
... 42 more
Caused by: com.chordiant.dm.dedo.DMServiceException: could not register synchronization with JTA TransactionManager
at com.chordiant.dm.is.ejb.InteractionServiceBean.setResponse(InteractionServiceBean.java:128)
at com.chordiant.dm.is.interfaces.EJSRemoteStatelessInteractionService_e04c464a.setResponse(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:64)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:615)
at com.ibm.rmi.util.ProxyUtil$4.run(ProxyUtil.java:727)
at java.security.AccessController.doPrivileged(AccessController.java:241)
at com.ibm.rmi.util.ProxyUtil.invokeWithClassLoaders(ProxyUtil.java:725)
at com.ibm.CORBA.iiop.ClientDelegate.invoke(ClientDelegate.java:1123)
at $Proxy1.setResponse(Unknown Source)
at com.chordiant.dm.is.interfaces._InteractionService_Stub.setResponse(_InteractionService_Stub.java:294)
at com.chordiant.dm.ra.service.cc.ITSService.setResponse(ITSService.java:196)
... 52 more