使用JBoss / Wildfly,可以使用@TransactionTimeout
专有注释并为特定会话Bean定义事务超时。
使用 IBM WebSphere 执行此操作的等效方法是什么?
我们正在使用EJB Timer,其中一个Bean将在一个多小时内完成。
Wildfly的示例代码:
import org.jboss.ejb3.annotation.TransactionTimeout;
@Stateless
@TransactionTimeout(value=7200)
public class TimerBean {
}
注意:使用WebSphere 8.5。修改全局事务时间不是一个选项,我们需要为特定的会话Bean或者应用程序(EAR)执行此操作。
答案 0 :(得分:7)
是的,有可能。您可以通过自定义扩展程序transaction-time-out
文件中的ibm-ejb-jar-ext.xml
进行设置。
在该文件中定义:
<session name="TimerBean">
<global-transaction transaction-time-out="7200"/>
</session>
组件交易超时
对于仅使用容器管理的事务的企业bean,指定任何新全局的事务超时(以秒为单位) 容器代表企业启动的事务 豆。对于代表组件启动的事务, “组件事务超时”设置将覆盖默认总计 事务中配置的事务生存期超时 应用程序服务器的服务设置。