[jboss-user] [Datasource Configuration] New message: "Creating 2Phase comit resources"
Joël Hagaï
do-not-reply at jboss.com
Sat Mar 6 07:01:02 EST 2010
User development,
A new message was posted in the thread "Creating 2Phase comit resources":
http://community.jboss.org/message/530305#530305
Author : Joël Hagaï
Profile : http://community.jboss.org/people/heyjojo
Message:
--------------------------------------------------------------
Hello,
We are currently migrating our application technical base from
- JBOSS AS 4.0.3 SP1 to JBOSS AS 4.2.3 GA.
- JRules 6.5 to JRules 7.0.2
- Oracle 9i to Oracle 10g
After installing everything we experienced a problem we never faced before.
In fact every time our web application called the Jrules rule engine we recieved an Exception saying the transaction couln't enlist multiple resources.
After browsing the web we found out there was a change in JBoss's transaction manager default behaviour:
https://jira.jboss.org/jira/browse/JBAS-4467
http://community.jboss.org/docs/DOC-11443
However we cannot figure out why we get this error.
Indeed what we understood from the jboss Datasource documentation is that datasources defined by the tag <xa-datasource> support 2 phase comit and that <local-xa-datasource> ones only support one phase comit.
Yet our application only requires 2 different datasources:
- It's own datasource to access the database, which is defined as a *<local-xa-datasource>*
- and the JRules datasource only used by JRules modules which is defined as a *<xa-datasource>*
Therefore, we shouldn't enlist more than a two phase comit and a one phase comit resource in the same transaction.
We first tried to convert our *<local-xa-datasource>* into a* *<xa-datasource>* thinking it would convert it into a 2 phase comit compatible resource but it didn't change anything.*
So we decided to settup the *com.arjuna.ats.jta.allowMultipleLastResources* property to *true* in the jbossjta-service.xml file. This seems to fix our problem and probably got our application to work just like before.
However as the documentation says this property is only a workaround and we still believe we should find an other solution.
Now, every time our transaction rollbacks on our resource after invoking JRules we get a *javax.transaction.HeuristicMixedException (WARNING)* which we assume means the transaction comited our JRules resource but rollbacked our own.
Is our datasource comprehension incorrect?
Is there an obvious settup configuration we missed?
I noticed the following configuration which as we understand is only used to activate the LRCO optimization, but maybe we misunderstood:
com.arjuna.ats.arjuna.coordinator.commitOnePhase
Do you have any idea?
PS: We decided to post this thread in the datasource section as we believe the problem might be our datasource configuration.
Please excuse our english.
--------------------------------------------------------------
To reply to this message visit the message page: http://community.jboss.org/message/530305#530305
More information about the jboss-user
mailing list