Websphere 7.0,EJB3.0
有没有办法避免默认的EJB计时器持久性。看起来计时器可以在服务器崩溃和重新启动后继续存在。
谢谢!
答案 0 :(得分:2)
Java EE 6(WebSphere 8及更高版本)中添加的非持久性EJB计时器。
如果在WebSphere 7中需要非持久性计时器,则可能需要使用AlarmManager
答案 1 :(得分:0)
EJB-3.0的首选方法是清除服务器关闭/启动时的所有计时器,以避免计时器因故障而持久存在。
您可以通过实施onApplicationEnd
界面将代码放入适当的方法 - onApplicationStart
或ApplicationListener
,或者您可以参考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)
配置它。