IBM Support



You can track all active APARs for this component.

APAR status

  • Closed as program error.

Error description

  • Error Message: When running applications with a high rate of
    class unloading (i.e. classes are loaded, used briefly or not at
    all, and then unloaded quickly), the Java 5 or Java 6 JVM may
    gradually increase the amount of memory it allocates for the JIT
    data cache without any apparent limit.
    The symptom can be observed by collecting a Java core dump from
    the JVM, by sending SIGQUIT (or Ctrl-Break on Windows) to the
    process. The dump lists all the JIT code cache segments and JIT
    data cache segments that have been allocated. If there are more
    memory segments in the JIT data cache than in the JIT code
    cache, the application may be suffering from the gradual memory
    leak. Eventually, the data cache could grow so large that all
    available memory is exhausted, and the JVM could crash due to a
    native out-of-memory condition.
    This problem is more pronounced on 64-bit platforms due to the
    larger pointer size.
    Stack Trace: N/A

Local fix

  • This issue can be avoided if the application can be re-worked to
    reduce or eliminate class unloading. If that is not feasible,
    the memory leak can also be stopped by setting the environment
    variable TR_DisableCCR=1 before invoking the JVM. Note that this
    can cause the JIT compiler to compile fewer methods, reducing
    the overall performance of the application.

Problem summary

  • The JIT data cache contains meta-data that describe JIT-compiled
    methods. Its size is usually a fraction of the size of the JIT
    code cache. For performance reasons, the maximum size of the JIT
    data cache is not hard-coded. The memory leak occurs when the
    JIT data cache is populated with an excessive amount of
    meta-data pertaining to classes that have been unloaded.

Problem conclusion

  • This defect will be fixed in:
    6.0.0 SR9
    5.0.0 SR12 FP2
    A new option has been added to Java 5 and Java 6 to allow users
    experiencing this issue to control the size of the JIT data
    cache. The option must be added to the JVM command line, and its
    syntax is:
    where "nnnn" is the maximum size of the data cache in kilobytes.
    For example, setting "nnnn" to 65536 limits the data cache to
    64MB. Note that the JIT compiler will be unable to compile more
    methods when the JIT data cache becomes full; to pick an optimal
    value for "nnnn", careful measurement and tuning is recommended.
    If the option is not used, the JVM assumes its original
    behaviour, i.e. the size of the JIT data cache is unlimited.
    To obtain the fix:
    Install build 20100928 or later

Temporary fix


APAR Information

  • APAR number


  • Reported component name

    JAVA 5 JIT

  • Reported component ID


  • Reported release


  • Status


  • PE




  • Special Attention


  • Submitted date


  • Closed date


  • Last modified date


  • APAR is sysrouted FROM one or more of the following:


  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    JAVA 5 JIT

  • Fixed component ID


Applicable component levels

  • R500 PSN


Document information

More support for: Runtimes for Java Technology
Just In Time (JIT) Compiler

Software version: 5.0

Reference #: IZ85288

Modified date: 20 October 2010

Translate this page: