public interface XAResource
XAResource接口是一个工业标准接口的基于X/Open CAE规范java映射(分布式事务处理:XA规范)。
XA接口在分布式事务处理定义了一个资源管理器和事务管理器之间的合同(DTP)环境。JDBC驱动程序或JMS提供者实现此接口以支持全局事务和数据库或消息服务连接之间的关联。
XAResource接口可以支持任何事务性资源,是由应用程序使用的环境下交易是由外部事务管理器控制。这样的资源的一个例子是一个数据库管理系统。一个应用程序可以通过多个数据库连接访问数据。每个数据库连接都被作为事务资源的事务管理器。事务管理器取得各连接参与全球事务XAResource。事务管理器使用start
方法相关联的全球交易与资源,并利用end
方法分离交易的资源。资源管理器负责将全球交易所有工作的开始和结束之间的数据进行方法调用。
在事务提交时间,资源管理器由事务管理器通知事务管理器准备、提交或回滚一个根据两阶段提交协议的事务。
Modifier and Type | Field and Description |
---|---|
static int |
TMENDRSCAN
结束恢复扫描。
|
static int |
TMFAIL
分离的来电和标记的事务分支只回滚。
|
static int |
TMJOIN
来电者正在加入现有的事务分公司。
|
static int |
TMNOFLAGS
使用tmnoflags显示没有标记值选择。
|
static int |
TMONEPHASE
来电者使用的是一个相位优化。
|
static int |
TMRESUME
来电者恢复与暂停事务分公司的关联。
|
static int |
TMSTARTRSCAN
启动恢复扫描。
|
static int |
TMSUCCESS
从一个事务分支分离来电。
|
static int |
TMSUSPEND
来电者暂停(未结束)其与事务分支的关联。
|
static int |
XA_OK
事务工作已准备好了。
|
static int |
XA_RDONLY
事务分支已是只读的,并已提交。
|
Modifier and Type | Method and Description |
---|---|
void |
commit(Xid xid, boolean onePhase)
有指定的xid全球交易。
|
void |
end(Xid xid, int flags)
结束代表事务分支执行的工作。
|
void |
forget(Xid xid)
告诉资源经理忘了一个试探性地完成事务分支。
|
int |
getTransactionTimeout()
获得当前事务的超时值设置此XAResource实例。
|
boolean |
isSameRM(XAResource xares)
这种方法被称为确定的目标对象表示的资源管理器实例的参数xares为代表的资源管理器实例相同。
|
int |
prepare(Xid xid)
让资源管理器准备交易中指定XID事务提交。
|
Xid[] |
recover(int flag)
从资源管理器中获得准备好的事务分支的列表。
|
void |
rollback(Xid xid)
通知资源管理器代表事务分支完成回滚工作。
|
boolean |
setTransactionTimeout(int seconds)
设置此
XAResource 实例的当前事务超时值。
|
void |
start(Xid xid, int flags)
开始工作在指定的
xid 事务分支代表。
|
static final int TMENDRSCAN
static final int TMFAIL
static final int TMJOIN
static final int TMNOFLAGS
static final int TMONEPHASE
static final int TMRESUME
static final int TMSTARTRSCAN
static final int TMSUCCESS
static final int TMSUSPEND
static final int XA_RDONLY
static final int XA_OK
void commit(Xid xid, boolean onePhase) throws XAException
xid
-全球事务标识符
onePhase
-如果属实,资源管理器应该使用一一阶段提交协议实施工作代表XID做。
XAException
-发生了错误。可能是xa_heurhaz xaexceptions,xa_heurcom,xa_heurrb,xa_heurmix,xaer_rmerr,xaer_rmfail,xaer_nota,xaer_inval,或xaer_proto。
如果资源管理器未提交事务和paramether时就被设置为true,资源管理器会把其中的xa_rb *例外。返回后,资源管理器回滚了分支的工作,并释放了所有持有的资源。
void end(Xid xid, int flags) throws XAException
如果tmsuspend在标志指定,交易部门暂时停止在一个不完整的状态。事务上下文在暂停状态,必须通过指定的start
tmresume恢复方法。
如果tmfail指定工作的部分失败。资源管理器可以将事务标记为“回滚”
如果tmsuccess指定,工作部分已成功完成。
xid
-全局事务标识符作为标识符使用先前在
start
方法相同。
flags
-一个tmsuccess,tmfail,或tmsuspend。
XAException
-发生了错误。可能xaexception值xaer_rmerr,xaer_rmfailed,xaer_nota,xaer_inval,xaer_proto,或xa_rb *。
void forget(Xid xid) throws XAException
xid
-全球事务标识符。
XAException
-发生了错误。可能的例外值xaer_rmerr,xaer_rmfail,xaer_nota,xaer_inval,或xaer_proto。
int getTransactionTimeout() throws XAException
XAResource.setTransactionTimeout
不是调用该方法之前使用,返回值设置为资源管理器的默认超时;否则,在以前的
setTransactionTimeout
调用的返回值。
XAException
-发生了错误。可能的例外值xaer_rmerr和xaer_rmfail。
boolean isSameRM(XAResource xares) throws XAException
xares
An XAResource对象的资源管理器实例是与目标对象资源管理器实例比较。
XAException
-发生了错误。可能的例外值xaer_rmerr和xaer_rmfail。
int prepare(Xid xid) throws XAException
xid
-全球事务标识符。
XAException
。可能的例外值:xa_rb *,xaer_rmerr,xaer_rmfail,xaer_nota,xaer_inval,或xaer_proto。
Xid[] recover(int flag) throws XAException
flag
-一个tmstartrscan,tmendrscan,tmnoflags。tmnoflags时必须使用其他任何标志设置参数。
XAException
-发生了错误。可能的值是xaer_rmerr,xaer_rmfail,xaer_inval,和xaer_proto。
void rollback(Xid xid) throws XAException
xid
-全球事务标识符。
XAException
。
boolean setTransactionTimeout(int seconds) throws XAException
设置此XAResource
实例的当前事务超时值。一旦设置,该超时值是一直有效的setTransactionTimeout
重新调用使用不同的值。将超时值重置为资源管理器所使用的默认值,将值设置为0。如果超时操作执行成功,返回真正的;否则假。如果资源管理器不支持显式设置事务超时值,此方法返回假。
seconds
-秒的事务超时值。
XAException
-发生了错误。可能的例外值xaer_rmerr,xaer_rmfail,或xaer_inval。
void start(Xid xid, int flags) throws XAException
xid
事务分支代表。如果TMJOIN是指定的,开始申请加入交易的资源管理器之前看到的。如果tmresume指定,开始适用于恢复暂停交易的
xid
指定参数。如果没有tmjoin也tmresume指定和指定的
xid
交易之前已经由资源管理器,资源管理器抛出异常的xaexception xaer_dupid错误代码。
xid
-全球事务标识符是与资源有关的。
flags
-一个tmnoflags,tmjoin,或tmresume。
XAException
-发生了错误。可能的例外是xa_rb *,xaer_rmerr,xaer_rmfail,xaer_dupid,xaer_outside,xaer_nota,xaer_inval,或xaer_proto。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.