Daylight Saving Time (DST) defaults changing in 2007 and the impact on the NetWare Java Runtime Environment (JRE)

  • 3980430
  • 09-Mar-2007
  • 27-Apr-2012

Environment

Novell Open Enterprise Server (NetWare based)
Novell NetWare 6.5
Novell NetWare 6.0
Novell NetWare 5.1
Java Run Time environment on NetWare

Situation

Starting in 2007, the standard North American period for Daylight Saving Time will be increased by 4 weeks. It will start the second Sunday in March (11th) and will end the first Sunday in November (4th).

Currently the Java Runtime Environment (JRE) on NetWare does not include the updates for Daylight Saving Time changes.

Resolution

Urgent Information: TID 3008665 - Vital Information from SUN

Java instances are included in ConsoleOne, iManager, DNSDHCP Console, ZENworks Linux Management, ZENworks Server Management, Identity Manager drivers, the IDM User Application, Extend Application/Products and Sentinel products. Each instance of the Java Runtime Environment (JRE or JVM) will need to have the time zone data updated. In most cases the use of a Sun provided utility (tzupdater.jar or tzupdater131.jar) can be used to apply the updates quickly and easily. Each of these applications may have separate instances of a JRE and each JRE instance will need to be updated.
Novell has made changes to the JAVA Virtual Machine (JVM) on Novell NetWare to reflect the changes to Daylight Savings Time in North America and Canada. Novell has verified that the following versions of NetWare and JVM either already have or can easily be modified to accept Daylight Savings Time changes:

NetWare 6.5(including OES NetWare)
Option 1: Update to JVM 1.4.2_13 or greater. JVM 1.4.2_13 can be found at:
https://download.novell.com/Download?buildid=fA2x0F0oA3E~
Option 2: The Sun TZupdater tool is a lower risk solution. See the section below on
"Manually updating JVM time zone data on NetWare Servers with JVM 1.4.x"
NetWare 6.0 with Java 1.4x
Option 1: Update to JVM 1.4.2_13 or greater. JVM 1.4.2_13 can be found at:
https://download.novell.com/Download?buildid=fA2x0F0oA3E~
Option 2: The Sun TZupdater tool is a lower risk solution. See the section below on
"Manually updating JVM time zone data on NetWare Servers with JVM 1.4.x"

NetWare 6.0 with JVM 1.3.1
Option 1: Update to JVM 1.4.2_13 or greater. JVM 1.4.2_13 can be found at:
https://download.novell.com/Download?buildid=fA2x0F0oA3E~ Also see the section below on
"Manually updating the JVM 1.3.x to 1.4.x on NetWare 6.0 servers"
Option 2: The TZupdater131 tool is a lower risk solution. The JVM 1.3.1 time zone updater tool found at:
https://download.novell.com/Download?buildid=jXF9ydKm0ds~ See the section below on
"Manually updating JVM time zone data on NetWare Servers with JVM 1.3.x"

NetWare 5.1 with JVM 1.3.1
The TZupdater 131 tool can be used and is found at:
https://download.novell.com/Download?buildid=jXF9ydKm0ds~ See the section below on
"Manually updating JVM time zone data on NetWare Servers with JVM 1.3.x"

Note: The Daylight Savings time issues with the JVM will mean that ONLY applications that run within the Java Virtual Machine AND receive their Timezone information from the JVM will be affected during the extended DST periods. In essence the application will not automatically change their time to take into account Daylight Savings Time accurately according to the changes.

The actual NetWare Operating System and any applications running on the NetWare OS directly (rather than in a JVM) will NOT be affected by the timezone issues with the JVM.

Manually updating JVM time zone data on NetWare servers with JVM 1.4.x
Sun Microsystems Inc. has made a time zone updater tool available that can be used to manually update the existing time zone data on NetWare 6.5 and 6.0 servers running a JVM 1.4.x. This tool will only work with JVM 1.4.x

The following link documents this utility and provides a link to the Sun Java SE download site to obtain the utility:

1. download and extract the tool to a temporary directory

2. copy the tzupdater.jar file to a temporary directory on the SYS: volume of the NetWare 6.5 server

eg: sys:\temp\tzupdater.jar

3. update the current time zone information with the utility by entering the following at the server console prompt

java -jar /temp/tzupdater.jar -u -bc -v
If you have previously run this tool against Java, use the following command
java -jar /temp/tzupdater.jar -f -bc -v

4. check the results on the logger screen, which should be similar to the following:

