我有一个EJB应用程序,并使用EJB Timer将一些任务(持久化数据库序列ID)放在其上,并且一旦到期,就会从Timer中删除任务并调用某些方法。
我的情况是,在EJB Timer中有大量任务,每当Timer Timeout从Timer获取每个任务并尝试调用某些必须更新某个与任务ID相关联的数据库的方法时。我发现了一些在数据库移动过程中从数据库中删除所有任务的方法。
现在Ejb Timer不断重复超时,任务不断在日志中抛出异常。我不知道如何从EJB Timer中删除这些任务,因此它不会尝试使用不再存在的每个任务ID调用方法。
任何帮助将不胜感激!
谢谢!
答案 0 :(得分:2)
无法从管理控制台中删除计时器,但您可以使用WAS_HOME/bin/cancelEJBTimers
命令将其删除。您可以先使用findEJBTimers
命令查看它们。
答案 1 :(得分:-1)
在cancelEJBTimer.sh
下使用/opt/IBM/WebSphere/AppServer/bin
命令
(你的路径可能不同)。
不要放任何服务器名称和过滤器,它会显示指令。杀死僵尸任务非常容易。