I am trying to get the "UserTransaction" working with Following setup :
- Tomcat 4.0.4, Oracle 8.1.7 JDBC driver (classes12.zip) and Tyrex 9.7.0 I get the following exception. I tried different combinations without much luck. I saw some posts that seems to think the exception is because the JDBC driver is non-xa. When I try Oracle XA driver (commented out below in server.xml) I get null data source at JNDI lookup time. I would really appreciate if anybody has a working setup with the above configuration and willing share. I could not find any documentation as to how to get this working. Thanks -Ravi R --------------------------------------------- javax.transaction.HeuristicRollbackException: Transaction has been rolled back at tyrex.tm.TransactionImpl.commit(TransactionImpl.java:724) at tyrex.tm.TransactionImpl.commit(TransactionImpl.java:648) at tyrex.tm.TransactionManagerImpl.commit(TransactionManagerImpl.java:222) at tyrex.tm.UserTransactionImpl.commit(UserTransactionImpl.java:105) at org.apache.jsp.dbtest$jsp._jspService(dbtest$jsp.java:123) Here is my sample configuration and JSP code : 1. server .xml (If I enable the "oracle XA driver, comment out here, I get null DataSource in JSP) <Resource name="myDS" auth="Container" type="tyrex.jdbc.ServerDataSource"/> <ResourceParams name="myDS"> <parameter><name>user</name><value>RAVI</value></parameter> <parameter><name>password</name><value>TEST</value></parameter> <parameter><name>driverClassName</name><value>oracle.jdbc.driver.OracleDriver</value></parameter> <!-- parameter><name>driverClassName</name><value>oracle.jdbc.xa.client.OracleXADataSource</value></parameter --> <parameter> <name>driverName</name> <value>jdbc:oracle:thin:@helios:1521:vcd1</value> </parameter> <parameter> <name>maxActive</name> <value>32</value> </parameter> <parameter> <name>maxIdle</name> <value>4</value> </parameter> </ResourceParams> 2. web.xml <resource-ref> <res-ref-name>myDS</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> 3. Test jsp <%@ page import=" java.util.Collection, java.util.Iterator,, javax.naming.*, javax.sql.*, java.sql.*, javax.transaction.*, javax.naming.*"%> <html> <head> <title>DB Test</title> </head> <body> <% InitialContext initCtx = new InitialContext(); Context envCtx = (Context) initCtx.lookup("java:comp/env"); //DataSource ds = null; Connection conn = null; Object tx = (new InitialContext()).lookup("java:comp/UserTransaction"); UserTransaction utx = (UserTransaction) tx; System.out.println("Get status:"+utx.getStatus()); // If I try the following line I get ClassCastException, the next line seems to work ok //ds = (DataSource)envCtx.lookup("myDS"); tyrex.jdbc.xa.EnabledDataSource ds = (tyrex.jdbc.xa.EnabledDataSource)envCtx.lookup("myDS"); System.out.println("Data source:"+ds); conn = ds.getConnection(); conn.setAutoCommit(false); utx.begin(); if(conn != null) { Statement stmt = conn.createStatement(); stmt.executeUpdate("UPDATE USER SET USERNAME='yyyyy' WHERE PASSWORD='pwd'"); } utx.commit(); %> </body> </html> -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>