請教!jboss是否支援servlet中的分散式事務?

yourfriendyan發表於2006-06-21
最近用了jboss 4.0.3sp1+jbossTS 4.2做伺服器,打算利用jboss的分散式事務管理器,遇到了不小的麻煩。
我用的是struts結構,web容器是jboss自帶的tomcat5
資料來源配置 szxmgl-xa-ds.xml,szjdcdb-xa-ds.xml是從jboss的jca目錄中複製修改的,
我用的是informix資料庫,JDBC是Type-4
配置的資料來源在不使用JTA時沒有問題的,用到JTA時程式就會一直執行下去,並且鎖表,不過沒有報錯。具體程式碼如下,請指點
String ls_sql=null;
Context ctx=null;
UserTransaction ut=null;
Connection conn=null;
Connection conn1=null;
try{

ctx = new InitialContext();

ut=(UserTransaction)ctx.lookup("java:/comp/UserTransaction");
ut.begin();

DataSource ds = (DataSource) ctx.lookup("java:/comp/env/jdbc/szjdcdb");
ls_sql=" update y_user set username='yzs' where usercode='001'";
conn=ds.getConnection();
Statement stmt=conn.createStatement();
stmt.execute(ls_sql);
stmt.close();


DataSource ds1 = (DataSource) ctx.lookup("java:/comp/env/jdbc/szxmgl");
ls_sql=" update y_user set username='yzs' where usercode='001'";
conn1=ds.getConnection();
Statement stmt1=conn.createStatement();
stmt1.execute(ls_sql);
stmt1.close();

request.setAttribute("sql","ok");


ut.commit();


}catch(Exception e){
ut.rollback();
request.setAttribute("error",e.toString());
request.setAttribute("sql",ls_sql);
return mapping.findForward("failed");
}finally{

conn.close();
conn1.close();
}

相關文章