{"id":964,"date":"2008-11-18T15:59:36","date_gmt":"2008-11-18T19:59:36","guid":{"rendered":"http:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/"},"modified":"2008-11-18T16:07:36","modified_gmt":"2008-11-18T20:07:36","slug":"jvm-tuning-garbage-collection-in-oracle-apps-11i","status":"publish","type":"post","link":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/","title":{"rendered":"JVM Tuning  (Garbage Collection) in Oracle Apps 11i"},"content":{"rendered":"<p>There are some good notes on JVM tuning from <strong>Mike Shaw<\/strong> on <strong>Steven Chan&#8217;s<\/strong> blog\u00a0 <a target=\"_blank\" href=\"http:\/\/blogs.oracle.com\/stevenChan\/2006\/08\/01\/\">here<\/a> , <a target=\"_blank\" href=\"http:\/\/blogs.oracle.com\/stevenChan\/2006\/08\/14\/\">here<\/a> and <a target=\"_blank\" href=\"http:\/\/blogs.oracle.com\/stevenChan\/2006\/10\/19\/\">here<\/a> and some good<strong>\u00a0Metalink\u00a0notes<\/strong> at end of this post.<br \/>\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 Important thing missing from all these notes (for some one like me who is new to Java) is <strong>basics of Garbage Collection<\/strong>, <strong>Generation<\/strong> and how to <strong>read GC output<\/strong>.<br \/>\nIn this post I&#8217;ll start with basics of <strong>JVM GC<\/strong> (Garbage Collection) and then in next post apply this theory for <strong>real time performance issues<\/strong> w.r.t. JVM (11i Java Virtual Machine) .<\/p>\n<p><strong><u>Garbage<\/u> <\/strong>&#8211; Java object is considered garbage when it can no longer be reached from any pointer in the running program.<\/p>\n<p><u><strong>Generations<\/strong><\/u> &#8211; Memory in JVM is managed in terms of generation i.e. <strong>Young generation<\/strong> and <strong>tenured generation<\/strong>. Memory pool holding object of <strong>different ages <\/strong>like young, tenured. If a particular generation fills up, garbage collection occurs.<\/p>\n<p><strong>A. <u>Young generation<\/u><\/strong> &#8211; Objects are initially allocated in Young generation (most of objects die here). When Young generation fills up, it causes <strong>Minor Garbage Collection<\/strong>. Any objects survived after Minor GC (Garbage Collection) are moved to <strong>Tenured Generation<\/strong>.\u00a0 Minor Garbage collection is\u00a0<strong>quick<\/strong> as compared to Full\/Major GC.<\/p>\n<p><strong>B. <u>Tenured generation<\/u><\/strong> &#8211; Surviving objects (from young generation) after minor garbage collection are moved to area called tenured generation, When tenured generation fills up it causes major collection (aka <strong>Full GC<\/strong> or Full Garbage Collection). Major collection is <strong>slow<\/strong> as it involves all live objects.<\/p>\n<p><u><strong>Garbage Collection<\/strong><\/u> (GC) &#8211; is program which clears garbage(dead java objects). Garbage Collection work on fundamental principle that <strong>majority of java objects die young<\/strong> (quickly after arriving in JVM). There are two kind of Garbage Collection <strong>Minor Garbage Collection<\/strong> and <strong>Major Garbage Collection<\/strong> (aka Full GC)<\/p>\n<p><strong>Example of Minor GC<\/strong> &#8211;\u00a0 3824.164: [<strong>GC<\/strong> 196725K-&gt;141181K(209864K), 0.3295949 secs]<br \/>\n<strong>Example of Minor GC<\/strong> &#8211;\u00a0 3841.051: [<strong>Full<\/strong> GC 150466K-&gt;87061K(217032K), 3.2626248 secs]<\/p>\n<p><strong><u>Pauses<\/u><\/strong>: is the time when application becomes unresponsive because garbage collection is occurring.<\/p>\n<p>.<\/p>\n<p><strong><u>Understanding JVM parameter for 11i<\/u><\/strong><br \/>\nSizing the generation is very important in tuning JVM GC. Before jumping to Sizing generation (Young and Tenured)\u00a0lets look at default <strong>11i JVM parameters<\/strong><\/p>\n<p>In <strong>context file<\/strong>($APPL_TOP\/ admin\/ $CONTEXT_NAME.xml) default entry for JVM is like<\/p>\n<p><font color=\"#ff0000\">&lt;jvm_options oa_var=&#8221;s_jvm_options&#8221; osd=&#8221;Solaris&#8221;&gt;-verbose:gc <strong>-Xmx512M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2<\/strong>-XX:+PrintGCTimeStamps -XX:+UseTLAB &lt;\/jvm_options&gt;<\/font><\/p>\n<p><strong>1.<\/strong> Above line represents JVM (<strong>OACoreGroup<\/strong>) size in 11i<br \/>\n<strong>2.<\/strong> <strong>-Xms128M,<\/strong> means start with 128MB heap size<br \/>\n<strong>3.<\/strong> <strong>-Xmx512M<\/strong>, means grow JVM heap size <strong>upto max size<\/strong> of 512 MB<br \/>\n<strong>4. <\/strong>-XX:NewRatio=2 is to <strong>control young generation<\/strong> i.e. ratio between young and tenured generation is 1:2 (i.e. if size of young generation is 50 MB then size of tenured generation should be approx. 100MB)<br \/>\n<strong>5.<\/strong> <strong>-XX:MaxPermSize=128M<\/strong> limit the <strong>permanent generation<\/strong> to 128M (permanent generation is part\/area in tenured generation)<br \/>\n<strong>6. <\/strong>-XX:+UseTLAB represents to use <strong>thread-local object allocation<\/strong><br \/>\n<strong>7. <\/strong>There are two more parameters (11i JVM uses default values) -XX:MinHeapFreeRatio=&lt;minimum&gt; &amp; -XX:MaxHeapFreeRatio=&lt;maximum&gt; with default value of 40 &amp; 70 resp. (for Solaris)<\/p>\n<p><font color=\"#ff0000\">If percentage of free space in generation falls below 40%, size of generation will expand and if percentage of free space exceeds 70%, the size of generation will shrunk.<\/font><\/p>\n<p>.<br \/>\n<strong><u>Various type of Garbage Collector<br \/>\n<\/u><\/strong>From JDK 1.4.2 there are total 4 type of <strong>collectors<\/strong> (prior to 1.4.2 it was just one collector i.e. <strong>default<\/strong> collector)<\/p>\n<p><strong>1. Default Collector<\/strong>: JDK prior to 1.4.2 uses default collector. If you don&#8217;t specify any parameter with JVM default is <strong>default collector<\/strong>.<\/p>\n<p><strong>2. ThroughPut Collector<\/strong> : This collector uses <strong>parallel version<\/strong> of young generation collector but\u00a0Tenrured generation is collected in normal way. To set throughput collector use &#8211;<strong>XX:+UseParallelGC\u00a0<\/strong> so change<\/p>\n<p><font color=\"#ff0000\">&lt;jvm_options oa_var=&#8221;s_jvm_options&#8221; osd=&#8221;Solaris&#8221;&gt;-verbose:gc -Xmx512M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB &lt;\/jvm_options&gt;<\/font><br \/>\nto<br \/>\n<font color=\"#ff0000\">&lt;jvm_options oa_var=&#8221;s_jvm_options&#8221; osd=&#8221;Solaris&#8221;&gt;-verbose:gc -Xmx512M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB <strong>-XX:+UseParallelGC<\/strong>&lt;\/jvm_options&gt;<\/font><\/p>\n<p><strong>3. Concurrent Low Pause Collector<\/strong> : Concurrent Collector is used to collect <strong>tenured generation collection concurrently<\/strong> with execution of application. <font color=\"#ff0000\">Parallel version of collector is used for young generation<\/font>. To set Concurrent Low Pause Collector use &#8211;<strong>XX:+UseConcMarkSweepGC<\/strong><br \/>\nlike<br \/>\n<font color=\"#ff0000\">&lt;jvm_options oa_var=&#8221;s_jvm_options&#8221; osd=&#8221;Solaris&#8221;&gt;-verbose:gc -Xmx512M -Xms128M -XX:MaxPermSize=128M -XX:NewRatio=2 -XX:+PrintGCTimeStamps -XX:+UseTLAB -XX:+UseConcMarkSweepGC&lt;\/jvm_options&gt;<\/font><\/p>\n<p><strong>4. Incremental low pause collector<\/strong> : This collector collects just <strong>portion of tenured generation<\/strong> at each minor garbage collection. To use Incremental low pause collector use<br \/>\n<strong>-Xincgc<\/strong><\/p>\n<p><font color=\"#ff0000\">If you are on JDK 1.4.2 with multi CPU try setting\u00a0<strong>Concurrent Low Pause Collector<\/strong>as Garbage Collector.<br \/>\n<\/font><\/p>\n<p><strong><u>Thumb rule for Grabage Collection\/ JVM tuning w.r.t. 11i<br \/>\n<\/u>1.<\/strong>Stay on latest JVM\/JDK version where ever possible (latest certified with 11i is JRE 6, you should be at-least 1.4.2 and higher)<br \/>\n<strong>2.<\/strong> For <strong>OACoreGroup<\/strong> consider no more than 100 active users per JVM<br \/>\n<strong>3.<\/strong> There should NOT be more than 1 active JVM per CPU<br \/>\n<strong>4. <\/strong>Try to reduce GC (Garbage Collection) frequency (specially Major\/Full GC). Play\u00a0with various JVM parameters like (<strong>-Xmx, -Xms, -XX:MaxPermSize, -XX:NewRatio, -XX:+UseParallelGC\/ -XX:+UseConcMarkSweepGC<\/strong>)<br \/>\n<strong>5.<\/strong> If you are on JDK 1.4.2 with multiple CPU middle tier, use <strong>Concurrent Low Pause Garbage Collector<\/strong>\u00a0 by setting -XX:+UseConcMarkSweepGC with JVM<br \/>\n<strong>6.<\/strong> If you are using <strong>Oracle Configurator<\/strong>, assign dedicated JVM for configurator requests<br \/>\n<strong>7.<\/strong> Try setting JVM max size <strong>NOT<\/strong>greater than 1 GB, (use multiple JVM&#8217;s of 512MB or 1024 MB), this is to reduce GC time (<font color=\"#ff0000\">more heap size means more time in GC<\/font>)<br \/>\n<strong>8. <\/strong>Minor GC should be occurring at interval long enough to allow many objects to die young (i.e. lot of objects should die between two minor GC).<br \/>\n<strong>9.<\/strong> Throughput (which is time <strong>NOT <\/strong>spent on GC) is inversely proportion to amount of memory. Higher the memory for JVM, more time for GC meaning low throughput.<br \/>\n<strong>10.<\/strong> Unless you have problems with <strong>pauses<\/strong> (<font color=\"#ff0000\">time when application becomes unresponsive because garbage collection is occurring<\/font>), try granting as much memory as possible to VM (128 to 512 is good start and fine tune as per load testing results)<br \/>\n.<\/p>\n<p><strong>How to find JDK version used by Apache\/Jserv (JVM) in 11i ?<br \/>\n<\/strong><br \/>\nIn context file search for parameter like <strong>s_jdktop<\/strong><\/p>\n<p>&lt;JDK_TOP oa_var=&#8221;s_jdktop&#8221;&gt;\/oracle\/apps\/11i\/vis11icomn\/util\/java\/1.4\/j2sdk1.4.2_04&lt;\/JDK_TOP&gt;<\/p>\n<p><strong>Where is JVM log location in 11i ?<\/strong><br \/>\n$IAS_ORACLE_HOME\/ Apache\/ Jserv\/ logs\/ jvm\/ OACoreGroup.0.stdout\u00a0 (<strong>GC output<\/strong>)<br \/>\n$IAS_ORACLE_HOME\/ Apache\/ Jserv\/ logs\/ jvm\/ OACoreGroup.0.stderr\u00a0 (<strong>JVM Error<\/strong>)<\/p>\n<p>.<\/p>\n<p><strong>How to read\u00a0GC (JVM\u00a0stdout) file ?<\/strong><\/p>\n<p>Example of JVM out file to understand Garbage Collection in 11i<\/p>\n<p><font color=\"#ff0000\">3824.164: [GC 196725K-&gt;141181K(209864K), 0.3295949 secs]<br \/>\n3840.734: [GC 207741K-&gt;150466K(217032K), 0.3168890 secs]<br \/>\n3841.051: [<strong>Full<\/strong> GC 150466K-&gt;87061K(217032K), 3.2626248 secs]<br \/>\n3854.717: [GC 155413K-&gt;97857K(215568K), 0.2732267 secs]<br \/>\n3874.714: [GC 166209K-&gt;109946K(215568K), 0.3498301 secs]<\/font><\/p>\n<p><strong>1.<\/strong> Line 1,2 4 and 5 are example of <strong>Minor Collection<\/strong><br \/>\n<strong>2.<\/strong> Line 3 (<strong>Full GC<\/strong>) is example of <strong>Major Collection<\/strong><br \/>\n<strong>3.<\/strong> First entry in each line is <strong>time in seconds<\/strong> since JVM started, To find out time between two GC (Garbage Collection) just subtract second entry from first i.e. (3840.734 &#8211; 3824.164 = 16.57 seconds)<br \/>\n<strong>4.<\/strong> 196725K-&gt;141181K in first line indicates <strong>combined size of live objects<\/strong> before and after Garbage Collection (GC)<br \/>\n<strong>5.<\/strong> (209864K) in first line in parenthesis, represents <strong>object after minor collection <\/strong>that aren&#8217;t necessarily alive but <strong>can&#8217;t be reclaimed<\/strong>, either because they are directly alive, or because they are referenced from objects in tenured generation.<br \/>\n<strong>6.<\/strong> 0.3295949 secs in first line represents <strong>time taken to run minor collection<\/strong>.<br \/>\n<strong>7. <\/strong>Full GC in line three represents <strong>Full Garbage Collection<\/strong> or Major Collection<\/p>\n<p>.\u00a0<br \/>\n<strong><u>References<\/u><\/strong><\/p>\n<ul>\n<li><strong>362851.1<\/strong>\u00a0 Guidelines to setup the JVM in Apps E-Business Suite 11i and R12<\/li>\n<li><strong>370583.1\u00a0 <\/strong>Basic troubleshooting of JVM consuming cpu or too many JDBC connections in Apps 11i<\/li>\n<li><strong>567647.1\u00a0<\/strong> Using Various Garbage Collection Methods For JVM Tuning<\/li>\n<li><strong>390031.1<\/strong>\u00a0 Performance Tuning Forms Listener Servlet In Oracle Applications<\/li>\n<li><a target=\"_blank\" href=\"http:\/\/java.sun.com\/docs\/hotspot\/gc1.4.2\">Garbage Collection in Sun JDK<\/a><\/li>\n<li><a target=\"_blank\" href=\"http:\/\/java.sun.com\/docs\/hotspot\/gc1.4.2\/example.html\">GC Example<\/a><\/li>\n<\/ul>\n<p><font color=\"#ff0000\">More on tuning Apache and JVM in 11i\/R12 coming soon &#8230;.<\/font><\/p>\n","protected":false},"excerpt":{"rendered":"<p>There are some good notes on JVM tuning from Mike Shaw on Steven Chan&#8217;s blog\u00a0 here , here and here [&hellip;]<\/p>\n","protected":false},"author":115,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[212],"tags":[],"class_list":["post-964","post","type-post","status-publish","format-standard","hentry","category-performance"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>JVM Tuning (Garbage Collection) in Oracle Apps 11i  -<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"JVM Tuning (Garbage Collection) in Oracle Apps 11i  -\" \/>\n<meta property=\"og:description\" content=\"There are some good notes on JVM tuning from Mike Shaw on Steven Chan&#8217;s blog\u00a0 here , here and here [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/\" \/>\n<meta property=\"article:published_time\" content=\"2008-11-18T19:59:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2008-11-18T20:07:36+00:00\" \/>\n<meta name=\"author\" content=\"Masroof Ahmad\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Masroof Ahmad\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/\",\"url\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/\",\"name\":\"JVM Tuning (Garbage Collection) in Oracle Apps 11i -\",\"isPartOf\":{\"@id\":\"https:\/\/onlineappsdba.com\/#website\"},\"datePublished\":\"2008-11-18T19:59:36+00:00\",\"dateModified\":\"2008-11-18T20:07:36+00:00\",\"author\":{\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\"},\"breadcrumb\":{\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/onlineappsdba.com\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"JVM Tuning (Garbage Collection) in Oracle Apps 11i\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/onlineappsdba.com\/#website\",\"url\":\"https:\/\/onlineappsdba.com\/\",\"name\":\"\",\"description\":\"Oracle Implementation &amp; Training Experts\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/onlineappsdba.com\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb\",\"name\":\"Masroof Ahmad\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g\",\"caption\":\"Masroof Ahmad\"},\"url\":\"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"JVM Tuning (Garbage Collection) in Oracle Apps 11i  -","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/","og_locale":"en_US","og_type":"article","og_title":"JVM Tuning (Garbage Collection) in Oracle Apps 11i  -","og_description":"There are some good notes on JVM tuning from Mike Shaw on Steven Chan&#8217;s blog\u00a0 here , here and here [&hellip;]","og_url":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/","article_published_time":"2008-11-18T19:59:36+00:00","article_modified_time":"2008-11-18T20:07:36+00:00","author":"Masroof Ahmad","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Masroof Ahmad","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/","url":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/","name":"JVM Tuning (Garbage Collection) in Oracle Apps 11i -","isPartOf":{"@id":"https:\/\/onlineappsdba.com\/#website"},"datePublished":"2008-11-18T19:59:36+00:00","dateModified":"2008-11-18T20:07:36+00:00","author":{"@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb"},"breadcrumb":{"@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/onlineappsdba.com\/index.php\/2008\/11\/18\/jvm-tuning-garbage-collection-in-oracle-apps-11i\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/onlineappsdba.com\/"},{"@type":"ListItem","position":2,"name":"JVM Tuning (Garbage Collection) in Oracle Apps 11i"}]},{"@type":"WebSite","@id":"https:\/\/onlineappsdba.com\/#website","url":"https:\/\/onlineappsdba.com\/","name":"","description":"Oracle Implementation &amp; Training Experts","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/onlineappsdba.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/909a876ed58d400faf82caf81d61bfdb","name":"Masroof Ahmad","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/onlineappsdba.com\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/10f9db7bdbbd7f9ccfbe9b2d208e5978fc28315e9c704383e639a926ea0fce5f?s=96&d=mm&r=g","caption":"Masroof Ahmad"},"url":"https:\/\/onlineappsdba.com\/index.php\/author\/masroof\/"}]}},"_links":{"self":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/964","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/users\/115"}],"replies":[{"embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/comments?post=964"}],"version-history":[{"count":0,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/posts\/964\/revisions"}],"wp:attachment":[{"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/media?parent=964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/categories?post=964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/onlineappsdba.com\/index.php\/wp-json\/wp\/v2\/tags?post=964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}