|
|
|
I suppose that's the safest thing to - I guess I was still in the mindset that the thread pool is not shared, and this is therefore a "never happens" case.
But it would of course be best to play safe, and since it only adds that small block of code, and you've already provided it, why not? Actually, the trigger can't just be released, as it was already marked fired... so it is marked complete and into the error state instead. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
If "qsRsrcs.getThreadPool().runInThread(shell);" in QuartzSchedulerThread returns false, should we be releasing the acquired trigger?
Something like:
if (qsRsrcs.getThreadPool().runInThread(shell) == false) {
try {
qsRsrcs.getJobStore().releaseAcquiredTrigger(ctxt,
trigger);
} catch (SchedulerException se) {
qs.notifySchedulerListenersError(
"An error occured while releasing trigger '"
+ trigger.getFullName() + "'", se);
// db connection must have failed... keep retrying
// until it's up...
releaseTriggerRetryLoop(trigger);
}
}