After the initialization of a Control-M/Server, the Control-M/Enterprise Manager GUI will display the following notification: It appears that the time zone configuration of the machine is incorrect. As a temporary solution, the process will implement a basic time zone that is xx seconds away from Coordinated Universal Time (UTC). It is possible that the NS or CE logs will exhibit an error message along with numerous repeated time zone notifications, which will be expressed in the following manner: "java.time.DateTimeException: Invalid ID for region-based ZoneId, invalid format:" |
The reason for this alert is that the time zone configuration of the machine does not match the time zone configuration of the Java installed on the machine. This discrepancy can cause scheduling problems since Control-M/Server uses both Java processes and regular binaries that use the machine's time zone configuration. To troubleshoot this issue, the Control-M/Server needs to be started in debug mode. Follow these steps:
To ensure that BMC provided JRE has the correct DST timezone definitions, follow this procedure. If the definitions need to be updated, do so promptly. Failure to update these definitions may lead to a 1-hour shift in the current time, causing jobs to run at the wrong time.
Troubleshooting: 1. Getting error msg when verifying or install Java timezone DST files. ./java -jar /home/ctm918/tzupdater.jar -V
Error parsing configuration
Exception in thread "main" com.sun.tools.tzupdater.TzRuntimeException: java.security.ProviderException: Error parsing configuration at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:653) Most probably this error is caused by the security setting for a give JRE environment.
the security configurations are stored in <ctm-home>/JRE/lib/security/java.security" file The recommended workaround is to stop the Agent and MFT/AFT
backup java.security file replace the file with another version from a different control module such as CM for Database, CM for SAP, etc with the one of AFT/MFT repeat the procedure above. restore the java.security back to the MFT/AFT location restart Agent 2. If this is a Solaris environment that has a JRE_64 java directory ($HOME/ctm_server/JRE_64/bin/java), after running the script (./java_bmc_updater.csh from step b6), run ./java -jar tzupdater.jar -V from the JRE_64/bin/java directory. If it does not return JRE tzdata version tzdata2018 or higher, download https://data.iana.org/time-zones/releases/tzdata2018e.tar.gz, then run the command: $HOME/ctm_server/JRE_64/bin/java -jar tzupdater.jar -l file:tzdata2018*.tar.gz.
Note.: If the problem persist, it means that machine TZ is wrong, to fix it, execute the command as root:3. If you get error messages such as below, download https://data.iana.org/time-zones/releases/tzdata2018e.tar.gz and try again. In the command line, specify tzdata2018e.tar.gz instead of tzdata-latest.tar.gz: Failed: java.lang.Exception: Failed while parsing file '/tmp/tz.tmp_2/asia' on line 1655 'Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S' java.lang.Exception: Failed while parsing file '/tmp/tz.tmp_2/asia' on line 1655 'Rule Japan 1948 1951 - Sep Sat>=8 25:00 0 S' at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:377) at tools.tzdb.TzdbZoneRulesCompiler.compile(TzdbZoneRulesCompiler.java:191) at tools.tzdb.TzdbZoneRulesCompiler.<init>(TzdbZoneRulesCompiler.java:307) at com.sun.tools.tzupdater.ExternalModule.compileToJSRBinary(ExternalModule.java:153) at com.sun.tools.tzupdater.TimezoneUpdater.run(TimezoneUpdater.java:230) at com.sun.tools.tzupdater.TimezoneUpdater.main(TimezoneUpdater.java:634) Caused by: tools.tzdb.DateTimeException: Invalid value for SecondOfDay value: 90000 at tools.tzdb.ChronoField.checkValidValue(ChronoField.java:173) at tools.tzdb.LocalTime.ofSecondOfDay(LocalTime.java:210) at tools.tzdb.TzdbZoneRulesCompiler.parseMonthDayTime(TzdbZoneRulesCompiler.java:475) at tools.tzdb.TzdbZoneRulesCompiler.parseRuleLine(TzdbZoneRulesCompiler.java:399) at tools.tzdb.TzdbZoneRulesCompiler.parseFile(TzdbZoneRulesCompiler.java:354) Run again the command below, verify that the JRE tzdata version is now tzdata2018e or higher
[Sun/Solaris] <control-m/server home directory>/ctm_server/JRE_64/bin/java -jar tzupdater.jar -V[Linux] <control-m/server home directory>/ctm_server/JRE/bin/java -jar tzupdater.jar -V [Windows] <control-m/server home directory>\ctm_server\JRE\bin\java -jar tzupdater.jar -V 4. Additional verification of the changes
[Linux/Sun/Solaris]< control-m/server home directory >/ctm_server/tmp directory
[Windows]< control-m/server home directory >\ctm_server\temp directory Verify that you see the Day light changes at the correct dates and times. For example: Previous Israel Daylight Saving, on the 2018/10/28, at 2 AM the clocks were turned backwards 1 hour to 1 AM, as seen in the C_time_stamps.txt file 1540674000 2018/10/28 00:00 DST1 1540677600 2018/10/28 01:00 DST1 1540681200 2018/10/28 01:00 DST0 1540684800 2018/10/28 02:00 DST0
1022_15:29:30.893,Default time zone America/Sao_Paulo is not synched with machine's: C: 1540227600
2018/10/22 14:00 DST0. Java: 1540227600 2018/10/22 15:00 DST1.", [INFO], T@1, T:main, , com.bmc.ctms.common.TimeZoneSynchronizer, TimeZoneSynchronizer::fullSync, , 1022_15:29:31.702, "No matching time zone was found", [WARNING], T@1, T:main, , com.bmc.ctms.common.TimeZoneSynchronizer, TimeZoneSynchronizer::locateMatchingTz, , 1022_15:29:31.702, "The machine's time zone configuration seems to be wrong.", [WARNING], T@1, T:main, , com.bmc.ctms.common.TimeZoneSynchronizer, TimeZoneSynchronizer::fullSync, , 1022_15:29:31.703, "Process will use a simple time zone (CTM-03:00) of -10800 seconds from UTC", [INFO], T@1, T:main, , com.bmc.ctms.common.TimeZoneSynchronizer, TimeZoneSynchronizer::fullSync, , If the java was updated with the correct DST change, you will not see these messages. The Control-M/Server CE process (java) will align with the C code times. yum update tzdata Or install it with command: yum install tzdata |