Technical Blog Post
Abstract
Date field calculation issue when using Daylight Savings in MAXIMO
Body
Daytime and Date field calculation issue when using Daylight Savings in MAXIMO
When using daylight savings option in MAXIMO, bug occurs in date and date time calculation where 1 hour is added or deducted from the date, and this can result in completely different date when 1 hour is deducted from 00:00, so it becomes 23:00 on the previous date. This bug affects all applications in MAXIMO including the Invoices and Scheduler, where it can create numerous issues, since dates will not be aligned and transactions can get registered in different financial period. This can lead to reconciliation and scheduling errors, where period balances do not match or work orders end up scheduled on previous day when asset is not available.
There are number of issues reported about this including these:
IZ88935: TIMEZONE PROBLEM IN MAXIMO INTEGRATION FRAMEWORK
http://www-01.ibm.com/support/docview.wss?uid=swg1IZ88935
IV42059: CALENDAR DISPLAYS WORK TIMES INCORRECTLY FOR MONTHS WHERE DAYLIGHT SAVINGS STARTS AND FINISHES
http://www-01.ibm.com/support/docview.wss?uid=swg1IV42059
Java Daylight Saving Time: Known problems and workarounds
Day Light Savings Time update with the ICU4J Time Zone Update Utility.
Resolving ICU4J class conflicts between Alphablox and WebSphere Application Server
Dates are not shown correctly in the Calendars application
Cause
MAXIMO uses the Java ICU4J library to calculate date operations, but there is a bug in this library and both MAXIMO and WebSphere include copy of this library which contains this bug. This library needs to be updated in both MAXIMO and WebSphere. Location and names used to store ICU4J library are given below.
In Web Sphere
\WebSphere\AppServer\plugins\com.ibm.icu.jar
In MAXIMO
\maximo\applications\maximo\lib\icu4j.jar
\maximo\applications\maximo\maximouiweb\webmodule\webclient\applets\scheduler\icu4j-4_0_1.jar
IMPORTANT NOTE: Replacing new versions of the ICU4J library in MAXIMO will not fix the issue, since JAR file in WebSphere is first on the class path and will be loaded before WebSphere even tries to load JAR files from MAXIMO. Since this library is already available in WebSphere and has priority on the CLASSPATH, the JAR files from MAXIMO will never get loaded. Hence, in order to fix this issue, JAR file in WebSphere needs to be updated as well, or WebSphere class path needs to be changed.
Solution
Solution for this issueis to download up to date copy of ICU4J files and replace all three above files with newly downloaded one. You can follow following steps to download ICU4J library and copy it into WebSphere and MAXIMO.
1. Go to website and select download link
http://site.icu-project.org/download
2. Click on the latest version of ICU4J (currently 52.1)
http://site.icu-project.org/download/52#TOC-ICU4J-Download
3. Click on icu4j*.jar file (currently it should be icu4j-52_1.jar)
http://download.icu-project.org/files/icu4j/52.1/icu4j-52_1.jar
4. Download file and rename it to "com.ibm.icu.jar"
5. Stop all Web Sphere services
6. Go to the following folder under Web Sphere root folder
\WebSphere\AppServer\plugins\com.ibm.icu.jar
7. Rename current file to com.ibm.icu.old_jar and copy new file instead
8. Steps to fix MAXIMO are to copy same JAR file over these libraries in MAXIMO.
\maximo\applications\maximo\lib\icu4j.jar
\maximo\applications\maximo\maximouiweb\webmodule\webclient\applets\scheduler\icu4j-4_0_1.jar
NOTE: We expect that MAXIMO team will provide new releases of MAXIMO with updated versions of these libraries.
However, WebSphere team has suggested that applications should amend CLASSPATH in WebSphere to ensure application libraries are loaded first as suggested in the this article.
UID
ibm11133019