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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...