Troubleshooting
Problem
My Application Server keeps crashing and generating Java™ core dumps. How do I determine if the IBM JDK is causing my Application Server to crash?
Resolving The Problem
Java as a technology was designed to prevent an application from crashing the JVM. Java applications are compiled from Java source into Java byte code. The Java virtual machine then executes that Java byte code. Since this byte code is handled by the JVM, the JVM is not executing native code and thus the Java code cannot cause memory violations or core dumps. Some Java applications use JNI (Java Native Interface) to execute system library code directly. An example of this is using the Oracle or DB2 type two database drivers which use the native database library instead of pure Java. If the Java application calls out using JNI it is possible for the application to cause the JVM to crash because the external library can crash. TeamWorks does NOT use JNI. In fact it only uses type 4 jdbc drivers.
The IBM JDK changes this equation. To speed up Java execution, the IBM JDK uses it's Just In Time Compiler (JITC) to compile the Java code directly to machine code. The JVM now does not execute byte code, but instead executes machine code. If there is a problem with how JITC compiled the Java code you can see core dumps and crashes. We have seen a number of cases where the IBM JDK causes application servers to crash or coredump while running TeamWorks with JITC enabled. This is not a teamworks problem as mentioned above we use pure Java code and do not call out to any native libraries. If you are experiencing Java core dumps, try disabling JITC. If this works, call IBM and open a support issue so they can help you diagnose the problem. Often an Operating System or JVM patch will resolve the problem.
You do not want to run with JITC disabled. The performance of the system without JITC is VERY poor. If IBM helps identify the class or package causing the problem, you can disable JITC for just those packages. Please review the TeamWorks install config guide for your version of TeamWorks. You need to disable JITC for a specific set of TeamWorks classes to get around a IBM JDK JITC defect that causes us to throw a NullPointerException.
For further reading see:
Historical Number
126
Product Synonym
Teamworks TW Lombardi
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21439606