JVM
JVM
JVM or the Java Virtual Machine in Oracle Applications is the core where all java requests are handled. These request can be generated either from the self service web application page, from the Oracle Applications manager console or through a java based concurrent request.
The default version of JDK that comes with the latest release of Applications 11.5.10.2 is JDK 1.4.2, although JDK 1.5 has also been certified with 11.5.10 now.
The mod_jserv component of the Oracle Applications Server is responsible for processing all java requests.
The mod_jserv automatically creates a JVM during the startup of Oracle HTTP server (OHS),this JVM will handle all the servlets coming from within a browser.This is done using $IAS_ORACLE_HOME/Apache/Apache/bin/java.sh file.
mod_jserv uses the Apache JServ Protocol (AJP) to communicate between the HTTPD process and the JVM for processing the Java requests.
The jserv.conf file and the jserv.properties file control the behavior of the mod_jserv process and the JVM.
Some of the significant parameters which influence jservr performance are
The ApJServManual parameter in the jserv.conf file is used here to specify if the JVM will be allocated automatically at the startup of the OHS.
The wrapper.bin.parameters=-verbose:gc –Xmx2048M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB in the jserv.properties
Verbose:gc means JVM is configured to print output when garbage collector runs
–Xmx2048M specifies the maximum memory heap size
-Xms128M specifies the minimum amount of memory required
According to Oracle, we can increase the maximum heap memory to over 4GB based on the available RAM.
The ApJServVMTimeout in jserv.conf is used to specify the amount of time allocated for the JVM to startup or shutdown ,this value should be sufficient to ensure thata garbage collector finishs its job.
An improper of an insufficient JVM allocation often results in java errors like the
java.lang.OutOfMemoryError and java.lang.NoClassDefFoundError
In autoconfig enabled Oracle Applications systems the configuration and behavior of JVM can be maintained thought the context file. These can be changed though the Oracle Applications Manager or by using the context editor.
You can also get a summary of the Jserv usage from OAM by using the Jserv Usage Summary screen from OAM.
You can also use JConsole a utility provided by Sun Microsystems to have a graphical real time monitoring of your JVM usage.
The following article provides details on using jconsole.
http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html
Additionally in oracle applications the JVM usage is catorgorised in the following groups
OACoreGroup This is the core group for handeling Java requests
DiscoGroup Ths is the JVM groups reserverd for your Discoverer requests
FormsGroup This is the JVM that is used in case you have configured your forms server to run in servlet mode
XmlSvcsGroup This is the JVM that is used for your XML services like XML gateway.
You can increase the number of JVMs for each of these groups through OAM. Each of these JVM will listen on a TCP port from the port range specified in the java.sh file.
You can check the status of your jvm though
http://<host><domain>:<port>/servlets/IsItWorking or by using Oracle Diagnostics