使用EJB Timer在WebSphere中的Bean事务超时

时间:2015-01-22 17:21:20

标签: java java-ee timeout websphere ejb-3.0

使用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)执行此操作。

1 个答案:

答案 0 :(得分:7)

是的,有可能。您可以通过自定义扩展程序transaction-time-out文件中的ibm-ejb-jar-ext.xml进行设置。

在该文件中定义:

<session name="TimerBean">
        <global-transaction transaction-time-out="7200"/>
</session>
  

组件交易超时
      对于仅使用容器管理的事务的企业bean,指定任何新全局的事务超时(以秒为单位)   容器代表企业启动的事务   豆。对于代表组件启动的事务,   “组件事务超时”设置将覆盖默认总计   事务中配置的事务生存期超时   应用程序服务器的服务设置。

有关详细信息,请查看Configuring transactional deployment attributes