Thursday, September 14, 2006

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

4 comments:

Jeff said...

Sam,

The ApJServVMTimeout value is in the jserv.conf file, not the jserv.properties file. The value is really the amount of time given for the JVM to start or stop.

Sam said...

Thanks Jeff for pointing that out, will rectify it rite away.

What i meant to say was that the value in ApJServVMTimeout should be sufficient enough to allow the gc to finsh its job, though it is the amount of time given for the JVM to startup or shutdown.
I will reframe this also.

Thanks
Sam

Atul Kumar said...

Good one sam, check more on JVM at

http://www.teachmeoracle.com/jvm.html

Atul

Anonymous said...

Hi,

Can u plz list the diffence b/w

perl adpreclone.pl appsTier merge

perl adpreclone.pl appltop merge

Thanks.