5.3. 使用事务对象
如果您要暂停/恢复事务,或者需要明确列出资源,您可能需要直接使用 javax.transaction.Transaction 对象。如 第 5.4 节 “解决 XA 总结问题” 所述,框架或容器通常负责自动列出资源。
5.3.1. 事务接口的定义 复制链接链接已复制到粘贴板!
JTA 事务 接口有以下定义:
5.3.2. 事务方法描述 复制链接链接已复制到粘贴板!
commit(), rollback(), setRollbackOnly() 和 getStatus() 方法的行为与 UserTransaction 界面中对应的方法相同。实际上,UserTransaction 对象是一种方便的打包程序,它可检索当前的事务,然后在 Transaction 对象上调用对应的方法。
另外,Transaction 接口定义了以下方法,在 UserTransaction 接口中没有对应的项:
- enlistResource()
将 XA 资源与当前的事务相关联。
注意此方法在 XA 事务上下文中的关键重要性。它是详细地将多个 XA 资源及当前事务所定为 XA 事务的功能。另一方面,明确列出资源是一个细微差别,您通常期望您的框架或容器为您完成此操作。例如,请参阅 第 5.4 节 “解决 XA 总结问题”。
- delistResource()
解除事务中的指定资源。标志参数可以采用
javax.transaction.Transaction接口中定义的以下整数值之一:-
TMSUCCESS -
TMFAIL -
TMSUSPEND
-
- registerSynchronization()
-
使用当前事务注册
javax.transaction.Synchronization对象。Synchronization对象仅在提交的准备阶段前收到回调,并在事务完成后收到回调。