This document contains official content from the BMC Software Knowledge Base. It is automatically updated when the knowledge article is modified.
Remedy AR System Server
AR System Mid Tier
The timezone in the midtier client is incorrect
Background: When referring to “timezone information” what is meant is for a particular timezone what is it’s offset from UTC(aka GMT) time. All timezones are either + or - x number of hours from UTC time. Also, even more importantly does the timezone observe DST(Daylight Savings Time) and if so when does DST start and when does DST end.
DST enforcement changes by government entities are one of the most common causes of timezone related issues when software tries to convert an epoch time value(defined as the number of seconds that have elapsed since 00:00:00 Coordinated Universal Time (UTC), Thursday, 1 January 1970) to a human readable value appropriate for the user’s timezone. A government can suddenly decide that it no longer wants to use DST or that they want to change when DST starts or stops or both.
The symptom of this to the end user is that suddenly timestamps in the application are off either plus or minus one hour. Since the AR System platform stores all timestamp values as an epoch integer value we can be impacted greatly by this situation.
The BMC AR System Mid-Tier and the BMC AR System Java API are both java based products. These products rely on timezone conversion code contained in Oracle’s java.util.TimeZone class that is part of the JRE and the com.ibm.icu.util.TimeZone class that is part of icu4j.jar file shipped with Mid-Tier in the WEB-INF/lib directory and incorporated into other BMC jar files in WEB-INF/lib. The icu4j.jar file is provided by the ICU Organization, http://site.icu-project.org/.
Oracle and the ICU Organization both provide utilities to update their timezone files that are referenced by their respective Java class files to cope with the sometimes frequent changes to timezone information. BMC therefore recommends that before submitting a ticket to BMC Support to report a timezone related issue run the available utilities to update the timezone files. Doing this action will resolve most timezone related issues.
Downloading and using the update utilities:
- Check for the latest copy of the tzupdater utility at http://www.oracle.com/technetwork/java/javase/downloads/index.html. Scroll down to the Additional Resources section and choose to download the Java Time Zone Updater Tool.
- Unzip the bundle and copy tzupdater.jar to the /bin directory of the JDK install used for the Mid-Tier, e.g. C:\Program Files\Java\jdk1.8.0_74\bin.
- From a command line CD to the /bin directory where you copied the jar file and run:
./java -jar tzupdater.jar -u –v (UNIX)
The utility will advise if the timezone files need to be updated or not and if so automatically update.
ICU Organization Time Zone Update Utility-
- Download the utility from http://icu-project.org/download/icutzu.html, scroll down and click on the latest release version line and save the zip file. NOTE: Unlike Oracle’s tzupdater tool the utility itself doesn’t contain the updated files, it obtains the latest files from an online repository. Thus, there is no need to download the utility more than once unless there is some issue with the utility itself.
- Unzip the contents of the utility bundle to the Mid-Tier host file system if using Windows. If using UNIX , run the utility from the command line but the steps are somewhat convoluted, see here http://source.icu-project.org/repos/icu/data/trunk/tzdata/tzu/readme.html#cmd. For UNIX users, it may be easier to simply copy the icu4j.jar file from <midtier root>/WEB-INF/lib to your local desktop and unzip the utility files to your desktop as well and update there. Then copy the jar file back to the Mid-Tier on the UNIX OS.
- Start the GUI utility. From a command prompt, CD to where the unzipped utility files are located and execute this command:
- Select Include from the drop down list and click the Browse button and navigate to where the icu4j.jar file is located. This would be either directly on the Mid-Tier file system if the Mid-Tier is on Windows or a copy of the icu4j.jar file on the Windows desktop if your Mid-Tier is running on UNIX.
- Click the Search All button.
If the icu4j.jar file needs updating, the utility will show this in a new dialog. Select the jar file and click the Update Selected button.
NOTE: BMC includes the ICU class files in other jars not related to the client UI in the browser. If other jars not named icu4j.jar show up in the list, update those as well. For example. arreportingapi90_build002.jar which is used for reporting may be listed
- For UNIX only if you updated the icu4j.jar file outside of the Mid-Tier install directory you’ll need to replace the existing copy on the Mid-Tier file system with your updated jar.
- Restart Mid-Tier.
- If this resolves your issue, please log a Support ticket with BMC and report this so that we can update our shipping copy of the icu4j.jar file for future releases.
Please find attached the Word Document to this Knowledge Article