UserTransaction: Rollback not rolling back
craigpardey Dec 9, 2003 5:50 PMHi,
I am having some difficulties getting a UserTransaction to roll back. The UserTransaction is created in a stateless, BMT session bean. The database is Oracle 8.1.7.
The problem is that data inserted/updated during the transaction remains in the database after the rollback. I have tried many different means of transaction management and none of them seem to make any difference.
Here is a brief snippet of what the code is doing:
UserTransaction userTransaction = null;
try
{
InitialContext context = new InitialContext();
userTransaction = (UserTransaction)context.lookup("UserTransaction");
userTransaction.begin();
doSomeUpdate();
if(1==1)
{
throw new Exception("Just checking the rollback.");
}
userTransaction.commit();
return SUCCESS;
}
catch(Throwable t)
{
try
{
userTransaction.rollback();
}
catch(Throwable x)
{
log.error("Unable to roll back transaction", x);
}
}
Given the number of code permutations I have tried, I believe that it is something to do with the way the datasource is configured, or with Oracle itself.
Here is the datasource configuration.
<depends optional-attribute-name="ManagedConnectionFactoryName">
<!--embedded mbean-->
CDSDataSource
<config-property name="ConnectionURL" type="java.lang.String">
jdbc:oracle:thin:@myserver:1521:mydb
</config-property>
<config-property name="DriverClass" type="java.lang.String">
oracle.jdbc.driver.OracleDriver
</config-property>
<config-property name="UserName" type="java.lang.String">username</config-property>
<config-property name="Password" type="java.lang.String">password</config-property>
<depends optional-attribute-name="OldRarDeployment">
jboss.jca:service=RARDeployment,name=JBoss LocalTransaction JDBC Wrapper
<depends optional-attribute-name="ManagedConnectionPool">
<!--embedded mbean-->
5
15
5000
15
ByContainer
<depends optional-attribute-name="CachedConnectionManager">
jboss.jca:service=CachedConnectionManager
<depends optional-attribute-name="JaasSecurityManagerService">
jboss.security:service=JaasSecurityManager
java:/TransactionManager
<!--make the rar deploy! hack till better deployment-->
jboss.jca:service=RARDeployer