Even with enough physical memory, assigning JVM 1.3.1 a heap size of more than 1 GB could result in an out of memory error.

Even with enough physical memory, assigning JVM 1.3.1 a heap size of more than 1 GB could result in an out of memory error.

book

Article ID: KB0089554

calendar_today

Updated On:

Products Versions
TIBCO BusinessConnect -
Not Applicable -

Description

Resolution:
Symptom
=======
On AIX 5.2 machine you can't allocate a JVM 1.3.1 heap size of more than 1 GB to run BC. For is an example output-
$java -mx2560m -version
Unable to mmap Java heap of requested size, perhaps the maxdata value is too large - see Java README.HTML for more information.
Unable to allocate an initial java heap of 2684354560 bytes.
**Out of memory, aborting**

*** panic: JVMST016: Cannot allocate memory for initial java heap
Abort process


Analysis
========
On AIX, the 32-bit address space (= 232 or 4 GB) is divided into 16 segments, each of 256 MB (256 MB*16 = 4 GB). You can have a maximum of 10 segments of memory dedicated for the heap (2560 MB) .
    

Resolution
==========
To increase the maximum heap size,

1. Create an environment variable and assign it a value as follows -
    LDR_CNTRL=MAXDATA=0
2. Export that variable -
    export LDR_CNTRL

3. The following command should not throw any error if steps 1 & 2 are working right.
   java -mx2560m -version
  
4. In &ltyour BC>/bin/runENV.sh file, you can now increase the maximum heap size to 2560MB.

   [....]
    elif [ "$osName" = "AIX" ]
    then    
            if [ "$MEMORY_TUNING_PARMS" = "" ]; then
                MEMORY_TUNING_PARMS="-Xmx512m to -Xmx2560m"
            fi
   [....]
  

For additional information, cf http://www-128.ibm.com/developerworks/eserver/articles/aix4java/


Issue/Introduction

Even with enough physical memory, assigning JVM 1.3.1 a heap size of more than 1 GB could result in an out of memory error.