没有任何提交的JTA超时

时间:2012-06-14 22:56:11

标签: spring weblogic jta

我有一个非常基本的JTA问题。

我们正在使用Spring的AOP将WebLogicJtaTransactionManager切入点应用于服务类中的任何方法......我们设置tx:method timeout =“60”。

有趣的是在该服务中,我们运行一个select语句来从数据库中检索记录(使用Hibernate / JPA),然后去做一些与数据库/事务无关的工作。该方法运行时间超过60秒,永远不会抛出超时异常,并且永远不会回滚事务。我们不会更新或创建要保留的新对象。

除此之外,我们已将JTA配置为在WebLogic Server上180秒后超时...且应用程序仍未超时。

WLS文档说“事务超时以秒为单位。如果事务在此时间之后仍处于”活动“状态(从begin()开始计算),则会自动回滚。一旦事务转移到准备好的状态但是,此超时参数不适用;重试事务,直到提交所有资源。“

这种行为是否与JTA没有任何提交事实有关,因此超时不一定适用?

或者它是否与以下事实相关:因为没有真正的数据库(插入/更新/删除)所以事务永远不会处于真正的活动状态?

1 个答案:

答案 0 :(得分:0)

JTA事务超时仅适用于基于XA的数据源。您能否确认数据源是使用XA数据库驱动程序设置的?