Wednesday, April 24, 2013

Websphere Application server-Transaction across two base servers fails

During a brokerage solution implementation, we have faced a issue of connecting two Websphere application servers. In "SystemOut.log" files, the following error appears.


org.omg.CORBA.TRANSACTION_ROLLEDBACK: 
>> SERVER (id=4773e3aa, host=ICAPNT17) TRACE START:
>>    org.omg.CORBA.TRANSACTION_ROLLEDBACK: javax.transaction.TransactionRolledbackException:  ; nested exception is: 
com.ibm.websphere.csi.CSITransactionRolledbackException:   vmcid: 0x0  minor code: 0  completed: No
>> at com.ibm.ejs.csi.TranStrategy.commit(TranStrategy.java:988)
>> at com.ibm.ejs.csi.TranStrategy.postInvoke(TranStrategy.java:259)
>> at com.ibm.ejs.csi.TransactionControlImpl.postInvoke(TransactionControlImpl.java:570)
>> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4558)
>> at com.ibm.ejs.container.EJSContainer.postInvoke(EJSContainer.java:4372)
>> at com.mubasher.connectors.web.session.EJSRemoteStatelessWebConnectorFacade_415e6c0a.createOrder(Unknown Source)
>> at com.mubasher.connectors.web.session._EJSRemoteStatelessWebConnectorFacade_415e6c0a_Tie.createOrder(_EJSRemoteStatelessWebConnectorFacade_415e6c0a_Tie.java:369)
>> at com.mubasher.connectors.web.session._EJSRemoteStatelessWebConnectorFacade_415e6c0a_Tie._invoke(_EJSRemoteStatelessWebConnectorFacade_415e6c0a_Tie.java:168)
>> at com.ibm.CORBA.iiop.ServerDelegate.dispatchInvokeHandler(ServerDelegate.java:622)
>> at com.ibm.CORBA.iiop.ServerDelegate.dispatch(ServerDelegate.java:475)
>> at com.ibm.rmi.iiop.ORB.process(ORB.java:504)
>> at com.ibm.CORBA.iiop.ORB.process(ORB.java:1571)
>> at com.ibm.rmi.iiop.Connection.respondTo(Connection.java:2771)
>> at com.ibm.rmi.iiop.Connection.doWork(Connection.java:2640)
>> at com.ibm.rmi.iiop.WorkUnitImpl.doWork(WorkUnitImpl.java:63)
>> at com.ibm.ejs.oa.pool.PooledThread.run(ThreadPool.java:118)
>> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1646)
>> SERVER (id=4773e3aa, host=ICAPNT17) TRACE END.
  vmcid: 0x0  minor code: 0  completed: No In class: class com.directfn.tradeweb.plugins.trade.service.CreateOrderService
com.directfn.tradeweb.system.exceptions.ServiceException: javax.transaction.TransactionRolledbackException: CORBA TRANSACTION_ROLLEDBACK 0x0 No; nested exception is:


 I found that this is happening because of  global security enabled default behavior is for transaction protocol messages, e.g. prepare, commit, rollback to be secured. This prevents malicious completion of global transactions.

What we Did

1) Global transaction on WAS requires the two servers to "trust" each other. I solved the problem by importing server A's LTPA key into server B and vice-versa.

2) If you run in an environment where security is not a concern, or the servers are secured by another means, this behavior can be disabled by unchecking the Enable protocol security check box on the transaction
service panel in the admin console

No comments:

Post a Comment