达梦(DM)数据库JDBC分布式事务实例解析

MoMo 2021年6月14日21:21:41
评论
25

以下是一个使用 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/
MoMo
  • 本文由 发表于 2021年6月14日21:21:41
  • 转载请务必保留本文链接:https://xpanx.com/2977.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: