0

Websphere 7.0、EJB3.0

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

谢谢!

4

2 回答 2

2

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

如果您需要 WebSphere 7 中的非持久计时器,您可能需要使用AlarmManager

于 2013-03-03T08:19:07.547 回答
0

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

您可以将代码放置在适当的方法中 -onApplicationEnd或者onApplicationStart通过实现ApplicationListener接口,或者您可以参考这里,但前者更好。

否则,可以运行命令以显式取消计时器,如文档中所述。

取消EJBTimers

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).

于 2013-03-04T07:40:58.487 回答