Tuesday, March 06, 2007

BPEL PM Java tuning & 64 Bit setup

I recently updated the JVM and added 64 bit support to a Solaris T1 box, this are the instructions:

1. Download the correct Solaris installation from http://java.sun.com/javase/downloads/index_jdk5.jsp

I used Java JDK 1.5.0_11 in this case.

The two files to download are:

32 bit version - jdk-1_5_0_11-solaris-sparc.sh
64 bit plugin - jdk-1_5_0_11-solaris-sparcv9.sh

2. CD to $ORACLE_HOME for the application server

3. Unpack the installations by running the installation programs,

Command lines:

sh /oracle/install/java/jdk-1_5_0_11-solaris-sparc.sh
sh /oracle/install/java/jdk-1_5_0_11-solaris-sparcv9.sh

4. Verify that the install was done in the correct place:

bash$ ls -ald jdk*
drwxr-xr-x 9 oracle oinstall 512 Feb 16 18:15 jdk
drwxr-xr-x 9 oracle oinstall 512 Feb 19 11:54 jdk1.5.0_11

5. Create a backup of the OPMN configuration $ORACLE_HOME/opmn/opmn.xml

cd $ORACLE_HOME/opmn/conf
cp opmn.xml opmn.xml_`date "+%y%m%d%H%M%S"`

6. Edit $ORACLE_HOME/opmn/conf/opmn.xml

Find the XML Element with the content process-type id="oc4j_soa"
and edit the bold sections (three changes in bold):
(libumem and -D64 is optional of course)

<process-type id="oc4j_soa" id="OC4J" status="enabled">
<environment>
<variable id="LD_PRELOAD_64" value="/usr/lib/64/libumem.so.1">
</environment>
<module-data>
<category id="start-parameters">
<data id="java-bin" value="/oracle/product/soa_10.1.3/jdk1.5.0_11/bin/java">
<data id="java-options" value="">-d64</strong> -server -Xmx2g -Xms1g -XX:PermSize=256m -XX:NewRatio=3 -XX:MaxTenuringThreshold=3 -XX:SurvivorRatio=6 -XX:-UseParallelOldGC -Djava.security.policy=$ORACLE_HOME/j2ee/oc4j_soa/config/java2.policy -Djava.awt.headless=true -Dhttp.webdir.enable=false -Doraesb.home=/oracle/product/as/as_10.1.3/integration/esb -Dhttp.proxySet=false -Doc4j.userThreads=true -Doracle.mdb.fastUndeploy=60 -Dorabpel.home=/oracle/product/as/as_10.1.3/bpel -Xbootclasspath^/p:/oracle/product/as/as_10.1.3/bpel/lib/orabpel-boot.jar -Dhttp.proxySet=false"/> </category>

The variable LD_PRELOAD_64 means that a different memory allocator called lubumen is used. This memory allocaor is designed for multi-cpu and multi-core processors.
It is recommended by Sun here and here for T1 machines.

For more information on libumem and similar Linux allocator see my link collection here.

7. Save the file and validate the change with opmnctl.

% opmnctl validate opmn.xml

8. Restart the application server.

Also se metalink note:368973.1.

Sphere: Related Content