Read without ads and support Scribd by becoming a Scribd Premium Reader.
 
Well purpose of writing this page on JVM & JVM monitoring / Tuning for Oracle Apps 11i isthat for Quite some time we were getting errorslike
 java.lang.OutOfMemoryError
or
 java.lang.NoClassDefFoundError
error messageacross
applications
. So I thought of troubleshooting JVM and Middle Tier inOracle
Applications
11i and got enough material which I have summarized here for other aswell. This page is based on
Oracle
Application 11i with Autoconfig and Java 1.4.2 version.Though Java/JDK 1.5 is also available & certified with 11.5.10.2 . Lets start withunderstanding JVM (Java Virtual Machine) and related components.
What is JVM ?
JVM acronym for Java Virtual Machine which executes instructions generated by Javacompiler. So user click on any Self Service Request or any program which uses Java, thenApache forwards this request to mod_jserv (mod_oc4j in 10g AS) & mod_jserv caters thisrequest with help of JVM.
How & Where check JVM related configuration in Oracle Apps 11i ?
So lets start with CONTEXT file under $APPL_TOP/admin (xml file) which is of pattern$SID_$HOSTNAME.xmlThere are two important lines in CONTEXT file which will help you in understanding JVM
 
 jvm_options oa_var="s_jvm_options" osd="Solaris" -verbose:gc -Xmx512M-Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps-XX:+UseTLAB /jvm_options-Verbose:gc means JVM is configured to print output when gc(Garbage Collector)runs.Xmx is maximum memory allocated to JVM in above example its 512 MB.Xms is JVM will start with this much memory i.e. 128 MB.
Now Check another line in 11i Context file like
 
oacore_nprocs oa_var="s_oacore_nprocs"2/oacore_nprocsWhich means that there are two JVM's for OACore Group. Usually default its 1 JVMin my Instance I changed it to 2, to cater huge Self Service users in my case.
how to increase number of JVM's, Types of group , Monitoring & Tuning Apps 11i JVM
Q: How to increase No. Of JVM's
Since you know place where number of JVM's are stored in Apps 11i in Context File , so youcan change them as per your requirement. There are basically following Groups with theirown JVM's. 
OACoreGroup, where most of 
request goes 
DiscoGroup, which serve your Discoverer related requests 
FormsGroup, for Forms (If they are running in Servlet Mode, confirm it again) 
XmlSvcsGroup, for
ServicesIn Context File
disco_nprocs oa_var="s_disco_nprocs" osd="Solaris" 1 /disco_nprocs
Sets 1 JVMProcess for Discoverer.
oacore_nprocs oa_var="s_oacore_nprocs" 1 /oacore_nprocs
Sets 1 JVM for forOACoreGroup
 
Similarly ,
s_forms_servlet_nprocs & s_xmlsvcs_nprocs
for Forms & XML Servicesresp.These Groups are defined in
for Jserv i.e. jserv.conf under$IAS_ORA/Apache/Jserv/conf ; likeApJServGroup OACoreGroupApJServGroup DiscoGroupApJServGroup FormsGroupApJServGroup XmlSvcsGrp 
Q: Where to find Apps 11i JVM logs ?
JVM log location is defined in java.sh ( found in $IAS_ORACLE_HOME/Apache/Apache/bin)Oracle Apps 11i JVM log file directory is defined by parameter JVMLOGDIR( $IAS_ORACLE_HOME/Apache/Jserv/logs/jvm ) and log file are defined by STDOUTLOG & STDERRLOG. Example of JVM log files are
OACoreGroup.0.stderr ,OACoreGroup.0.stdout, DiscoGroup.0.stdout,DiscoGroup.0.stderr, XmlSvcsGrp.0.stderr, XmlSvcsGrp.0.stdout
where 0 denotes first JVM & 1 denotes second JVM. stderr records error encountered in JVM& stdout records other information like GCGarbage Colector & How to tune 11i Apps JVM , How to monitor JVM'sNow you know where to find Apps 11i
logs so lets understand these log files
Analyzing
JVM logs
In order to analyze Oracle apps 11i JVM, lets open stdout file for one of Group, I haveselected OACoreGroup here, you know log file location (If not check previous page) , openfile like
OACoreGroup.X.stdout
you should see output like below if GC(Grabage Collector)is set in Verbose mode.
48561.624: [GC 325980K->170382K(519168K), 0.2751056 secs]49307.880: [GC 334862K->179171K(519168K), 0.2660486 secs]50236.662: [GC 343651K->187797K(519168K), 0.2518720 secs]50515.494: [Full GC[Unloading class sun. reflect. Generated Method Accessor143][Unloading class sun. reflect. GeneratedMethodAccessor136][Unloading class sun. reflect. GeneratedMethodAccessor74]
Here first entry is time since JVM was started so each time you bounce Apache it will bereset to 0. So difference between two entries is seconds after which GC (Garbage Collector)was executed. First entry in bracket [ is Heap Size at start of GC & Second entry is HeapSize after GC was executed. Number mentioned in round bracket () is heap size currentlyattocated in K.
If you see GC running very frequently , you can start thinking of increasing JVM heap size
First three entries were for Minor Garbage Collector & fourth one is FULL GC is for FullGarbage Collector.
Search History:
Searching...
Result 00 of 00
00 results for result for
  • p.
  • Notes
    Load more