在weblogic执行XA操作的时候,我们会碰到如下的错误,后来发现是JDBC配置的问题。
主要报错:
java.sql.SQLException: XA error: XAER_NOTA : The XID is not valid start() failed on resource

'weblogic.jdbc.jta.DataSource': XAER
_NOTA : The XID is not valid

查了一下,XAER_NOTA说明transaction branch在ResourceManager端(DB, MQ等)不存在。不存在通常由两种可能:
1.transaction branch被timeout掉了,
2.就是这个branch压根就没有在ResourceManager端发起过。

对于1,可以在Weblogic的XAConnectionPool设定中Enable XA Transaction Timeout, 并对此设定一个合理的值,建议这个值比global transaction timeout大。这样weblogic在调用xaStart()的时候,会通知RM,该branch的timeout时间,而不是使用RM自己默认的timeout(对于Oracle, 默认为60秒,但一般会在120秒的时候,tx branch才会被Oracle timeout掉)。

对于2, 一般会跟配置有关系,比如两个XA datasource指向同一个XAConnectionPool, 或多个XAConnectionPool指向同一

个Database,

本例中原来的配置是只一个JDBC POOL:

单子报错如下错。

本案例中详细的报错:
2009-12-30 13:50:27,219 DEBUG [IAAcctConnector] errorFlag : false
2009-12-30 13:50:27,234 ERROR [logger] Error Process = AcctCrmIbsDown
Error Node  = NO_ENTRY
InstanceId = NO_ENTRY
BUsinessId = 376042
City = taizhou
Module Type = CrmIbs_Acct_EAI
Error Code = 6291476
Error Type = 16273440
Error Msg = SqlMapIAManageAcctOssCIDAO postAcct JDBC Exception; nested exception is

org.springframework.jdbc.CannotGetJdbcConnection
Exception: Could not get JDBC connection; nested exception is java.sql.SQLException: Unexpected exception

while enlisting XAConnecti
on java.sql.SQLException: XA error: XAER_NOTA : The XID is not valid start() failed on resource

'weblogic.jdbc.jta.DataSource': XAER
_NOTA : The XID is not valid
oracle.jdbc.xa.OracleXAException
        at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:938)
        at oracle.jdbc.xa.client.OracleXAResource.start(OracleXAResource.java:244)
        at weblogic.jdbc.wrapper.VendorXAResource.start(VendorXAResource.java:50)
        at weblogic.jdbc.jta.DataSource.start(DataSource.java:629)
        at weblogic.transaction.internal.XAServerResourceInfo.start(XAServerResourceInfo.java:1140)
        at weblogic.transaction.internal.XAServerResourceInfo.xaStart(XAServerResourceInfo.java:1072)
        at weblogic.transaction.internal.XAServerResourceInfo.enlist(XAServerResourceInfo.java:240)
        at weblogic.transaction.internal.ServerTransactionImpl.enlistResource

(ServerTransactionImpl.java:463)
        at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1392)
        at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1334)
        at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
        at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
        at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:146)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:100)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:76)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:178)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:309)
        at com.ctzj.eai.cn.oss.CrmIbs.account.dao.ibatis.SqlMapIAManageAcctOssCIDAO.postAcct

(SqlMapIAManageAcctOssCIDAO.java:116)
        at com.ctzj.eai.cn.oss.CrmIbs.account.task.IAAcctDBInsertAcctTask.execute

(IAAcctDBInsertAcctTask.java:71)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.handoverTask

(IAAcctConnectorOut.java:139)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.process

(IAAcctConnectorOut.java:191)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector.doAcctOutProcess

(IAAcctConnector.java:187)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector_xjttxc_ELOImpl.doAcctOutProcess

