I set up a daily schedule to run a job at 2am each day, launched on Friday 30 September. On Monday 3rd October, when I checked the logs, it turned out the job failed on Sunday 2nd October after Daylight Saving Time became active at 2am.
The message was:
ERROR 02-Oct-11 01:00:16: Failed notifiying listener [org.oddjob.scheduling.TimerBase$RescheduleStateListener@bcc8f4] of event [JobStateEvent, source=PB_All_Daily_Attempt, COMPLETE]
java.lang.IllegalStateException: An interval can not have a to [Mon Oct 03 02:00:00 EST 2011] before the from [Mon Oct 03 03:00:00 EST 2011]
I think the listener here is a scheduling:retry container that was triggered from the
It seems that Oddjob did partly account for DST, because the log shows the job ran at 01:00 on the Sunday, which was 24 hours after the previous run. But for some reason one of the job listeners failed with the error above (see attached stack trace).
The job XML includes some custom jobs/beans that I can attach if they are of interest, but I don't think they are relevant:
* batch-logging service is a bean that has methods for writing a log record for each job attempt that is used by the ETL jobs.
* datasource is a bean that wraps a commons DBCP connection pooling data source so I can re-use connections over time
* batch is a StructuralJob subclass that accepts one subjob, and registers a "parent" job that it exposes on a property to link subjobs launched together.
* talend is a job that builds the command line to run a Java VM that executes a Talend ETL job and then uses ProcessBuilder to run it.