I'm running tomcat 5.5 with SQL Server 2000. I'm working on adding transaction support through UserTransaction with JOTM.
I installed JOTM, a Transcation Manager, but it doesn't seem to work. When I try to rollback an update, it still commits it.
###My code (snippet):
Connection con = DAOUtil.getConnection();
String sqlStmt = "INSERT INTO Building (Street, City, State, Zip, CLLI, " +
"SWC, ContactName, ContactPhone, CommonName) " +
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement saveBuilding = null;
Context ctx = new InitialContext();
UserTransaction ut = (UserTransaction)ctx.lookup("java:comp/UserTransaction");
ut.begin();
saveBuilding = con.prepareStatement(sqlStmt, Statement.
RETURN_GENERATED_KEYS);
saveBuilding.setString(1, building.getStreet());
...
saveBuilding.execute();
ut.rollback(); //THIS DOESN'T WORK
###Server.xml:
<Server>
<GlobalNamingResources>
<Resource auth="Container" name="UserTransaction"
type="javax.transaction.UserTransaction"
jotm.timeout="60"
factory="org.objectweb.jotm.UserTransactionFactory" />
<Resource name="jdbc/cafe"
type="javax.sql.DataSource"
driverClassName="net.sourceforge.jtds.jdbc.Driver"
password="XXX"
maxIdle="5"
maxWait="300"
validationQuery="Select Val From ValueItem"
username="ABC"
url="jdbc:jtds:sqlserver://SERVER_NAME:1433;
DatabaseName=ABCD;"
factory="org.objectweb.jndi.DataSourceFactory"
maxActive="10" />
</GlobalNamingResources>
</Server>
###domain.xml:
<Context displayName="CaFE"
docBase="CaFE"
path="/CaFE"
reloadable="true"
workDir="C:\Tomcat-5.5\webapps\CaFE\work">
<ResourceLink global="UserTransaction"
name="UserTransaction"
type="javax.transaction.UserTransaction"/>
<ResourceLink global="jdbc/cafe"
name="jdbc/cafe"
type="javax.sql.DataSource"/>
</Context>
I'm able to read/get the UserTransaction from the JNDI tree. But for some reason the transaction doesn't work.
Any ideas?
Thanks in advance.