我在WebSphere Application Server上遇到了这个奇怪的问题,但我不设置它来自何处。很抱歉,如果我不太解释。该应用程序服务器在60秒时配置了交易超时。最近,我们添加了春季交易量注释的方法
。@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 Transaction Manager互动。
更新30/03/2018
我们发现,当前版本的Spring-TX中有一个错误,通过将版本更改为4.3.12,无论如何,我在旧版本上发布的解决方案都解决了所有问题,如果您不能升级库。<<<<<<<<<</p>