达梦(DM)数据库JDBC分布式事务XAResource

MoMo 2021年6月14日21:20:17
评论
40

1.  概述

XAResource 对象是代 XAConnection 对象参与分布式事务管理的,真正对分布式事务

进行操控的方法都在这个接口中实现。

2.  主要方法介绍

1) public void start(Xid xid, int flags) throws XAException

该方法用于开始一个事务分支。第一个参数 xid 用于指定事务分支的 id,第二个参数 flags

用于指明开始这个事务分支的方式,其合法值及意义如下:

TMJOIN:这个标志指名该事务分支将被合并到之前的具有相同 xid 的事务分支上,

如果资源管理器发现之前没有这个 xid 的事务分支,则抛出异常。

TMRESUME:这个标志指明该事务分支将重新开始之前用 TMSUSPEND 标志结束

的一个事务分支。

TMNOFLAGS:当没有特殊操作而只是开始一个普通的事务分支时,将 flags 置为

TMNOFLAGS

2) public void end(Xid xid, int flags) throws XAException

该方法用于结束一个事务分支。第一个参数 xid 用于指定事务分支的 id,第二个参数 flags

用于指明结束这个事务分支的方式,其合法值及意义如下:

TMSUSPEND:这个标志指明暂时终止该事务分支,之后该事务分支应该被用

TMRESUME 重新开始或者用 RMSUCCESS  TMFAIL 正式结束。

TMSUCCESS:这个标志指明该事务分支成功结束。

TMFAIL:这个标志指明这个事务已经失败,则这个事务分支被资源管理器标记为

只能回滚。

3) public int prepare(Xid xid) throws XAException

该方法用来预提交一个事务分支。参数 xid 用于指定事务分支的 id

可能的返回值有:

XA_OK:该标志明预提交成功。

XA_RDONLY:该标志明事务分支具有只读属性并已被提交。

错误码:预提交失败并返回具体的错误码对应不同的失败信息。

4) public void commit(Xid xid, boolean onePhase) throws XAException

该方法用来提交一个事务分支。第一个参数  xid  用于指定事务分支的  id。第二个参数

onePhase 用来指定是否进行一阶段提交。

5) public void rollback(Xid xid) throws XAException

该方法用来回滚一个事务分支。参数 xid 用户指定事务分支的 id

6) public boolean isSameRM(XAResource xares) throws XAException

该方法用来判断指定的 xares 与当前 XAResource 对象是否是指向同一数据源的两个实

例。

7) public Xid[] recover(int flag) throws XAException

该方法用于返回资源管理器中所有已被预提交的事务分支的 id

flags 的合法值及意义为:

TMSTARTRSCAN | TMENDRSCAN:一次获取到所有的已预提交的事务分支的 id

TMSTARTRSCAN:开始扫描并返回已预提交的事务分支的 id,如果资源管理器中

的已预提交事务分支过多,可能返回的不是全部。

TMNOFLAGS:用于继续扫描已预提交的事务分支的  id。使用这一标志时,之前

应该已经用 TMSTARTRSCAN 开始了扫描。

TMENDRSCAN:这个标志明在此次扫描并返回对应的已预提交的事务分支的 id

后,结束此次扫描。

8) public void forget(Xid xid) throws XAException

该方法用来“遗忘”一个自主完成的事务分支,这里的“遗忘”表示真正释放事务分支,

之前即使一个事务分支已经自主完成,其事务分支对象仍然保留。对于非自主完成的事务分

支使用此方法时将返回异常。

3.  DM 扩展方法介绍

DmdbXAResource 在实现了标准接口定义的方法的基础上,还扩展实现了 heurCommit()

 heurRollback()方法。

1) public void heurCommit(Xid xid) throws XAException

该方法用于自主提交一个事务分支。参数 xid 用于指定事务分支的 id

2) public void heurRollback(Xid xid) throws XAException

该方法用于自主回滚一个事务分支。参数 xid 用于指定事务分支的 id

https://xpanx.com/
MoMo
  • 本文由 发表于 2021年6月14日21:20:17
  • 转载请务必保留本文链接:https://xpanx.com/2975.html
 TongWeb 在企业级应用中的作用 东方通

 TongWeb 在企业级应用中的作用

  应用服务器 TongWeb v7 全面支持 JavaEE7 及部分 JavaEE8 规范,作为基础架 构软件,位于操作系统与应用之间,帮助企业将业务应用集成在一个基础平台上, 为应用高效...
匿名

发表评论

匿名网友 填写信息

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