Websphere EJB3.0计时器避免持久性

时间:2013-03-01 17:17:11

标签: timer persistence websphere ejb-3.0

Websphere 7.0,EJB3.0

有没有办法避免默认的EJB计时器持久性。看起来计时器可以在服务器崩溃和重新启动后继续存在。

谢谢!

2 个答案:

答案 0 :(得分:2)

Java EE 6(WebSphere 8及更高版本)中添加的非持久性EJB计时器。

如果在WebSphere 7中需要非持久性计时器,则可能需要使用AlarmManager

答案 1 :(得分:0)

EJB-3.0的首选方法是清除服务器关闭/启动时的所有计时器,以避免计时器因故障而持久存在。

您可以通过实施onApplicationEnd界面将代码放入适当的方法 - onApplicationStartApplicationListener,或者您可以参考here,但前者更好。

否则,可以运行命令以明确取消计时器中提到的计时器。

  

cancelEJBTimers

This command cancels and removes from persistent storage EJB timers based on the specified filter criteria.

The syntax for this command is: cancelEJBTimers server filter [options]    filter: -all | -timer | -app [-mod [-bean ]]
           -all
           -timer timer id
           -app   application name
           -mod   module name
           -bean  bean name

  options: -host  host name
           -port  portnumber
           -conntype connector type
           -user  userid
           -password password
           -quiet
           -logfile filename
           -replacelog
           -trace
           -help

在EJB-3.1中,使用TimerConfig,您可以使用setPersistent(isPersistent)配置它。