(IAAcctConnector_xjttxc_ELOIm
pl.java:207)
        at com.ctzj.eai.cn.oss.IAC3OssAdapter.onMessage(IAC3OssAdapter.java:86)
        at weblogic.ejb20.internal.MDListener.execute(MDListener.java:370)
        at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:262)
        at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2678)
        at weblogic.jms.client.JMSSession.execute(JMSSession.java:2598)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1397)
        at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1334)
        at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:396)
        at weblogic.jdbc.jta.DataSource.connect(DataSource.java:354)
        at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:305)
        at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:146)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:100)
        at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:76)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:178)
        at org.springframework.orm.ibatis.SqlMapClientTemplate.insert(SqlMapClientTemplate.java:309)
        at com.ctzj.eai.cn.oss.CrmIbs.account.dao.ibatis.SqlMapIAManageAcctOssCIDAO.postAcct

(SqlMapIAManageAcctOssCIDAO.java:116)
        at com.ctzj.eai.cn.oss.CrmIbs.account.task.IAAcctDBInsertAcctTask.execute

(IAAcctDBInsertAcctTask.java:71)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.handoverTask

(IAAcctConnectorOut.java:139)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.process

(IAAcctConnectorOut.java:191)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector.doAcctOutProcess

(IAAcctConnector.java:187)
        at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector_xjttxc_ELOImpl.doAcctOutProcess

(IAAcctConnector_xjttxc_ELOIm
pl.java:207)
        at com.ctzj.eai.cn.oss.IAC3OssAdapter.onMessage(IAC3OssAdapter.java:86)
        at weblogic.ejb20.internal.MDListener.execute(MDListener.java:370)
        at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:262)
        at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2678)
        at weblogic.jms.client.JMSSession.execute(JMSSession.java:2598)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

SubSystem = 4
Cause = class org.springframework.jdbc.CannotGetJdbcConnectionException
StackTrace = at com.ctzj.eai.cn.oss.CrmIbs.account.dao.ibatis.SqlMapIAManageAcctOssCIDAO.postAcct

(SqlMapIAManageAcctOssCIDAO.java:12
0)
at com.ctzj.eai.cn.oss.CrmIbs.account.task.IAAcctDBInsertAcctTask.execute(IAAcctDBInsertAcctTask.java:71)
at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.handoverTask

(IAAcctConnectorOut.java:139)
at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnectorOut.process(IAAcctConnectorOut.java:191)
at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector.doAcctOutProcess(IAAcctConnector.java:187)
at com.ctzj.eai.cn.oss.CrmIbs.account.connector.IAAcctConnector_xjttxc_ELOImpl.doAcctOutProcess

(IAAcctConnector_xjttxc_ELOImpl.java:
207)
at com.ctzj.eai.cn.oss.IAC3OssAdapter.onMessage(IAC3OssAdapter.java:86)
at weblogic.ejb20.internal.MDListener.execute(MDListener.java:370)
at weblogic.ejb20.internal.MDListener.onMessage(MDListener.java:262)
at weblogic.jms.client.JMSSession.onMessage(JMSSession.java:2678)
at weblogic.jms.client.JMSSession.execute(JMSSession.java:2598)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

解决方法,将97_Pool clone一个为Sync97_Pool是重新配置如下,问题解决:

Weblogic常见故障之二:XAER_NOTA XAException问题的解决的更多相关文章

  1. Weblogic常见故障常:JDBC Connection Pools(转)

    WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...

  2. Weblogic常见故障常:JDBC Connection Pools【转】

    WebLogic Server中数据库连接池是一个经常出问题的地方,总结一下出问题的原因和解决办法. 一.数据库连接泄漏 此类问题一般都是由于开发人员没有正确关闭数据库连接造成的.比如使用完Conne ...

  3. Weblogic常见故障一:JDBC Connection Pools

    最近系统老是出现数据库连接池不够用的问题,由于weblogic数据源里没有配置JDBC连接数,取的是默认值15,太小导致connection耗尽,是不是就报一堆错.后来通过修改WebLogic数据源配 ...

  4. Weblogic常见故障常:JDBC Connection Pools

    http://blog.csdn.net/woshixuye/article/details/24122579 有些时候是数据库连接池出现了问题,测试的时候显示没有连接池了,重启WebLogic都不行 ...

  5. 理解 OpenStack + Ceph (7): Ceph 的基本操作和常见故障排除方法

    本系列文章会深入研究 Ceph 以及 Ceph 和 OpenStack 的集成: (1)安装和部署 (2)Ceph RBD 接口和工具 (3)Ceph 物理和逻辑结构 (4)Ceph 的基础数据结构 ...

  6. [转] Linux运维常见故障排查和处理的技巧汇总

    作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...

  7. mysql主从复制常见故障解决

    一.主从复制常见故障 1.从库已存在数据库,主库建立同名库导致从库同步失败.报错如下: mysql> show slave status\G*************************** ...

  8. Linux运维常见故障排查和处理的33个技巧汇总

    作为linux运维,多多少少会碰见这样那样的问题或故障,从中总结经验,查找问题,汇总并分析故障的原因,这是一个Linux运维工程师良好的习惯.每一次技术的突破,都经历着苦闷,伴随着快乐,可我们还是执着 ...

  9. RAD介绍及实战,LVM介绍及实战,磁盘常见故障

    目录 一.RAID 1.RAID好处: 2.RAID的运行方式: 3.RAID的级别: 二.RAID实战 软RAID 1.RAID0 2.RAID1 3.RAID5 4.RAID10 三.LVM介绍 ...

随机推荐

  1. 【python】pymongo中正则查询时的转义问题

    在查询mongo时用到了正则查询 设字符串为   str = '/ab/cd.ef?g=' 直接用正则查询没有匹配. collection.find({"re":{'$regex' ...

  2. 《逐梦旅程 WINDOWS游戏编程之从零开始》笔记9——游戏摄像机&三维地形的构建

    第21章 游戏摄像机的构建 之前的程序示例,都是通过封装的DirectInput类来处理键盘和鼠标的输入,对应地改变我们人物模型的世界矩阵来达到移动物体,改变观察点的效果.其实我们的观察方向乃至观察点 ...

  3. LocalStorage、SessionStorage使用详解

    https://blog.csdn.net/zhongzh86/article/details/55504381

  4. 前端读者 | 百度前端编码规范(HTML)

    本文来自:百度FEX 1 前言 HTML 作为描述网页结构的超文本标记语言,在百度一直有着广泛的应用.本文档的目标是使 HTML 代码风格保持一致,容易被理解和被维护. 2 代码风格 2.1 缩进与换 ...

  5. vue2.0项目结构和打包发布

    先来一张项目结构图: 本地开发测试运行的命令是npm run dev 打包发布的命令是 npm run build生成的dist文件夹里的文件就是我们可以布置到服务上的文件 但是呢,这打包好的文件的文 ...

  6. CentOS7安装配置WPS

    1.下载 地址:http://wps-community.org/downloads 2.安装 rpm -ivh wps-office-10.1.0.5707-1.a21.x86_64.rpm 3.运 ...

  7. Django2.x版本路由系统的正则写法以及视图函数的返回问题

    一.关于url.py urlpatterns每个元素的不再用url(),而是path(),最重要的一点是,正则的使用需要你自己手动导入re_path,并且在每个使用正则匹配的的元素用re_path() ...

  8. LR脚本用户自定义C语言函数

    LR脚本实战:用户自定义C语言函数 Loadrunner可以使用标准C语言的函数,因此我们可以在脚本中编写自己的函数用于调用,把脚本结构化,更好的进行重用. 先看一个例子: Action() { in ...

  9. python多线程编程(6): 队列同步

    原文请看:http://www.cnblogs.com/holbrook/archive/2012/03/15/2398060.html 前面介绍了互斥锁和条件变量解决线程间的同步问题,并使用条件变量 ...

  10. 洛谷——P1609 最小回文数

    题目描述 回文数是从左向右读和从右向左读结果一样的数字串. 例如:121.44 和3是回文数,175和36不是. 对于一个给定的N,请你寻找一个回文数P,满足P>N. 满足这样条件的回文数很多, ...