A-A+

Nutz.DAO+Atomikos出现ResourceException错误

2016年02月12日 技术 暂无评论 阅读 3,634 次

一直使用Atomikos做跨数据库的事务处理,之前都是SpringMVC+Hibernate+Atomikos,因为最近使用Nutz.DAO感觉很轻量很便捷,所以现在有一些项目使用SpringMVC+Nutz.Dao来做,今天遇到跨库需求,所以自然而然的引进了Atomikos,不过就出现了如题的错误,这个错误很奇怪,第一次请求数据库时发生,在之后就不会出现,困扰了很久,错误的具体内容如下:

HTTP Status 500 - Request processing failed; nested exception is com.atomikos.datasource.ResourceException: XA resource 'jdbc_ds2': resume for XID '3137322E31362E352E3234372E746D30303030313030303132:3137322E31362E352E3234372E746D32' raised -5: invalid arguments were given for the XA operation

数据库开始使用的是Mysql5.6,后来尝试使用Oracle时就不会再报错,所以估计是Atomikos操作Mysql时遇到了某种问题或者BUG,于是搜索相关的资料,在stackoverflow上面发现了类似的问题,地址如下:

http://stackoverflow.com/questions/27729496/atomikos-with-mysql-jta-not-working-properly

老外认为是Atomikos的一个BUG,它建议的解决办法如下:

  1. <bean id="dataSource" class="com.atomikos.jdbc.AtomikosDataSourceBean"
  2.         init-method="init" destroy-method="close">
  3. ...
  4. <property name="xaProperties">
  5.    <props>
  6.       <prop key="pinGlobalTxToPhysicalConnection">true</prop>
  7.    </props>
  8. </property>
  9. </bean>

经过测试后,办法有效,但是令我困扰的是在使用Hibernate的时候,即使不加入“pinGlobalTxToPhysicalConnection”也不会报错,有时间再探索吧。下面是完整的配置内容:

  1. <bean id="dataSource2" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
  2.     <property name="uniqueResourceName" value="jdbc_ds2"/>
  3.     <property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource"/>
  4.     <property name="poolSize" value="3"/>
  5.     <property name="maxPoolSize" value="30"/>
  6.     <property name="minPoolSize" value="1"/>
  7.     <property name="xaProperties">
  8.         <props>
  9.             <prop key="user">root</prop>
  10.             <prop key="password">root</prop>
  11.             <prop key="url">jdbc:mysql://127.0.0.1:3306/ceservice?useUnicode=true&amp;charaterEncoding=utf-8</prop>
  12.             <prop key="pinGlobalTxToPhysicalConnection">true</prop>
  13.         </props>
  14.     </property>
  15.     <property name="testQuery" value="select 1"/>
  16. </bean>

给我留言

Copyright © 字痕随行 保留所有权利.   Theme  Ality

用户登录

分享到: