Troubleshooting
Problem
Due to outdated TZ info in JVM bundled with Informix database server ("Krakatoa" feature) certain operations in Java UDRs may result in incorrect conversion of datetime values.
Symptom
Conversion of datetime <-> java.sql.Timestamp types produces incorrect values.
Cause
Outdated TZ info in JVM supplied with Informix engine (Krakatoa)
Diagnosing The Problem
Use IBM Time Zone Update Utility for Java (JTZU) to check the version of TZ info in Krakatoa JRE
JTZU can be downloaded here: https://www.ibm.com/developerworks/java/jdk/dst/jtzu.html.
Usage is explained at Readme file referenced on that page.
While executed in discovery mode, it searches for all installed JREs and prints a complete path and TZ info level in SDKList.txt file.
Sample content of SDKList.txt file:
/opt/IBM/11.50.FC9W2/extend/krakatoa/jre tzdata2012d
/opt/IBM/11.50.UC8/extend/krakatoa/jre tzdata2007h
/opt/IBM/11.70.FC1/extend/krakatoa/jre tzdata2009p
/opt/IBM/11.70.FC2/extend/krakatoa/jre tzdata2009p
/opt/IBM/11.70.FC3/extend/krakatoa/jre tzdata2009p
/opt/IBM/11.70.FC4/extend/krakatoa/jre tzdata2009p
/opt/IBM/11.70.FC5/extend/krakatoa/jre tzdata2009p
/opt/IBM/11.70.FC5W1/extend/krakatoa/jre tzdata2009p
By the time this document is created, the latest TZ info is tzdata2012d, which means that in provided sample all JREs except the first entry are outdated.
Resolving The Problem
You can use JTZU utility to manually update TZ info within JRE:
1) Run JTZU in DISCOVERYONLY mode
2) Edit the SDKList.txt file and remove any entries that you do not want to patch.
3) Run JTZU with the JTZU settings file containing the values (Krakatoa must not be in use):
* NOGUI=true
* DISCOVERONLY=false
Related Information
Was this topic helpful?
Document Information
Modified date:
03 June 2021
UID
swg21610596