请教这个社区的专家:关于webshere5 下管理JTA事务的问题
环境:
1、数据库2个:
oracle8.17、oracle8.15
2、运用服务器:websphere5
3、开发环境:wsad5.11
4、数据库驱动:class12.jar(JDBC driver 版本:9.2.0.5.0)
开发中出现的问题:
1、在服务器资源中建立JDBC thin XA连接 test_jta;
2、在test_jta 下建立XA的数据源jdbc/scpsuser,jdbc/finish 分别连接oracle817和oracle815两个数据库;
3、建立下面这个测试JSP(主要代码)
Context initctx = new InitialContext();
javax.transaction.UserTransaction uxa = null;
Connection conn1 = null;
Connection conn2 = null;
try{
Object ux = initctx.lookup("java:comp/UserTransaction");
uxa = (javax.transaction.UserTransaction)ux;
}catch(Exception _e){
out.println(_e.toString());
}
try{
uxa.begin();
DataSource ds1 = (DataSource) initctx.lookup("jdbc/scpsuser");
DataSource ds2 = (DataSource) initctx.lookup("jdbc/finish");
conn1 = ds1.getConnection();
conn2 = ds2.getConnection();
Statement stmt1 = conn1.createStatement();
int i = stmt1.executeUpdate("insert into roles(roles_id,roles_name,roles_describe) values('...','***','***')");
out.println(i + "<br>");
stmt1.close();
out.println("=========================================<br>");
Statement stmt2 = conn2.createStatement();
int j = stmt2.executeUpdate("insert into CIQ_BRANCH(bureau_no,bureau_name) values('..','***')");
out.println(j + "<br>");
stmt2.close();
uxa.commit();
out.println("提交事物");
}catch(Exception _e){
uxa.rollback();
out.println("会滚事务!"+_e.toString());
}finally{
conn1.close();
conn2.close();
out.println("关闭数据库资源");
}
问题:
会滚事务!java.sql.SQLException: DSRA9002E: ResourceException 带有错误代码 null:javax.resource.ResourceException: enlist: caught Exception at com.ibm.ejs.j2c.XATransactionWrapper.enlist(XATransactionWrapper.java:703) at com.ibm.ejs.j2c.ConnectionEventListener.interactionPending(ConnectionEventListener.java:745) at com.ibm.ws.rsadapter.spi.WSRdbManagedConnectionImpl.processInteractionPendingEvent(WSRdbManagedConnectionImpl.java:1446) at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.beginTransactionIfNecessary(WSJdbcConnection.java:329) at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement(WSJdbcConnection.java:719) at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.createStatement(WSJdbcConnection.java:698) at org.apache.jsp._test1._jspService(_test1.java:112) at com.ibm.ws.webcontainer.jsp.runtime.HttpJspBase.service(HttpJspBase.java:89) at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at
...(省略)