WEB开发网
开发学院软件开发Java 关于Weblogic中XAER_NOTA XAException的两种解释 阅读

关于Weblogic中XAER_NOTA XAException的两种解释

 2009-09-22 00:00:00 来源:WEB开发网   
核心提示: rd = (XAResourceDescriptor) create(xarName, aXar, DYNAMIC);3.1.4: XAResourceDescriptor创建完成后,我们会将该 resourceDescriptor放入 resourceDescriptorList中,关于Web

rd = (XAResourceDescriptor) create(xarName, aXar, DYNAMIC);

3.1.4: XAResourceDescriptor创建完成后,我们会将该 resourceDescriptor放入 resourceDescriptorList中,此时 resourceDescritporList中对象如下:

By instance: XADatasource_12, XADatasource_22,XADatasource_11

By name: XAPool_A, XAPool_B,weblogic, jdbc.jta.DataSource

这是返回到3.1.2的XAServerResourceInfo初始化中,我们将该resourceInfo的xaResource设定为传入的参数 xar,resourceInfo的 name被设定为3.1.3中的xarName,即weblogic.jdba.jta.DataSource.

3.1.5:回到3.1.1, XAServerResourceInfo实例创建后,我们根据resourceInfo的name,来检查当前tx的resourceInfoList 是否存在对应的resourceInfo,对于一个刚刚开始的transaction,此时它的resourceInfoList 是空的。如果同名的 resourceInfo被detect到,我们会将该resourceInfo的 enlistElseWhere置为true(即已被enlist)。因为我们新创建的resourceInfo之前没有被enlist过,所以我们需要调用resourceInfo的enlist()来将 XADatasource_11 enlist到当前tx中。此时当前transaction的resourceInfoList 对象如下:

By instance: XADatasource_11

By name: weblogic.jdbc.jta.Datasource

3.1.6: 在resourceInfo的enlist中,如果resourceInfo的 enlistElseWhere为true, 将要传递给xaStart的flag为TMNOFLAGS, 否则为 TMJOIN。然后获取调用

Xid bXid = getXIDwithBranch((XidImpl)tx.getXID())

获取事务分支ID, 最后综合BRANCH_ID, FLAGS 来通知RESOURCE_MANAGER(DataBase_A)启动一个事务。

注意:TMNOFLAGS是通知RESOURCE_MANAGER启动 一个新事务

上一页  1 2 3 4 5  下一页

Tags:关于 Weblogic XAER

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接