我使用的即使UserTransaction,但是无法管理两个数据库的事务。远程序如下:
      InitialContext ctx = getInitialContext();        UserTransaction transaction=(UserTransaction)ctx.lookup("javax.transaction.UserTransaction");
        try{
            System.out.println("begin");            javax.sql.DataSource ds1  = (javax.sql.DataSource)ctx.lookup("GadbTest");
            javax.sql.DataSource ds  = (javax.sql.DataSource)ctx.lookup("JTSTest");
            transaction.begin() ;            System.out.println(" get conn1");
            conn1= ds.getConnection() ;
            String sql="insert into test1 values('1','2')";
            stmt = conn1.createStatement();
            int jj = stmt.executeUpdate(sql);
            conn1.close();
            System.out.println(" get conn2");            conn2 = ds1.getConnection();(程序执行到此句是报错)            System.out.println("get connection success");
            sql = "insert into table1 values('h')";
            stmt1 = conn2.createStatement();
            System.out.println(" excute sql2");
            int qq = stmt1.executeUpdate(sql);
            if(qq == 1){
                System.out.println("throw new exception");
                throw new Exception();
            }            transaction.commit() ;            System.out.println("end");
        }