Question

I have an EJB application and used EJB Timer to place some tasks(persisted database sequence ID) with expire date/time on it and once time expires remove the tasks from the Timer and invoke some method.

I am in situation that there are bunch of the tasks placed in EJB Timer and whenever Timer Timeouts and it gets each of the tasks from Timer and try to invoke some method that has to update some database associated with task id. I found some how those all tasks are deleted from database during some database moves.

Now Ejb Timer keep repeating the Timeout and the tasks keep throwing exception in logs. I don't the way I do not know how to remove these tasks from EJB Timer so it does not try to call method with each task id which are no longer there.

Any help will be appreciated!

Thanks!

No correct solution

OTHER TIPS

There is no ability to remove timers from the admin console, but you can use the WAS_HOME/bin/cancelEJBTimers command to remove them. You can view them first using the findEJBTimers command.

Use cancelEJBTimer.sh command under /opt/IBM/WebSphere/AppServer/bin (your path may be different).

Don't put any server name and filter and it will display the instruction. It is very easy to kill the zombie tasks.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top