Websphere 8.5.5 事务超时 + Spring tx 4.2.5 的奇怪问题

Strange issue with websphere 8.5.5 transaction timeout + Spring tx 4.2.5

我在 Websphere 应用程序服务器上遇到了这个奇怪的问题,但我不明白它是从哪里来的。 如果我解释不好,我很抱歉。 应用程序服务器配置了 60 秒的事务超时。 最近我们在 spring

中为带有事务注释的方法添加了超时
@Transactional(timeout=15)

从部署开始,所有用事务注释的方法似乎都有 15 秒的事务超时。 我们已经检查过,交易中涉及的所有方法都没有注解超时。

应用服务器是 Websphere 8.5.5.11,Spring Tx 4.2.5。 我们没有尝试重新启动服务器,因为它正在生产中。 感谢您的耐心等待。

我找到了解决办法。您必须明确设置默认超时,而不是自动使用 Web 服务器的超时。

    ### TRANSACTION MANAGER ###

    <bean id="jtaTransactionManager"  class="org.springframework.transaction.jta.JtaTransactionManager" >
         <property name="globalRollbackOnParticipationFailure" value="true" />
        <property name="defaultTimeout" value="120" />      
</bean>     



        <tx:annotation-driven transaction-manager="jtaTransactionManager"  />

不知道是不是 spring tx 库和与 websphere 事务管理器交互的问题。

更新 2018 年 3 月 30 日

我们发现在当前版本的spring-tx中存在一个错误,所有的问题都是通过将版本更改为4.3.12来解决的,无论如何我之前发布的解决方案适用于旧版本如果你无法升级您的图书馆。