We have 2 different components using EJBs talking to each. We have 1 session bean
from 1 component calling another session bean from the 2nd component. The 2nd component
uses transactional datasources while the 1st doesnt. We are starting to see the exception
mentioned below and have no idea why this is happening. Any help is appreciated.
Thank you.
Sincerely,
Narayan.
********************************************
weblogic.transaction.RollbackException: Illegal State (Expected: preparing). Name=[EJB
Test.validateUniq(java.lang.String,java.lang.String,java.util.HashMap)],Xid=26:adc2d5c18d486979(6201489),Status=Active
(PrePrepaed),numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds
left=30,activeThread=Thread[ExecuteThread: '10' for queue: 'default',5,Thread Group
for Queue: 'default'],ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=new,assigned=secondserver),SCInfo[domain+firstserver]=(state=pre-prepared),SCInfo[domain+secondserver]=(state=pre-prepared),properties=({weblogic.transaction.name=[EJB
Test.validateUniq(java.lang.String,java.lang.String,java.util.HashMap)], weblogic.jdbc=t3://Test:8101}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=firstserver+localhost:8301+domain+,
Resources={})],CoordinatorURL=firstserver+localhost:8301+domain+) - with nested exception:
[javax.transaction.SystemException: Illegal State (Expected: preparing). Name=[EJB
Test.validateUniq(java.lang.String,java.lang.String,java.util.HashMap)],Xid=26:adc2d5c18d486979(6201489),Status=Active
(PrePrepaed),numRepliesOwedMe=0,numRepliesOwedOthers=0,seconds since begin=0,seconds
left=30,activeThread=Thread[ExecuteThread: '10' for queue: 'default',5,Thread Group
for Queue: 'default'],ServerResourceInfo[weblogic.jdbc.jts.Connection]=(state=new,assigned=secondserver),SCInfo[domain+firstserver]=(state=pre-prepared),SCInfo[domain+secondserver]=(state=pre-prepared),properties=({weblogic.transaction.name=[EJB
Test.validateUniq(java.lang.String,java.lang.String,java.util.HashMap)], weblogic.jdbc=t3://localhost:8101}),OwnerTransactionManager=ServerTM[ServerCoordinatorDescriptor=(CoordinatorURL=firstserver+localhost:8301+domain+,
Resources={})],CoordinatorURL=firstserver+localhost:8301+domain+)] at weblogic.transaction.internal.TransactionImpl.throwRollbackException(TransactionImpl.java:1475)
at weblogic.transaction.internal.ServerTransactionImpl.internalCommit(ServerTransactionImpl.java:263)
at weblogic.transaction.internal.ServerTransactionImpl.commit(ServerTransactionImpl.java:190)
at weblogic.ejb20.internal.BaseEJBObject.postInvoke(BaseEJBObject.java:231)
********************************************
But if I may ask, why aren't you using a TX datasource? Is it because your
database is not XA? If that's the case you can emulate XA with TX
datasources.
Another question is, why would anyone use a non-TX datasource? ;-)
Emmanuel
"Narayan" <krishna...@hotmail.com> wrote in message
news:3cd6eff8$1...@newsgroups2.bea.com...
Emmanuel Proulx wrote:
--
Rajesh Mirchandani
Developer Relations Engineer
BEA Support
Thanks for the replies.
Rajesh,
The 2 comps. are different manager servers on the same domain. The WL passwords are
the same.
Emmanuel,
The reason for using non-TX datasources is, because it is not possible to have 2
tx DSs in the same transaction. It gives us an error when we attempt to do that.
We use CMP or else we would like to start our TXs and end our Txs. Is there a way
around it.
Let me know if you need any more information. Any help is appreciated. Thank you.
Sincerely,
Narayan.