try
{
setNumberOfCalls(2);
setNumberOfResources(1);
TxStats mStats = new TxStats();
int expectedCommitted = 0, expectedRolledback = 0, expectedNested = 0, expectedTx = 0;
for (int j = 0; j < mNumberOfResources; j++)
{
//start transaction
startTx();
Service02 mService = new Service02(mNumberOfResources);
mService.dowork(mMaxIteration);
expectedCommitted += mMaxIteration / 2;
expectedRolledback += mMaxIteration / 2;
expectedNested += mMaxIteration;
expectedTx += mMaxIteration + 1;
if (j % 2 == 0)
{
commit();
expectedCommitted++;
}
else
{
abort();
expectedRolledback++;
}
}
System.err.println("Number of resources = " + mNumberOfResources);
System.err.println("Number of iterations = " + mMaxIteration);
//test what the final stat values are
if (mStats.numberOfAbortedTransactions() != expectedRolledback)
{
Debug("error in number of aborted transactions: " + mStats.numberOfAbortedTransactions() + " expected = " + expectedRolledback);
mCorrect = false;
}
if (mStats.numberOfCommittedTransactions() != expectedCommitted)
{
Debug("error in number of commited transactions: " + mStats.numberOfCommittedTransactions() + " expected = " + expectedCommitted);
mCorrect = false;
}
if (mStats.numberOfNestedTransactions() != expectedNested)
{
Debug("error in number of nested transactions: " + mStats.numberOfNestedTransactions() + " expected = " + expectedNested);
mCorrect = false;
}
if (mStats.numberOfTransactions() != expectedTx)
{
Debug("error in number of transactions: " + mStats.numberOfTransactions() + " expected = " + expectedTx);
mCorrect = false;
}
qaAssert(mCorrect);
}