以下是一个使用 JDBC 的 XA 接口用两阶段提交协议来提交一个事务分支的例子。
DmdbXADataSource xaDS; XAConnection xaCon; XAResource xaRes; Xid xid; Connection con; Statement stmt; int ret; DmdbXADataSource xaDS = new DmdbXADataSource(); /* 获取分布式连接 */ xaCon = xaDS.getXAConnection("jdbc_user", "jdbc_password"); /* 获取代表分布式连接的 XAResource 实例 */ xaRes = xaCon.getXAResource(); con = xaCon.getConnection(); stmt = con.createStatement(); xid = new MyXid(100, new byte[]{0x01}, new byte[]{0x02}); try { /* 开始一个事务分支 */ xaRes.start(xid, XAResource.TMNOFLAGS); stmt.executeUpdate("insert into test_table values (100)"); /* 结束一个事务分支 */ xaRes.end(xid, XAResource.TMSUCCESS); /* 预提交该事务分支 */ ret = xaRes.prepare(xid); if (ret == XAResource.XA_OK) { /* 提交事务分支 */ xaRes.commit(xid, false); } } catch (XAException e) { e.printStackTrace(); } finally { stmt.close(); con.close(); xaCon.close(); }
https://xpanx.com/
评论