2019独角兽企业重金招聘Python工程师标准>>>

最近用atomikos的JTA二阶段提交解决多数据源的事务问题。服务在实验环境和测试环境下(oracle版本分别是11.2.0.1和11.2.0.2),跑起来是正常的,但当把服务部署到正式环境(oracle 11.2.0.4)后,奇怪的事情就发生了,一直打印警告 xa异常,具体的异常信息如下:

17:41:49.502  WARN 4924 --- [main] c.a.d.xa.XATransactionalResource         : Error in recoveryjavax.transaction.xa.XAException: nullat oracle.jdbc.xa.OracleXAResource.recover(OracleXAResource.java:703)at com.atomikos.datasource.xa.XATransactionalResource.recoverXidsFromXAResource(XATransactionalResource.java:554)at com.atomikos.datasource.xa.XATransactionalResource.recover(XATransactionalResource.java:512)at com.atomikos.datasource.xa.XATransactionalResource.recoverXidsFromResourceIfNecessary(XATransactionalResource.java:615)at com.atomikos.datasource.xa.XATransactionalResource.endRecovery(XATransactionalResource.java:583)at com.atomikos.icatch.imp.TransactionServiceImp.recover(TransactionServiceImp.java:558)17:41:49.517  WARN 4924 --- [main] c.a.icatch.imp.TransactionServiceImp     : ERROR IN RECOVERYcom.atomikos.datasource.ResourceException: Error in recoveryat com.atomikos.datasource.xa.XATransactionalResource.recoverXidsFromXAResource(XATransactionalResource.java:565)at com.atomikos.datasource.xa.XATransactionalResource.recover(XATransactionalResource.java:512)at com.atomikos.datasource.xa.XATransactionalResource.recoverXidsFromResourceIfNecessary(XATransactionalResource.java:615)at com.atomikos.datasource.xa.XATransactionalResource.endRecovery(XATransactionalResource.java:583)

经过排查后,定位到有可能是oracle 11.2.0.4(这个应该是商业版,不能通过官网下载的)需要自行打开XA的支持,又经过好几个小时尝试后,使用 dba账号 通过以下命令给数据源的用户授予XA权限可以解决问题。

grant select on sys.dba_pending_transactions to <user name>;
grant select on sys.pending_trans$ to <user name>;
grant select on sys.dba_2pc_pending to <user name>;
grant execute on sys.dbms_system to <user name>;

转载于:https://my.oschina.net/thinwonton/blog/2032262

