Monday, February 6, 2012

OIM10G:Things to try when Scheduled Tasks are not working


Hi,
I want to discuss a little bit about these common schedule tasks errors and my findings:
20-Dec-2010-08:29:49,874 DEBUG [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ XELLERATE.SCHEDULER – Class/Method: QuartzSchedulerImpl/scheduleJob entered.
20-Dec-2010-08:29:49,874 DEBUG [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ XELLERATE.SCHEDULER – Class/Method: QuartzSchedulerImpl/getQuartzJobDetail entered.
20-Dec-2010-08:29:49,875 DEBUG [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ XELLERATE.SCHEDULER – Creating Quartz Job with job name Manage Reconciliation Events
20-Dec-2010-08:29:49,875 DEBUG [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ XELLERATE.SCHEDULER – Class/Method: QuartzSchedulerImpl/getJobClass entered.
20-Dec-2010-08:29:49,918 FATAL [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ SCHEDULER.WEBSTARTUP – Unable to start scheduler : SchedulerBaseTask
20-Dec-2010-08:29:49,920 DEBUG [ACTIVE] ExecuteThread: ’0′ for queue: ‘weblogic.kernel.Default (self-tuning)’ SCHEDULER.WEBSTARTUP – Class/Method: SchedulerInitServlet/startScheduler left…..
at com.thortech.xl.scheduler.core.quartz.QuartzSchedulerImpl.getJobClass(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzSchedulerImpl.getQuartzJobDetail(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzSchedulerImpl.scheduleJob(Unknown Source)
at com.thortech.xl.scheduler.deployment.webapp.SchedulerInitServlet.initializeScheduler(Unknown Source)
at com.thortech.xl.scheduler.deployment.webapp.SchedulerInitServlet.startScheduler(Unknown Source)
at com.thortech.xl.scheduler.deployment.webapp.SchedulerInitServlet.init(Unknown Source)
at $Proxy105.updateUser(Unknown Source)
at com.thortech.xl.schedule.tasks.tcTskUsrDisable.execute(Unknown Source)
at com.thortech.xl.scheduler.tasks.SchedulerBaseTask.run(Unknown Source)
at com.thortech.xl.scheduler.core.quartz.QuartzWrapper$TaskExecutionAction.run(Unknown Source)
….
The explanation is as follows:
OIM9.x uses two different sets of tables to store data about scheduled tasks:
1) OIM tables – TSK/TSA/TSH
2) Quartz tables – QRTZ_* tables
From my understanding this happens because OIM uses an open source library, Quartz, to do task scheduling. So the QRTZ_* tables are used by the Quartz component, and OIM also has its own tables.
The tables used by the OIM UI are the TSK/TSA/TSH tables. The tables used by the actual scheduler engine are the QRTZ_* tables.
The OIM code is supposed to to keep these two in synch. But sometimes things go wrong and they become out of synch. When they are out of synch, the code gets confused, and various errors result. If we remove the contents of the QRTZ tables, OIM will repopulate them correctly based on the data in the TSK/TSA/TSH tables, thus bringing them back in synch.
As to how they get out of synch, I can’t explain that. It is something we see every now and again, but have not seemed to have gotten to the bottom of why exactly. One possible explanation, is if they have any kind of DB or networking error while OIM is trying to update the tables, that could cause them to get out of synch. If this is just a one off occurrence.
To resolve this issue:
Just stop all tasks, remove all contents of these QRTZ_* tables and restart OIM server.
Reference and base of my researches:
Thiago L Guimaraes

No comments:

Post a Comment