[jboss-jira] [JBoss JIRA] Commented: (JBTM-128) warning with TransactionManager interface in JTS with external TM
Mark Little (JIRA)
jira-events at jboss.com
Sun Sep 24 01:52:02 EDT 2006
[ http://jira.jboss.com/jira/browse/JBTM-128?page=comments#action_12343896 ]
Mark Little commented on JBTM-128:
----------------------------------
This is a result of using interoposition on a remote transaction manager: the TM is not local so there will be no BasicAction instance. The code needs to duplicate the contents of the ClassCastException to cover this:
try
{
/*
* If this is an imported transaction and we have just performed
* interposition, then register a purely local Synchronization.
* This gets us over a performance issue with JacORB.
*/
theTx = (TwoPhaseCoordinator) BasicAction.Current();
if (theTx != null) // TM is local
theTx.addSynchronization(new LocalCleanupSynchronization(this));
else
registerSynchronization(new CleanupSynchronization(this));
}
catch (ClassCastException ex)
{
/*
* Not a local/interposed transaction.
*/
registerSynchronization(new CleanupSynchronization(this));
}
> warning with TransactionManager interface in JTS with external TM
> -----------------------------------------------------------------
>
> Key: JBTM-128
> URL: http://jira.jboss.com/jira/browse/JBTM-128
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JTS Implementation
> Affects Versions: 4.2.1
> Environment: TS 4.2.1 with JacORB on jdk 1.5.0_07, fedora core 5 linux
> Reporter: Jonathan Halliday
> Assigned To: Mark Little
>
> When using JTS with external transaction manager and accessing transaction via javax.transaction.TransactionManager interface, an empty transaction generates a warning:
> 2006-09-22 14:35:10,928 [main] WARN com.arjuna.ats.jta.logging.loggerI18N - [com.arjuna.ats.internal.jta.transaction.jts.syncproblem] [com.arjuna.ats.internal.jta.transaction.jts.syncproble] - cleanup synchronization failed to register:
> java.lang.NullPointerException
> at com.arjuna.ats.internal.jta.transaction.jts.TransactionImple.<init>(TransactionImple.java:136)
> at com.arjuna.ats.internal.jta.transaction.jts.BaseTransaction.begin(BaseTransaction.java:128)
> This does not occur when using a local transaction manager or managing the transaction through OTSManager.get_current instead.
> Test code to reproduce warning:
> System.setProperty("com.arjuna.ats.jta.jtaTMImplementation","com.arjuna.ats.internal.jta.transaction.jts.TransactionManagerImple");
> System.setProperty("com.arjuna.ats.jta.jtaUTImplementation","com.arjuna.ats.internal.jta.transaction.jts.UserTransactionImple");
> ORB myORB = ORB.getInstance("ServerSide");
> OA myOA = OA.getRootOA(myORB);
> myORB.initORB(args, null);
> myOA.initOA();
> javax.transaction.TransactionManager transactionManager = com.arjuna.ats.jta.TransactionManager.transactionManager();
> transactionManager.begin();
> transactionManager.commit();
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-jira
mailing list