Last week we faced java memory issue in our Oracle Apps 11i instance running on AIX 6.1 servers.
There was a java concurrent program which was failing with below error message showing up in its log file :
==============================================
JVMDG303: JVM Requesting Java core file
JVMDG304: Java core file written to /PRODapps/PRODcomn/admin/log/javacore38338642.1317369856.txt
JVMDG274: Dump Handler has Processed OutOfMemory.
JVMST109: Insufficient space in Javaheap to satisfy allocation request
JVMDG217: Dump Handler is Processing OutOfMemory - Please Wait.
JVMDG315: JVM Requesting Heap dump file
=============================================
The error was further checked up in JVM log file under $APACHE_TOP/Jserv/etc/JVM :
============================================
JVMST109: Insufficient space in Javaheap to satisfy allocation request
java.lang.OutOfMemoryError
at java.io.ByteArrayOutputStream.write(ByteArrayOutputStream.java(Compiled Code))
at oracle.apps.fnd.framework.webui.OAPageContextImpl.parseMultipartForm(OAPageContextImpl.java(Compiled Code))
at oracle.apps.fnd.framework.webui.OAPageContextImpl.<init>(OAPageContextImpl.java(Compiled Code))
============================================
The first solution is to increase the java run time memory settings as per requirement of concurrent program which is failing :
-----------------------------------------------------------------------------
1. Logged on as "SYSADMIN" with "System Administrator" reponsibility
2. Select Define from (N) Concurrent ->Program ->Define
3. Using query mode enter find out the concurrent program
4. Search and once record is retrieved:
Modify the "Options" field under "Executables" from
-mx256m -ms64m
to
-mx512m -ms256m
<< please note that if you are running AIX you need to put -Xmx512m -Xms256m >>
5. Save.
6. Bounce the Concurrent Manager & Apache
7. Rerun the concurrent program and check.
---------------------------------------------------------------------------------
Other solution is to check what is the java memory and number of JVMs set for your instance and possibly increase them :
-----------------------------------------------------------------------------------
1. Backup then edit your $CONTEXT_FILE file:
2. Increase the number of JVM's to three:
SET <oacore_nprocs oa_var="s_oacore_nprocs">3</oacore_nprocs>
3. Increase the Java Heap Size
Change your s_jvm_options to at least these sizes: -Xmx512M -Xms128M
4. Run autoconfig
5. Restart services
------------------------------------------------------------------------------------
You can also change the settings in the configuration files itself, though not recommended as the changes will get lost at next auto-config run. Still if you want to try it out.
-------------------------------------------------------------------------------
1. Backup then edit your jserv.conf file: Increase the number of JVM's to three .. this will accommodate 300 active users.
SET ApJServGroup OACoreGroup 3 1 /PRODapps/PRODora9i/iAS/Apache/Jserv/etc/jserv.properties
2. Backup then edit your jserv.properties files /PRODapps/PRODora9i/iAS/Apache/Jserv/etc to increase your HEAP size.
SET wrapper.bin.parameters=-Xmx512M -Xms256M
3. Bounce Apache to effect these settings.
---------------------------------------------------------------------------------
PS: For our instance we found java setting 512M and 3 JVM as sufficient. But this value is not fixed and vary for every instance, number of users, load. So you really need to verify all this before going further with new memory settings.