EnterpriseOne Job Scheduler Time Zone

david.ruprecht

Member
My question is regarding the JDE EnterpriseOne Job Scheduler in relation to times zones and Daylight Savings Time. The question is stated after the background information if you are not interested in the details.

Background Information: Our E1 system is setup with UTC as our local time. In other words, our Enterprise server location is where there is zero offset from UTC/GMT. We have essentially setup our system with GMT as our local time. This requires users to be setup not for their time zone but for "System Time" which does not offset any of the displayed times in E1. Instead the time is simply read straight from the database with no offset.

Job Scheduler: When viewing our job scheduler application we use processing options that are set to adjust the job scheduler times for our local time zone and also for Daylight Savings Time.

My question is: Why do we need to use processing options to adjust for our local time zone when viewing the list of scheduled jobs? Why doesn't the job scheduler run based on the adjusted UTC as oppose to the time we are setting the jobs to run at (with local time zone offset)?

An example: When looking at the job scheduler I set the processing options to adjust for UTC-06:00 and also adjust for Daylight Saving Time. This allows me to see all the jobs we have scheduled and at what times. If I schedule a job to run at 06:00 the job will run the next day at 06:00 which is actually not what I would expect. What I would expect that the job should run at 11:00 because that is what the UTC equivalent would be if I was not viewing the list of scheduled jobs. Isn't it the case that the job scheduler will run the scheduled job based on the UTC time the job is scheduled for?
 
The scheduler records store time as a UTC date/time number similar to Unix epoch timestamps. The difference is that JDE stores the time as the number of minutes from epoch versus the Unix's number of seconds from epoch. The underlying scheduler records always store time as UTC regardless of what timezone offset your JDE scheduler kernel is running under.

The scheduler application (P91300) will only manipulate records that have the same TIMEZONE, DST flag and DST rule as the processing options on the version of P91300 you are running.

Based on your description of UTC-6 with DST I assume you are using TZ 20 with the option to adjust for DST and a DST rule of USA. When you add a record for 06:00 under those conditions the correct UTC time value for 06:00 CST is written the the database. This assures that the scheduler kernel will run the job at 06:00 CST. You don't need to take the UTC offset into account when you decide what time to place on the job. It will launch at the correct time for the specific TZ/DST rule you schedule it under.
 
Does the JDE scheduler kernel run with the timezone offset of the box/server it is running on or is there a location it is explicitly set?

I have looked at the *SCHEDULER record in the F91300 and it does not have a timezone entry in the SJTIMEZONES column like the other records in the F91300 do. Is this the place where the timezone offset could be set?

You are correct in all your assumptions about TZ 20, DST and DST rule USA.
 
The *SCHEDULER record is really just a flag to the system that a scheduler is running and it makes a note of the process ID. The scheduler kernel operates on UTC regardless of what timezone offset the actual scheduler kernel JDENET_K process is running under. This makes everything simple. All jobs are physically stored in the F91300 with UTC date/times and the scheduler kernel sees the world in UTC.

Are you experiencing an issue with jobs running at a time other then when you scheduled it (CST time)?
 
I believe I understand what you are saying.

Does the scheduler see the world in UTC based off of the time that is set on the box it is running on? By this I mean, does the scheduler kernel see that the box has a time of 06:00 and that it is during Daylight Savings Time and then offset its (UTC) time given the time it gathers from the box it is running on?


I am not currently having an issue with scheduling jobs but in the future I may see a need to schedule jobs based on other time zones and I am attempting to gather information on the process the job scheduler follows before I start.
 
It is the operating system that calculates the UTC time and not JDE. Depending on your operating system the hardware (BIOS) clock may be set to UTC time or it may be set to local time. Unix usually sets the hardware clock to UTC and Windows usually sets it to local time. However, even with Windows the Windows Time Service runs on UTC. The local time for your user sessions is then offset from UTC based on your regional control panel settings. NTP time servers always communicate times as UTC. I don't know how the actual scheduler kernel code fetches UTC but I assume it uses the ANSI C function gmtime to fetch UTC time from the OS. That is what gives it the UTC view of the world.

Basically if you have your OS updated via a time server then both your hardware and system (OS) clocks should be accurate. With accurate time the OS can always return the correct UTC time to JDE.

I have run a number of single instance global JDE systems with 10 time zones for a single scheduler being my maximum so far. The only issues I experience are around changes in daylight savings. When DST rules changes in a particular timezone there will be OS updates. There can also be Java updates for DST rules. If you don't apply the appropriate patches you may find your job launch times will drift forwards or back an hour or two. You may also find that on the night of a DST change that jobs scheduled near the DST on/off effective time may not run as expected or may not run at all. For instance if the DST change is effective at 2am on Sunday and the time moves back to 1am, when should the scheduler run a job that was scheduled at 2am? Should it run it at 1:59 am before the DST change or 2am after the time change? I always manually monitor the scheduler during the point of DST changes to make sure jobs kick off.

I think that about exhausts what I know about UTC and the JDE scheduler. In summary, you shouldn't have to worry about how UTC is calculated. As long as you keep your server subscribed to a time server, keep any timezone/DST patches applied and use the appropriate P91300 version(s) for your timezone(s) your jobs should launch at the expected local time.
 
Justin,
Thank you for all this knowledge. You have clarified many things for me here. I appreciate all the time you have put in to help me.

Thank you
 
Back
Top