5

我们在 weblogic server v10.3.2.0 中面临以下异常。我们正在使用 JRockit JRE 6.0。

每个服务器请求都涉及大约 6-7 个 XA 数据源。当对最后一个数据源的处理刚刚开始时,我们会遇到这个异常。

请有人指教。

java.sql.SQLException: Unexpected exception while enlisting XAConnection 
java.sql.SQLException: Transaction rolled back: setRollbackOnly called on transaction 
at weblogic.jdbc.jta.DataSource.enlist(DataSource.java:1616) 
at weblogic.jdbc.jta.DataSource.refreshXAConnAndEnlist(DataSource.java:1503) 
at weblogic.jdbc.jta.DataSource.getConnection(DataSource.java:446) 
at weblogic.jdbc.jta.DataSource.connect(DataSource.java:403) 
at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:364) 
at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.init(JtaTransaction.java:68) 
at com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.getConnection(JtaTransaction.java:131) 
at com.ibatis.sqlmap.engine.mapping.statement.MappedStatement.executeQueryForObject(MappedStatement.java:120) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:518) 
at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForObject(SqlMapExecutorDelegate.java:493) 
at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForObject(SqlMapSessionImpl.java:106) 
at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForObject(SqlMapClientImpl.java:82) 
4

3 回答 3

1

如果我不得不猜测,我会说最后一个数据源没有正确配置为 XA 数据源,没有安装 XA 驱动程序,或者不支持 XA。

您是否在此处进行任何有趣的异常处理以截断堆栈(捕获重新抛出但仅保留堆栈帧的顶部集)或使用自定义异常处理库?如果你是我会放弃它。似乎应该有一个caused by:与您的数据源驱动程序相关的附加较低级别的堆栈,以显示附加信息。

如果不是这种情况,这是您获得的唯一信息。可能是时候将您的服务器的日志记录提高到debugtrace开始了解 weblogic 如何完成工作了。

或者,如果您受支持,我将与您的供应商核实您的驱动程序版本/配置。如果不是,则需要查找文档并自行验证。

于 2011-08-29T17:31:07.387 回答
1

你说它是最后一个数据源——你读过这个吗?: http: //muness.blogspot.com/2005/09/distributed-transactions-and-timeouts.html

如果您需要更多信息,您可以将 ibatis 替换为带有被黑 com.ibatis.sqlmap.engine.transaction.jta.JtaTransaction.init() 的版本吗?在那里添加一些日志记录,您可能会知道更多。

于 2011-08-29T14:15:14.310 回答
1

正如您所写,此示例中的原因未知。我们可以看到事务已被标记为“必须回滚”,可能是在出现问题时由之前的数据源标记的。

也许你可以检查以前的日志,对于以前的数据源,找出原因?

于 2011-08-29T13:32:52.930 回答