java.home: SYS:\JAVA
java.vendor: Sun Microsystems Inc.
java.version: 1.4.2_09
JRE time zone data version: tzdata2003a
Embeded time zone data version: tzdata2006p
Extracting files... done.
Renaming directories... done.
Validating the new time zone data... done.
Time zone data update is complete.
java: Class /temp/tzupdater.jar exited successfully
5. Delete 3 files: EST, MST and HST, all contained in the SYS:\java\lib\zi directory. This is due to the bug found by SUN, referenced here:
An optional step prior to actually updating the time zone data would be to execute the "test" option of the utility (java -jar /temp/tzupdater.jar -t -v). This will generate lots of error messages in the logger screen indicating that time zones were not found or that a test failed. This is normal and expected.

This utility will create a new time zone information directory structure for Java which will take up about 1.7 MB of actual disk space. The existing directory will be renamed so a back out option does exist if needed. The existing time zone data directory will be renamed to sys:\java\lib\zi.tzdata2003a and the new directory will be sys:\java\lib\zi.The old directory can be deleted at a later time if desired to free up a bit of disk space.

Manually updating JVM time zone data on NetWare servers with JVM 1.3.x
A time zone updater tool has been made available that can be used to manually update the existing time zone data on NetWare servers servers running a JVM 1.3.x. This tool will only work with JVM 1.3.xand can be downloaded from:
https://download.novell.com/Download?buildid=jXF9ydKm0ds~

1. download and extract the tool to a temporary directory

2. copy the tzupdater131.jar file to a temporary directory on the SYS: volume of the NetWare server

eg: sys:\temp\tzupdater131.jar

3. update the current time zone information with the utility by entering the following at the server console prompt

java -jar /temp/tzupdater131.jar -u -v

4. check the results on the logger or console screen, which should be similar to the following:

java.home: SYS:\JAVA
java.vendor: Sun Microsystems Inc.
java.version: 1.3.1_10
os.name: NetWare
Temproray file location: SYS:\JAVA\lib\tz.tmp
Backing up SYS:\JAVA\lib\rt.jar to SYS:\JAVA\lib\rt.jar.TZbackup
Done backup of rt.jar
Verified: SYS:\JAVA\lib\rt.jar.TZbackup
Extracting files... done.
Extracting files... done.
Verified: SYS:\JAVA\lib\tz.tmp\copyofRt.jar
Moving working copy of rt.jar back to live rt.jar
Creating SYS:\JAVA\lib\TimeZoneData.VERSION
done.
Time zone data update is complete.
Renaming directories... done.

An optional step prior to actually updating the time zone data would be to execute the "test" option of the utility (java -jar /temp/tzupdater131.jar -t -v). This will generate lots of error messages in the logger/console screen indicating that time zones were not found or that a test failed. This is normal and expected.

This utility will update the time zone information contained in the jre/lib/rt.jar file. The existing rt.jar file will be renamed to rt.jar.TZbackup. If needed simply copy the rt.jar.TZbackup over rt.jar to back out of this update.

Manually updating the JVM 1.3.x to 1.4.x on NetWare 6.0 servers
When updating Java 1.3.x to Java 1.4.x the following steps should also be completed to ensure that Java 1.4.x will run on servers that were installed with Java 1.3.x. These steps assume an update to Java 1.4.2_13 or later. If an earlier version of Java 1.4.x is used the time zone data will also need to be udpated using the tzupdater.jar utility.

1. Edit the Java search paths in AUTOEXEC.NCF. The following three lines should be in this order near the beginning of the file. Any other duplicate lines for Java search paths should be commented out or removed.

SEARCH ADD SYS:\JAVA\BIN
SEARCH ADD SYS:\JAVA\NWGFX\BIN
SEARCH ADD SYS:\JAVA\NJCLV2\BIN

2. Edit AUTOEXEC.NCF to comment out the load line for UCS.NCF if it exists. Alternatively edit the UCF.NCF and comment out the line that loads JVM.NLM. If this step is not done a cosmetic error will be seen on the Logger screen when the call to load the JVM.NLM fails.

For addressing NetWare DST changes, please see TID 3397648

Status

Top Issue

Additional Information

sample test code
Daylight Saving Time (DST) Handling in Linux documented in TID 3655154 has a section on Java applications that includes sample test code that can be used to validate time zone changes in the JRE. The sample code can be used to build a test application for the NetWare platform as well. It is left as an exercise for those interested in java application development to complete that process.