IV37797: NATIVE OOMS ON 64-BIT JVMS ON NON-SYSTEM Z PLATFORMS USING -XCOMPRESSEDREFS CAUSED BY JAVA HEAP ALLOCATED IN 32-BIT SPACE
Closed as program error.
Error Message: An Out of Memory error occurs. . Stack Trace: N/A .
Two possible workarounds exist: 1) Experimenting with different Xmx heap sizes relocates the heap above the 4 GB memory mark. 2) Option -Xgc:preferredHeapBase can be used to specify the base memory address for the heap. For example -Xgc:preferredHeapBase=0x100000000.
This problem can occur on any 64 bit JVM running in the compressed reference mode. For performance reasons, a compressed references JVM will make some native memory requests in the 0-4GB range only. When this range is exhausted a native OutOfMemoryError will be thrown. Under some circumstances the Java Heap can be allocated in the 0-4GB range, reducing the amount of memory available for these allocations and presenting the symptom earlier than necessary.
This defect will be fixed in: 6.0.1 SR6 7.0.0 SR5 . The JVM has been updated so that the heap allocation is fixed to allocate memory above the 4G bar for compressed reference JVM for all platform except IBM System z, if and only if the entire heap will not fit below 4 Gb. In cases where the heap does fit under the 4Gb bar, the heap will be allocated there, and not above 4Gb. This is for performance reasons (if the heap fits below 4Gb, address shifting is not required, improving performance). The determination of whether or not the heap will fit below 4Gb is made by the OS. This APAR is not applicable to IBM System z platforms (i.e. z/OS and z/Linux) because on these platforms, there is an additional performance penalty associated with higher shift values.
Reported component name
J9 COMMON CODE
Reported component ID
NoSpecatt / Xsystem
Last modified date
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following:
Fixed component name
J9 COMMON CODE
Fixed component ID
Applicable component levels