解决atomikos在oracle应用中的XA事务异常 Error in recovery相关推荐

  1. 【分布式事务】面试官问我:MySQL中的XA事务崩溃了如何恢复??

    写在前面 前段时间搭建了一套MySQL分布式数据库集群,数据库节点有12个,用来测试各种分布式事务方案的性能和优缺点.测试MySQL XA事务时,正当测试脚本向数据库中批量插入数据时,强制服务器断电! ...

  2. 解决:-source 1.6 中不支持 diamond 运算符 [ERROR] (请使用 -source 7 或更高版本以启用 diamond 运算符)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 工程打包 mvn clean install 执行报错: 2. 解决方法,在pom中加上如下配 ...

  3. Oracle 存储过程 中如何使用事务Transaction 自主事务 自治事务

    Oracle基础 存储过程和事务 一.事务和存储过程 在存储过程中如何使用事务.当需要在存储过程中同时执行多条添加.修改.删除SQL语句时,为了保证数据完整性,我们需要使用事务.使用方式和在PL-SQ ...

  4. nslang oracle_解决ojdbc14连接oracle报“java.sql.SQLException: Io 异常: Size Data Unit (SDU) mismatch”异常问题...

    一.前言 通过ojdbc14.jar连接oracle数据库,应用运行期间报出"java.sql.SQLException: Io 异常: Size Data Unit (SDU) misma ...

  5. MySQL分布式事务(XA事务)

    MySQL分布式事务(XA事务) 官网:https://dev.mysql.com/doc/refman/5.7/en/xa.html 1.什么是分布式事务 分布式事务就是指事务的参与者.支持事务的服 ...

  6. mysql事务控制(xa分布式事务)和锁定语句_MySQL的SQL语句 -事务性语句和锁定语句(7)- XA 事务...

    XA 事务 InnoDB 存储引擎支持 XA 事务.MySQL XA 的实现基于 X/Open CAE 文档 Distributed Transaction Processing: The XA Sp ...

  7. oracle分区list,Oracle 分区表中存在range-list表分区时遇到问题及解决办法

    Oracle 分区表中存在range-list表分区时遇到问题及解决办法 我们遇到的通常是list分区这种居多,我就不介绍了. 以下解决的是 复合分区情况 表已存在,需要在范围分区中增加一个分区 我们 ...

  8. oracle忽略除数为0,ora-01476除数为0的解决办法,oracle中decode()的使用

    执行报表查询,固定的一个时间点没有数据,应该是有数据的,把前一个时间节点往前调是有的,往后调也有 bebug报错 把sql放到数据库中,发现提示如截图 ====================== 解 ...

  9. oracle连接中出现错误ORA-12541,ORA-12514,ORA-01017的解决方法

    1.出现如下错误:ORA-12541:TNS:no listener,如下图所示: 错误原因是我们没有开启Listener监听器服务,解决方法是在服务中开启这个服务,如下图所示. 2.出现如下错误:O ...

  10. Oracle数据库中scott用户不存在的解决方法

    Oracle数据库中scott用户不存在的解决方法 参考文章: (1)Oracle数据库中scott用户不存在的解决方法 (2)https://www.cnblogs.com/hjweifans/p/ ...

最新文章

  1. Android中Uri的使用
  2. Boost:align down向下对齐的测试程序
  3. 数学三大核心领域概述:代数、几何、分析
  4. IFC2x3标准阅读
  5. nginx多入口配置隐藏.php,Nginx配置tp5支持pathinfo以及隐藏入口文件
  6. dmv io读写高的sql_适用于DBA的前8大新(或增强)SQL Server 2017 DMV和DMF
  7. H5自定义属性详细介绍
  8. omnigraffle 画曲线_OmniGraffle使用的10个小技巧
  9. halcon常用代码(持续更新)
  10. 下一代操作系统与软件
  11. HashMap hash 原理分析
  12. 进程与线程的区别与联系(经典面试题)
  13. 电脑上怎么做pdf文件_PDF文件怎么拆分?一看就会!
  14. 用Python做数据分析之数据统计
  15. SqlServer 查询一段时间,没有数据自动补充0
  16. Python中的可变对象和不可变对象
  17. 未明学院数据分析报告:谁才是淘宝沙发界最受瞩目的明星店铺?大数据分析助你做“星探”!
  18. apt-get安装包失败提示The following packages have unmet dependencies
  19. 企业邮箱使用安全注意事项
  20. 什么是 SAP Support Package Stack

热门文章

  1. Netty in action—ChannelHandler和ChannelPipeline
  2. 优化理论11---- Zoutendijk可行方向法、非线性约束情形、ε起作用约束可行方向法、Frank-Wolfe 方法
  3. 什么是次梯度(次导数)
  4. 力扣-606. 根据二叉树创建字符串
  5. git 合并其他分支代码到自己的分支
  6. Harmony OS — Switch开关状态
  7. 下列软件包有未满足的依赖关系:无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  8. Futter基础第14篇: 中的按钮组件 RaisedButton、FlatButton、OutlineButton、IconButton、ButtonBar以及自定义按钮组件
  9. Android【报错】Failed to resolve: com.android.support:appcompat-v7:28.0.0-alpha【报错】
  10. Android编译判定BoardConfig.mk的宏控是否打开或者有效的验证方法