Details
-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
JBossAS-4.0.2 Final
-
None
Description
XAConnection pool defined in JBoss (see attachment).
JDBC Connection is resued across TransactionManager suspend/resume calls with second transaction rolled back:
================================================================================================
UserTransaction userTransaction = (UserTransaction)Locator.lookup("java:comp/UserTransaction");
TransactionManager tm = (TransactionManager)Locator.lookup("java:/TransactionManager");
DataSource dataSource = Locator.getDataSource("java:/TXDataSource");
userTransaction.begin();
Connection connection = dataSource.getConnection();
// insert record in DB
doSmth(connection, "A");
// suspend
Transaction transaction = tm.suspend();
// start another transaction
userTransaction.begin();
doSmth(connection, "B");
userTransaction.rollback();
// resume first tx
tm.resume(transaction);
userTransaction.commit();
================================================================================================
// insert method
private void doSmth(Connection conn, String value) throws SQLException {
PreparedStatement ps = null;
try
finally
}
================================================================================================
Expected result: 1 rows in a table after execution of the above code. Actual result in JBoss: 2 rows.
Same test works as expected in WebLogic 8.1.4