[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Failure on XAResourceRecoveryTest

clebert.suconic@jboss.com do-not-reply at jboss.com
Fri Sep 7 18:30:10 EDT 2007


Problem solved!

Our testsuite was setting both ObjectStoreDir and XA_NODE_IDENTIFIER on every test. 

This wasn't a problem until we used XidImple directly, as that started a StatusManager before we set XA_NODE_IDENTIFIER, and later the subsequent test would fail on getTransactionStatus:

Because of this scenario, process_id would never be found on _tscTable:

>From jbossts (arjuna):

   public int getTransactionStatus(String transactionType, Uid tranUid)
  |    {
  |       int status = ActionStatus.INVALID;
  | 
  |       // extract process id from uid, use to index into
  |       // hash table to obtain transaction status connector
  |       // with which to retrieve the transaction status.
  | 
  |       String process_id = get_process_id(tranUid);
  | 
  |       if (!_tscTable.containsKey(process_id))
  |       {
  |          updateTSMI();
  |       }
  | 
  |       if (_tscTable.containsKey(process_id))
  |       {
  |          TransactionStatusConnector tsc = (TransactionStatusConnector) _tscTable.get(process_id);
  | 
  |          if (tsc.isDead())
  |          {
  |             _tscTable.remove(process_id);
  |             tsc.delete();
  |             tsc = null;
  |          } else
  |          {
  |             status = tsc.getTransactionStatus(transactionType, tranUid);
  |          }
  |       }
  | 
  | 


Worse then finding a bug in an apple, is finding a half one :-)
This one here was like finding a half one to me... 

TGIF and this is now solved!

And thanks for your help Mark

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4082298#4082298

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4082298



More information about the jboss-dev-forums mailing list