<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7646217949411391696</id><updated>2011-11-27T23:16:51.324Z</updated><category term='X11 Forwarding'/><category term='JVM arguments'/><category term='Tomcat tuning'/><category term='SSH'/><category term='PuTTy'/><category term='JAVA'/><category term='JSP'/><category term='DBCP'/><category term='Bootstrap'/><category term='Anurag'/><category term='Hibernate'/><category term='memcached telnet'/><category term='Property Files'/><category term='Tomcat Class Loader'/><category term='Memory Leak'/><category term='Loadtesting'/><category term='Grinder Setup'/><category term='Publication Bootstrapping'/><category term='Full Text Search'/><category term='Grinder Installation'/><category term='Performance Optimization'/><category term='Escenic'/><category term='Grinder'/><category term='Tomcat 5.5.27'/><category term='Quick Start Guide'/><category term='Content Studio'/><category term='Anurag Kapur'/><category term='CGLib'/><category term='memcached'/><category term='Xming'/><category term='CTX_DDL'/><category term='Apache'/><category term='Database Issue'/><category term='ORA-29861'/><category term='Tomcat Escenic Memory Leak'/><category term='Configuration Files'/><category term='Escenic Bootstrapping'/><category term='X11'/><category term='memcached monitoring'/><category term='memcached stats'/><title type='text'>--Tech Bytes--</title><subtitle type='html'>My workspace where I document solutions to technical issues I have faced during various projects and also publish useful technical articles on a variety of topics.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-2863564740270836745</id><published>2010-10-12T23:59:00.001+01:00</published><updated>2010-10-18T14:41:42.490+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Bootstrap'/><category scheme='http://www.blogger.com/atom/ns#' term='Publication Bootstrapping'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='Escenic Bootstrapping'/><title type='text'>Escenic 4.3-x Publication Bootstrapping Configurations</title><content type='html'>&lt;div&gt;Bootstrapping is controlled with the following to configuration files&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;ECE_LOCALCONFIG/neo/io/content/InitialBootstrapper.properties&lt;/li&gt;&lt;li&gt;features (Publication resource - /escenic/features)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #999999;"&gt;ECE_LOCALCONFIG/neo/io/content/InitialBootstrapper.properties&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;# The default dpeth to try to probe when going through the section tree. By default, a&lt;br /&gt;# publication's top sections along with its children are probed, i.e. the depth is set to 2.&lt;br /&gt;# Setting this property has effect when the bootstrapOnStratup is set to the keyword true&lt;br /&gt;# (through features for example)&lt;br /&gt;depth=3&lt;br /&gt;&lt;br /&gt;# The number of seconds that the InitialBootstrapper should wait before trying to load the&lt;br /&gt;# publications. Default value is 60&lt;br /&gt;secondsToWait=120&lt;br /&gt;&lt;br /&gt;# The number of seconds to try retrieving the sections and articles in the bootstrap phase.&lt;br /&gt;# By default, if a publication has not finished bootstraping within 30 seconds, the boostrap&lt;br /&gt;# for the publication in question would fail&lt;br /&gt;timeoutSeconds=120&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #999999;"&gt;features (Publication resource)&lt;/span&gt;&lt;br /&gt;#######################################################################&lt;br /&gt;# Initial Bootstrapper Configurations&lt;br /&gt;#######################################################################&lt;br /&gt;# Can be set to make the InitialBoottrapper run through the publication&lt;br /&gt;# when the server starts&lt;br /&gt;# Example:&lt;br /&gt;# bootstrapOnStartup=ece_frontpage,main,news,sports,football&lt;br /&gt;# bootstrapOnStartup=true&lt;br /&gt;# when set to true the depth property of the InitialBootstrapper&lt;br /&gt;# component is used&lt;br /&gt;bootstrapOnStartup=true&lt;br /&gt;# The initial bootstrapper will by default try to connect to the&lt;br /&gt;# publication's URL. &amp;nbsp;On a multi-server installation, this will probably&lt;br /&gt;# be a HTTP server spraying the requests to more application servers.&lt;br /&gt;# To make the initial bootstrapper connect to the bootstrapper,&lt;br /&gt;# add a line which specifies the "localUrl" property. &amp;nbsp;All connections to&lt;br /&gt;# the template system&lt;br /&gt;# Example:&lt;br /&gt;# local.url=http://localhost:8080/&lt;pub-name&gt;/&lt;/pub-name&gt;&lt;br /&gt;local.url=http://localhost:8080/myPub/&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Notes&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Once Bootstrapping is complete, the property "bootstrapped" in http://&lt;escenic_server&gt;/escenic-admin/browser/neo/io/content/InitialBootstrapper has value "true". The publication is not accessible until bootstrapping is complete.&lt;/escenic_server&gt;&lt;br /&gt;&lt;br /&gt;You can also force mark complete the bootstrapping process by setting the "bootstrapped" property to "true" here:&amp;nbsp;http://&lt;escenic_server&gt;/escenic-admin/browser/neo/io/content/InitialBootstrapper?property=bootstrapped&lt;/escenic_server&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;Changing logging level of the Bootstrapping component&lt;/u&gt;&lt;br /&gt;trace.properties (or relevant log4j properties)&lt;br /&gt;log4j.category.neo.xredsys.config.InitialBootstrapper=DEBUG, Appender&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt; &lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-2863564740270836745?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/2863564740270836745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/10/escenic-43x-publication-bootstrapping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/2863564740270836745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/2863564740270836745'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/10/escenic-43x-publication-bootstrapping.html' title='Escenic 4.3-x Publication Bootstrapping Configurations'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-7603060506155251549</id><published>2010-10-11T13:48:00.011+01:00</published><updated>2010-10-18T15:07:26.766+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat Escenic Memory Leak'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat 5.5.27'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Memory Leak'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><title type='text'>Tomcat 5.5.27 | Memory Leak In Escenic CMS Based Web Application</title><content type='html'>&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: inherit; text-align: justify;"&gt;&lt;u&gt;Problem  Statement&lt;/u&gt;&lt;br /&gt;Memory leak in web application  running on Tomcat&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;System  Information&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Tomcat 5.5.27&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Apache HTTPD 2.2.9&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Java HotSpot(TM) Server VM (build  1.5.0_14-b03, mixed mode)&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Mod_proxy_http  connector&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Solaris 10 x86&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Tomcat JVM heap settings: min:2GB  and max:2GB&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Observations and Investigation  Done&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Under load, the web application  slowly runs out of heap space. The heap utilization graph suggests a memory leak  type pattern.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLMAno5Z2lI/AAAAAAAACPA/pUr70osY3HU/s640/heap_usage.jpg" style="margin-left: auto; margin-right: auto;" width="640" /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Tomcat JVM Heap Utilization Pattern&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Heap dumps were gathered to  determine the root cause and observations are as below from the  dumps:&lt;/span&gt;&lt;/div&gt;&lt;ol style="margin-top: 0cm;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;HashMap entries from the below  object reference tree seem to consume over 80% of the used tenured generation  space.&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;org/apache/jasper/compiler/JspRuntimeContext&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;↓&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Java/util/Collections$SynchronizedMap&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;↓&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Java/util/HashMap&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;↓&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div align="center" class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="background-attachment: scroll; background-clip: initial; background-color: silver; background-image: none; background-origin: initial; background-position: 0% 0%; background-repeat: repeat repeat;"&gt;Java/util/HashMap$Entry&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;ol start="2" style="margin-top: 0cm;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;The number of objects referenced by  each HashMap entry vary between 2-3&lt;/span&gt;  &lt;ol style="margin-top: 0cm;" type="a"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;These are either a String and  JspServletWrapper object&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="MsoNormal" style="margin-left: 54pt;"&gt;&lt;span style="font-size: small;"&gt;or&lt;/span&gt;&lt;/div&gt;&lt;ol start="3" style="margin-top: 0cm;" type="1"&gt;&lt;ol start="2" style="margin-top: 0cm;" type="a"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;A String, JspServletWrapper and  &lt;u&gt;another HashMap Entry&lt;/u&gt;. This call reference tree of HashMap entries  referenced by another HashMap entry can repeat to a depth of approximately 8-10  nodes&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;/ol&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span style="font-size: small;"&gt;The above is indicated in an object  reference tree obtained after analyzing the Heap dump as shown  below&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;img border="0" height="314" src="http://2.bp.blogspot.com/_Oq9OlP-8ap0/TLMBRLiUzTI/AAAAAAAACPE/ogO2HI2uYig/s640/object_reference_tree.jpg" style="margin-left: auto; margin-right: auto;" width="640" /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Snapshot from IBM Heap Analyzer - Object Call Reference Tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;ol start="4" style="margin-top: 0cm;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;The maximum percentage of the memory  occupied by the HashMap entry object is by a character array that seems like the  JSP servlet response. HTML response (tags with content) can be seen in the  character array.&lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;Heap  dumps gathered during different  times and after a Full GC always  indicate 100 entries. The number of entries does not grow. However the  size of these Hash Map entries grows with time under load. After the  first Full GC the size of this HashMap was observed to be around 350MB.  The next heap dump obtained after the fourth full GC indicated that the  size of this Hash Map doubled to around 730MB. The number of entries  under this HashMap however remained constant. I use the words "directly  under" this HashMap since I am not sure yet if the number of entries  within the first level entries increased. A snapshot can be seen below&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="MsoNormal"&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;img border="0" height="292" src="http://2.bp.blogspot.com/_Oq9OlP-8ap0/TLMtuozVRJI/AAAAAAAACPU/AKrvwg6saNQ/s640/comparison_heap_usage.JPG" style="margin-left: auto; margin-right: auto;" width="640" /&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span style="font-size: small;"&gt;Comparison of size of HashMap after first and fourth full GC cycles&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Questions&lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;ol style="margin-top: 0cm;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;I am stuck at this point and have  run out of ideas on how to get to the root cause of this issue. Do you have any  ideas/suggestions to help identify the root cause? &lt;/span&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;How do I&amp;nbsp; confirm if this is a definite leak. How do I determine from the 2 heap dumps I have that objects are persisting in the heap and not getting collected? The address of objects can change across GC cycles. So what approach should be used to determine if an object that was seen in the first dump also exists in the subsequent dump?&lt;/span&gt;  &lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;I googled and found the following  interesting links&lt;/span&gt;  &lt;ol style="margin-top: 0cm;" type="a"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.mail-archive.com/dev@tomcat.apache.org/msg03395.html" target="_blank" title="http://www.mail-archive.com/dev@tomcat.apache.org/msg03395.html"&gt;http://www.mail-archive.com/dev@tomcat.apache.org/msg03395.html&lt;/a&gt;  Is there any know issues, configuration that causes a memory leak by caching of  servlet responses in the container and not flushing the cached  objects?&lt;/span&gt;  &lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://mail-archives.apache.org/mod_mbox/tomcat-users/200303.mbox/%3C000c01c2ee2c$41c079a0$03b696c0@garethdqw0t9if%3E" target="_blank" title="http://mail-archives.apache.org/mod_mbox/tomcat-users/200303.mbox/%3C000c01c2ee2c$41c079a0$03b696c0@garethdqw0t9if%3E"&gt;http://mail-archives.apache.org/mod_mbox/tomcat-users/200303.mbox/%3C000c01c2ee2c$41c079a0$03b696c0@garethdqw0t9if%3E&lt;/a&gt;  We use a lot of JSTL in our web application. Are there any known issues around  memory issues as indicated on the link? &lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Resolution&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;The objects holding references to the character arrays  that ultimately consume all the memory are of type  &lt;span style="background-color: #fff2cc;"&gt;org.apache.jasper.runtime.BodyContentImpl&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt; as indicated in the object reference tree below:&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="273" src="http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLM5k_9SCPI/AAAAAAAACPY/5klnpMNill0/s640/BodyContentImpl_holding_references.jpg" style="margin-left: auto; margin-right: auto;" width="640" /&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;BodyContentImpl holding references to memory consuming character arrays&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLM5k_9SCPI/AAAAAAAACPY/5klnpMNill0/s1600/BodyContentImpl_holding_references.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt; There was a bug reported in Tomcat 5.5.9 which says&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre class="bz_comment_text"&gt;&lt;i&gt;The problem is that this huge array never gets reset due to the object pooling &lt;br /&gt;implementation in Jasper (JspFactoryImpl maintains a pool of PageContextImpl &lt;br /&gt;objects. Each PageContextImpl object maintains an array of BodyContentImpl &lt;br /&gt;objects), so the memory it consumed is never returned to the heap.&lt;br /&gt;&lt;/i&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;a href="https://issues.apache.org/bugzilla/show_bug.cgi?id=37793"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;https://issues.apache.org/bugzilla/show_bug.cgi?id=37793&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;We do not use the suggest JVM argument in our Tomcat 5.5.27 JVM&lt;/span&gt;&lt;br /&gt;&lt;pre class="bz_comment_text" style="background-color: white; color: #0b5394;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;-Dorg.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER=true&lt;/span&gt;&lt;/b&gt;&lt;/pre&gt;&lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;/div&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;When the tests were repeated using the JVM argument mentioned above, the problem was resolved. A healthy heap utilization graph was obtained as indicate below&lt;/span&gt;&lt;br /&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLxLM-dsf_I/AAAAAAAACPk/SolVOyYpAuI/s1600/heap_utilization_post_fix.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="380" src="http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLxLM-dsf_I/AAAAAAAACPk/SolVOyYpAuI/s640/heap_utilization_post_fix.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Heap Utilization Post Using the Recommended JVM Argument&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;There was no residual garbage after Full GC cycles as seen before this new JVM argument.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Additional Configurations Added In The Process&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Development mode was turned "off" for Jasper&lt;/li&gt;&lt;li&gt;Trim white spaces option what turned "on" for Jasper&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;These are recommended production settings for tomcat as mentioned here -&amp;nbsp;&lt;a href="http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html"&gt;http://tomcat.apache.org/tomcat-5.5-doc/jasper-howto.html&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0pt none;" width="125" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-7603060506155251549?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/7603060506155251549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/10/tomcat-5527-memory-leak-in-escenic-cms.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7603060506155251549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7603060506155251549'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/10/tomcat-5527-memory-leak-in-escenic-cms.html' title='Tomcat 5.5.27 | Memory Leak In Escenic CMS Based Web Application'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_Oq9OlP-8ap0/TLMAno5Z2lI/AAAAAAAACPA/pUr70osY3HU/s72-c/heap_usage.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-6851603339506594473</id><published>2010-03-17T16:58:00.001Z</published><updated>2010-03-17T17:01:41.199Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='memcached monitoring'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached telnet'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='memcached stats'/><title type='text'>Memcached Telnet Interface</title><content type='html'>&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;What is memcached? &lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;memcached is a popular distributed memory object caching system. &lt;a href="http://memcached.org/"&gt;For details refer this link&lt;/a&gt;&lt;u&gt; &lt;/u&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Connecting to the telnet interface&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;To connect to the interface you need the IP address and port on which the memcached server is running.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Describe below is a method to determine this information on a solaris environment on which a memcached service is already running&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;1. Determine the process ID of the memcached process (/service)&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;bash# ps -eaf | grep mem&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; root&amp;nbsp; 6917 25125&amp;nbsp;&amp;nbsp; 0 16:39:40 pts/31&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:00 grep mem&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sto&amp;nbsp; 6337&amp;nbsp; 1152&amp;nbsp;&amp;nbsp; 0 22:15:10 ?&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0:07 /opt/memcached/bin/memcached -d -P /tmp/logs/memcached/memcached.pi&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;2. Once you know the process ID, use the pargs command to determine the port on which the service is running&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;bash# pargs 6337&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;6337:&amp;nbsp;&amp;nbsp; /opt/memcached/bin/memcached -d -P /tmp/logs/memcached/memcached.pi&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[0]: /opt/memcached/bin/memcached&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[1]: -d&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[2]: -P&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[3]: /tmp/logs/memcached/memcached.pid&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[4]: -u&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[5]: anurag&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[6]: -c&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[7]: 1024&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[8]: -m&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[9]: 64&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[10]: -p&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;argv[11]: 11211&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;The value of the parameter 'p' indicates the port on which the memcached service is running. In the above example this is port: 11211 (which is the default port for the memcached service)&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;3. Determine the IP address or hostname of the server using the standard ifconfig -a or hostname commands&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;4. Once you know the IP(or hostname) and port, simply telnet to it as below:&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;bash# telnet localhost 11211&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Trying 127.0.0.1...&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Connected to localhost.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Escape character is '^]'.&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Once you get the above prompt, you are connected to the telnet interface!&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Obtaining memcached stats from the telnet interface&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Once you are connected to the telnet interface, simply use one of the following to obtain the necessary statistics:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="1" style="font-family: Verdana,sans-serif;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;span style="font-size: small;"&gt;Command&lt;/span&gt;&lt;/th&gt;  &lt;th&gt;&lt;span style="font-size: small;"&gt;Description&lt;/span&gt;&lt;/th&gt;  &lt;th&gt;&lt;span style="font-size: small;"&gt;Example&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td rowspan="7"&gt;&lt;span style="font-size: small;"&gt;stats&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Prints general statistics&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Prints memory statistics&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats slabs&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Prints memory statistics&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats malloc&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Print higher level allocation statistics&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats items&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats detail&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;stats sizes&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Example:&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;# telnet localhost 11211&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Trying 127.0.0.1...&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Connected to localhost.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;Escape character is '^]'.&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;stats&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT pid 6337&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT uptime 66956&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT time 1268844664&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT version 1.2.6&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT pointer_size 32&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT rusage_user 2.496175&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT rusage_system 4.299976&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT curr_items 108&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT total_items 114&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT bytes 748774&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT curr_connections 9&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT total_connections 5607&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT connection_structures 12&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT cmd_get 407&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT cmd_set 114&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT get_hits 174&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT get_misses 233&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT evictions 0&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT bytes_read 1045885&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT bytes_written 17161371&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT limit_maxbytes 67108864&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;STAT threads 1&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #cccccc; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;END&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Other uses of the telnet interface&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;table border="1" style="font-family: Verdana,sans-serif;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;&lt;span style="font-size: small;"&gt;Command&lt;/span&gt;&lt;/th&gt;  &lt;th&gt;&lt;span style="font-size: small;"&gt;Description&lt;/span&gt;&lt;/th&gt;  &lt;th&gt;&lt;span style="font-size: small;"&gt;Example&lt;/span&gt;&lt;/th&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;get&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Reads a value&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;get mykey&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;set&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Set a key unconditionally&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;set mykey 0 60 5&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;add&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Add a new key&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;add newkey 0 60 5&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;replace&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Overwrite existing key&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;replace key 0 60 5&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;append&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Append data to existing key&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;append key 0 60 15&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;prepend&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Prepend data to existing key&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;prepend key 0 60 15&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;incr&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Increments numerical key value by given number&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;incr mykey 2&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;decr&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Decrements numerical key value by given number&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;decr mykey 5&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;delete&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Deletes an existing key&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;delete mykey&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td rowspan="2"&gt;&lt;span style="font-size: small;"&gt;flush_all&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Invalidate specific items immediately&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;flush_all&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Invalidate all items in n seconds&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;flush_all 900&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style="font-size: small;"&gt;version&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Prints server version.&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;version&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;verbosity&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Increases log level&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;verbosity&lt;/span&gt;&lt;/td&gt; &lt;/tr&gt;&lt;tr&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;quit&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;Terminate telnet session&lt;/span&gt;&lt;/td&gt;  &lt;td&gt;&lt;span style="font-size: small;"&gt;quit&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0pt none;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-6851603339506594473?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/6851603339506594473/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/03/memcached-telnet-interface.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/6851603339506594473'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/6851603339506594473'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/03/memcached-telnet-interface.html' title='Memcached Telnet Interface'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-8283665663372360610</id><published>2010-03-17T16:16:00.003Z</published><updated>2010-03-17T16:22:47.142Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Xming'/><category scheme='http://www.blogger.com/atom/ns#' term='PuTTy'/><category scheme='http://www.blogger.com/atom/ns#' term='X11 Forwarding'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='SSH'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='X11'/><title type='text'>SSH To Remote Solaris Server With X11 Forwarding From Windows Desktop</title><content type='html'>&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;What is X11?&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;X11 (also know as X Windows) is basically a GUI for networked computers. &lt;a href="http://en.wikipedia.org/wiki/X_Window_System"&gt;Refer this link for details&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Softwares used&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;PuTTy: A ssh and telnet client. &lt;a href="http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download.html"&gt;Download&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Xming: A leading free unlimited X Window server for Microsoft Windows (XP/2003/Vista). &lt;a href="http://sourceforge.net/projects/xming/"&gt;Refer this link for details and downloading&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: #073763; font-family: Verdana,sans-serif;"&gt;&lt;b&gt;&lt;span style="font-size: small;"&gt;&lt;u&gt;Setup&lt;/u&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;Install and run Xming server on your windows desktop. Next, create a new ssh connection profile on a remote server with X11 forwarding enabled using your PuTTy client. To do this, navigate to your PuTTy configurations under the menu: Connection &amp;gt; SSH &amp;gt; Tunnels and set it up as shown in the snapshot below:&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; font-family: Verdana,sans-serif; text-align: center;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://4.bp.blogspot.com/_Oq9OlP-8ap0/S6D_uERdZKI/AAAAAAAACOc/tt_XkWqpdfY/s1600-h/putty_X11.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://4.bp.blogspot.com/_Oq9OlP-8ap0/S6D_uERdZKI/AAAAAAAACOc/tt_XkWqpdfY/s320/putty_X11.JPG" width="320" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;Note: The PuTTy configuration menu might be slightly different depending on the version you are using. This is an example to demostrate the setup.&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;If you do not have X11 forwarding enabled on the solaris machine you ssh into, the following might help:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: times new roman; font-size: 85%;"&gt;&lt;/span&gt; &lt;span style="font-size: small;"&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;vi /etc/ssh/sshd_config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;# make sure the following properties are set:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;AllowTcpForwarding yes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;# X11 tunneling options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;X11Forwarding yes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;X11DisplayOffset 10&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;X11UseLocalhost no # this is required because of the  IPV6 Solaris problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;svcadm disable /network/ssh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #666666; font-family: times new roman;"&gt;svcadm enable /network/ssh&lt;/span&gt;&lt;/span&gt;           &lt;span style="font-size: small;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: Verdana,sans-serif;"&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0pt none;" width="125" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-8283665663372360610?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/8283665663372360610/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/03/ssh-to-remote-solaris-server-with-x11.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/8283665663372360610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/8283665663372360610'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/03/ssh-to-remote-solaris-server-with-x11.html' title='SSH To Remote Solaris Server With X11 Forwarding From Windows Desktop'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S6D_uERdZKI/AAAAAAAACOc/tt_XkWqpdfY/s72-c/putty_X11.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-6119031065025041030</id><published>2010-01-26T02:43:00.028Z</published><updated>2010-03-08T01:47:37.895Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Quick Start Guide'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><title type='text'>Escenic 4.3-x Quick Start Developers Guide</title><content type='html'>&lt;span style="text-decoration: underline;"&gt;&lt;b&gt;&lt;span style="color: #073763;"&gt;What is Escenic?&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Escenic is a leading template based Strategic Content Management System. It is a family of several products out of which the following are predominantly used in various media applications:&lt;br /&gt;&lt;br /&gt;• Escenic Content Engine&lt;br /&gt;• Escenic Web Studio&lt;br /&gt;• Escenic Content Studio&lt;br /&gt;• Escenic Modules&lt;br /&gt;o Article Comments&lt;br /&gt;o Article Categories and Taxonomy&lt;br /&gt;o Forum&lt;br /&gt;o Menu Editor&lt;br /&gt;o Geotagging&lt;br /&gt;o Poll&lt;br /&gt;• Escenic Ad Manager&lt;br /&gt;• Escenic Analysis Engine&lt;br /&gt;&lt;br /&gt;For a complete list of Escenic products refer to: &lt;a href="http://www.escenic.com/products/"&gt;http://www.escenic.com/products/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #073763;"&gt;Escenic Content Engine&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The Escenic Content Engine is the heart for the Escenic Content System, storing all text, images, audio, video and other digital assets and provides the back-end functionality for applications such as Escenic Content Studio. Content is also made accessible through Java Server Pages tag libraries, RESTful web services and an open Java API.&lt;br /&gt;&lt;br /&gt;Escenic templates need this content engine to run on.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Installation Requirements&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0b5394;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Operating System&lt;br /&gt;Application Server or Servlet Container&lt;br /&gt;Database Server&lt;br /&gt;JDBC Driver&lt;br /&gt;LDAP Server&lt;br /&gt;JDK&lt;br /&gt;Web Server (optional)&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Example Stack &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0b5394;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f3f3f3;"&gt;OS: Solaris 10&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f3f3f3;"&gt;Servlet Container: Tomcat 5.5.x&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f3f3f3;"&gt;Database Server: Oracle 10g&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f3f3f3;"&gt;JDBC Driver: Ojdbc 10.x&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: #f3f3f3;"&gt;LDAP Server: Sun One (iPlanet)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Detailed Installation Instructions: &lt;a href="http://technet.escenic.com/multimedia/archive/00001/ece-install-guide_pdf_1231a.pdf"&gt;http://technet.escenic.com/multimedia/archive/00001/ece-install-guide_pdf_1231a.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #073763;"&gt;Escenic Template System&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #073763;"&gt;&lt;span style="text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;An Escenic template system is analogous to a file system with the following mapping:&lt;br /&gt;Folder -&amp;gt; Sections&lt;br /&gt;Files -&amp;gt; Articles&lt;br /&gt;&lt;br /&gt;Any Escenic site is a collection of templates where Sections and Articles present as data structures in the database are presented to the templates (web pages) in the form of regular Java Beans.&lt;br /&gt;&lt;br /&gt;Thus for starters you can assume every page of an Escenic web site as a Section or an Article page. Each of these section or article pages has a template associated with it.&lt;br /&gt;Section pages have ‘section’, ‘grid’ and ‘element’ templates associated with them whereas Article pages are associated to the ‘article’ template.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Typical Request Flow Mechanism of an Escenic Application&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;HTTP URL Request (by an end users browser)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Escenic Servlet Filter Chain&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Escenic Template System&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;HTTP Response&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;When the end user requests a URL, the request is handled by the application server, which forwards the request to the appropriate web application (Escenic web app in our case).&lt;br /&gt;&lt;br /&gt;The request on reaching the web app is handled by the Escenic filter chain. The various filters configured as a part of the standard Escenic filter chain have the following two tasks:&lt;br /&gt;&lt;br /&gt;1. Retrieve content beans from the database and make them available as java beans in the request scope to be used by a template.&lt;br /&gt;2. Forward the request to an appropriate Escenic template page. Unless overridden by WEB-INF/localconfig/defaults.properties the request is always forwarded to a file called WEB_APP_ROOT/template/common.jsp&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #0b5394;"&gt;&lt;span style="text-decoration: underline;"&gt;Article Page Request&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Article pages are requested by URL patterns like below containing the Escenic ID of the article being requested.&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: #cccccc;"&gt;http://www.mysite.com/ak/sport/football/article7002354.ece&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When a request like above is handled by the Servlet chain, it knows it has to extract the content bean of article with ID: 7002354 from the database, within section the ‘football’ sub-section of the ‘sport’ section.&lt;br /&gt;&lt;br /&gt;Based on the information in the request URL, the filters will set the following beans in the request scope before forwarding the request to the appropriate template page (WEB_APP_ROOT/template/common.jsp in most cases):&lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="0" cellspacing="0" class="MsoTableGrid" style="border-collapse: collapse; border: medium none;"&gt;&lt;tbody&gt;&lt;tr&gt;   &lt;td style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(89, 89, 89) none repeat scroll 0% 0%; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 41.4pt;" valign="top" width="55"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;S No&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(89, 89, 89) none repeat scroll 0% 0%; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 1.5in;" valign="top" width="144"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;Bean Name&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(89, 89, 89) none repeat scroll 0% 0%; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 2in;" valign="top" width="192"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style="-moz-background-clip: border; -moz-background-inline-policy: continuous; -moz-background-origin: padding; background: rgb(89, 89, 89) none repeat scroll 0% 0%; border: 1pt solid windowtext; padding: 0in 5.4pt; width: 149.4pt;" valign="top" width="199"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 41.4pt;" valign="top" width="55"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;1&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1.5in;" valign="top" width="144"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;publication&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2in;" valign="top" width="192"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;neo.xredsys.api.Publication&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 149.4pt;" valign="top" width="199"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;Publication object. Which publication object to set in&lt;br /&gt;request scope is determined from the context root of the URL.&lt;br /&gt;In this example, the Servlet filter would set the publication object&lt;br /&gt;corresponding to publication named ‘tol’.&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 41.4pt;" valign="top" width="55"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;2&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1.5in;" valign="top" width="144"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;section&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2in;" valign="top" width="192"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;neo.xredsys.api.Section&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 149.4pt;" valign="top" width="199"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;Again, which section object to set in scope is determined&lt;br /&gt;from the URL. In this example, football section,&lt;br /&gt;which is a sub-section of sport section will be set in scope&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;tr&gt;   &lt;td style="border: 1pt solid windowtext; padding: 0in 5.4pt; width: 41.4pt;" valign="top" width="55"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;3&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 1.5in;" valign="top" width="144"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;article&lt;/div&gt;&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 2in;" valign="top" width="192"&gt;&lt;span style="color: #333333; font-family: Georgia, serif; font-size: small;"&gt;&lt;span class="Apple-style-span" style="border-collapse: separate; font-size: 13px; line-height: 20px;"&gt;&lt;span style="color: black; font-family: 'Times New Roman';"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-size: medium; line-height: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;neo.xredsys.presentation.PresentationArticle&lt;/td&gt;   &lt;td style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 149.4pt;" valign="top" width="199"&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;The article object with ID:7002354 will be set in request&lt;br /&gt;scope in this example&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;After setting the above beans, the filter chain will forward control the template page: common.jsp.&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Typical Template System Flow for an Article Request&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Default Template (template/common.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Wireframe (template/wireframe/classic.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Article Layout (template/art_default.jsp or template/art_standard.jsp For an article request, the template system would look for a file with ‘art_’ prefixed to the default article template configured. Thus art_default.jsp or art_standard.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;template/[version number]/article/articleTypeSwitch.jsp (There is a concept of article types in Escenic. This JSP forwards control to a specific JSP after checking the ‘type’ of article bean set in request scope by the filter chain)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Article Template (template/[version number]/article/standardArticle.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Section Page Request&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Section pages are requested by URL patterns like below:&lt;br /&gt;&lt;a href="http://www.timesonline.co.uk/tol/news/"&gt;http://www.mysite.com/ak/news/&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;Just like the case of an article request the following beans are set in request scope on a section page request:&lt;br /&gt;1. publication – neo.xredsys.api.Publication&lt;br /&gt;2. section – neo.xredsys.api.Section&lt;br /&gt;3. pool – neo.xredsys.presentation.PresentationPool&lt;br /&gt;&lt;br /&gt;Unlike an article page, which is composed of only one template – the article template, a section page is composed of the following three templates:&lt;br /&gt;&lt;br /&gt;a. Section template&lt;br /&gt;b. Grid template&lt;br /&gt;c. Element template&lt;br /&gt;&lt;br /&gt;After setting the above beans in scope, the control would be forwarded to common.jsp (unless overridden).&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Typical Template System Flow for a Section Request&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Default Template (template/common.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Wireframe (template/wireframe/classic.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Section Layout (template/sec_default.jsp or template/sec_standard.jsp For a Section request, the template system would look for a file with ‘sec_’ prefixed to the default section template configured. Thus sec_default.jsp or sec_standard.jsp)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;template/[version number]/section/standard.jsp&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Grid Template (a file with prefix ‘grid_’. The exact file invoked will depend on the grid template associated with the Section requested. For example, if the name of the grid template associated with the section requested is ‘indexPage’, then the file templat/grid_indexPage.jsp will be invoked)&lt;/div&gt;&lt;div style="text-align: center;"&gt;↓    ↓   … ↓&lt;/div&gt;&lt;div style="text-align: center;"&gt;Element template 1  Element template 2 … Element template n&lt;/div&gt;&lt;div style="text-align: center;"&gt;(What element templates are invoked is controlled by the element templates associated with the particular Grid template. This is usually controlled by publishers using Escenic Content Studio)&lt;/div&gt;&lt;div style="text-align: center;"&gt;Each module on the Section page has its own element template. Thus, element templates are the basic building blocks of a section page.&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Example, in the following page from newsoftheworld.co.uk, each of the modules with a red outline is rendered by an element template JSP file.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15Z2hqhWOI/AAAAAAAACMg/GlDvhuuPBKY/s1600-h/notw_ece_example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="376" src="http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15Z2hqhWOI/AAAAAAAACMg/GlDvhuuPBKY/s640/notw_ece_example.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="text-decoration: underline;"&gt;&lt;span style="color: #0b5394;"&gt;Publication Resources&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A resource is nothing but a binary stream of data and Each Escenic publication (web-site) has the following essential resources:&lt;br /&gt;&lt;br /&gt;1. Article-type (/escenic/article-type)&lt;br /&gt;For starters, assume that every page in Escenic that is not a section page, is an article page. Now, there are various article types available in each Escenic publication. The article-type resource defines:&lt;br /&gt;• Number of article-types available in the publication&lt;br /&gt;• Name of each article type available in the publication&lt;br /&gt;• Fields associated with each article type in the publication&lt;br /&gt;&lt;br /&gt;For example: A publication may have an article type called: ‘standardArticle’ with the fields like: headline, teaser, body, main-image etc.&lt;br /&gt;&lt;br /&gt;2. Layout (/escenic/layout)&lt;br /&gt;This resource defines what grid elements are available in the publication and what element templates can constitute a particular grid template.&lt;br /&gt;For example: A publication may have two grid templates defined, namely, ‘indexpage’ and ‘homepage’.&lt;br /&gt;&lt;br /&gt;This resource first defines the article and section layouts available in the publication. The names of article and section layouts defined here are used to determine the names of JSP files with prefixes ‘sec_’ and ‘art_’ the template system forwards control to.&lt;br /&gt;&lt;br /&gt;Next, the resource defines what grid templates are available in the publication. The name of the grip template is used to determine what JSP file is invoked in a Section request. For example, if section named ‘sport’ is invoked by a URL request and a grid template named ‘indexpage’ is assigned to the sport section then a file named grid_indexpage.jsp would be called. (For the sequence of invocation refer to the request flow diagram described previously)&lt;br /&gt;&lt;br /&gt;This resource then defines what element templates are available in the publication. All element templates assigned to the grid template associated with the invoked Section request are called by the template system. The name of the element template JSP files is prefixed by ‘fp_’.&lt;br /&gt;&lt;br /&gt;3. Image Versions (/escenic/image-version)&lt;br /&gt;&lt;br /&gt;4. Features (/escenic/feature)&lt;br /&gt;&lt;br /&gt;For detailed documentation refer to Escenic Page developers guide: &lt;a href="http://technet.escenic.com/multimedia/archive/00001/page-dev_pdf_1228a.pdf"&gt;http://technet.escenic.com/multimedia/archive/00001/page-dev_pdf_1228a.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #e69138;"&gt;&lt;span style="font-size: small;"&gt;Disclaimer: This should not be treated as official Escenic documentation and should be only used as a beginners reference guide. The author does not take any responsibility for errors in the content. Please refer to technet.escenic.com for official documentation.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0pt none;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-6119031065025041030?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/6119031065025041030/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/01/escenic-43x-quick-start-developers.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/6119031065025041030'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/6119031065025041030'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2010/01/escenic-43x-quick-start-developers.html' title='Escenic 4.3-x Quick Start Developers Guide'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15Z2hqhWOI/AAAAAAAACMg/GlDvhuuPBKY/s72-c/notw_ece_example.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-3273480869742811319</id><published>2009-10-07T16:10:00.004+01:00</published><updated>2010-03-08T01:51:17.549Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='CGLib'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='Hibernate'/><title type='text'>Hibernate - Escenic Transaction Filter Integration | Error In Initialization</title><content type='html'>&lt;style&gt;&lt;!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman";	mso-fareast-font-family:"Times New Roman";}span.EmailStyle15	{mso-style-type:personal;	mso-style-noshow:yes;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;	font-family:Arial;	mso-ascii-font-family:Arial;	mso-hansi-font-family:Arial;	mso-bidi-font-family:Arial;	color:windowtext;}@page Section1	{size:612.0pt 792.0pt;	margin:72.0pt 90.0pt 72.0pt 90.0pt;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Issue&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;When trying to integrate Hibernate with Escenic Transaction Filter I observed the following exceptions, which prevented the Hibernate Session Factory to initialize correctly. Our application has both custom Event handlers and Transaction filters written for implementing certain functionalities. These event handlers and transaction filters in turn use the Hibernate ORM framework for database transactions. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;java.lang.ExceptionInInitializerError&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.proxy.pojo.cglib.CGLIBLazyInitializer.getProxyFactory(CGLIBLazyInitializer.java:117)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.proxy.pojo.cglib.CGLIBProxyFactory.postInstantiate(CGLIBProxyFactory.java:43)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.tuple.entity.PojoEntityTuplizer.buildProxyFactory(PojoEntityTuplizer.java:162)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.tuple.entity.AbstractEntityTuplizer.&lt;init&gt;(AbstractEntityTuplizer.java:135)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.tuple.entity.PojoEntityTuplizer.&lt;init&gt;(PojoEntityTuplizer.java:55)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.tuple.entity.EntityEntityModeToTuplizerMapping.&lt;init&gt;(EntityEntityModeToTuplizerMapping.java:56)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.tuple.entity.EntityMetamodel.&lt;init&gt;(EntityMetamodel.java:295)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.persister.entity.AbstractEntityPersister.&lt;init&gt;(AbstractEntityPersister.java:434)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.persister.entity.SingleTableEntityPersister.&lt;init&gt;(SingleTableEntityPersister.java:109)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:55)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.impl.SessionFactoryImpl.&lt;init&gt;(SessionFactoryImpl.java:226)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1294)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.db.HibernateUtil.&lt;clinit&gt;(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.db.MyTimesDAO.getSession(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.db.PlusDAO.insertRecord(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.article.ArticleTransactionFilterImpl.insertRecord(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.article.ArticleTransactionFilterImpl.handleTransaction(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at com.service.EscenicTransactionFilter.doUpdate(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.api.IOObjectUpdater.applyFiltersTo(IOObjectUpdater.java:3390)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.api.IOObjectUpdater.applyUpdateFiltersTo(IOObjectUpdater.java:3369)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.api.IOObjectUpdater.updateArticle(IOObjectUpdater.java:680)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.api.ArticleTransactionImpl.update(ArticleTransactionImpl.java:62)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.rio.RIOAdapterImpl.update(RIOAdapterImpl.java:625)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.rio.RIOSessionImpl$1.invoke(RIOSessionImpl.java:80)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at $Proxy1.update(Unknown Source)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.rio.RIOSessionImpl$12.run(RIOSessionImpl.java:1518)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at neo.xredsys.rio.RIOSessionImpl.update(RIOSessionImpl.java:1514)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.Method.invoke(Method.java:585)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.rmi.transport.Transport$1.run(Transport.java:153)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.security.AccessController.doPrivileged(Native Method)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.rmi.transport.Transport.serviceCall(Transport.java:149)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.Thread.run(Thread.java:595)&lt;br /&gt;Caused by: java.security.AccessControlException: access denied (java.lang.reflect.ReflectPermission suppressAccessChecks)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.security.AccessControlContext.checkPermission(AccessControlContext.java:264)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.security.AccessController.checkPermission(AccessController.java:427)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.SecurityManager.checkPermission(SecurityManager.java:532)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at java.lang.reflect.AccessibleObject.setAccessible(AccessibleObject.java:107)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.ReflectUtils.getConstructor(ReflectUtils.java:245)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:220)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.ReflectUtils.newInstance(ReflectUtils.java:216)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.KeyFactory$Generator.firstInstance(KeyFactory.java:157)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:225)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; at net.sf.cglib.proxy.Enhancer.&lt;clinit&gt;(Enhancer.java:69)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ... 44 more&lt;/clinit&gt;&lt;/clinit&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/init&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;I observed that when the Escenic event handler was invoked before the transaction filter in the JVMs lifecycle, the singleton instance of HibernateSessionFactory initialized successfully and subsequent use of this session factory by both the event handler and transaction filter (or any other component in the JVM using the same session factory) worked as expected. However, when the transaction filter was invoked before the even handler the above-mentioned initialization exception was thrown. Once the above exception was thrown, even an invocation of the Event handler failed to initialize the Hibernate session factory successfully making Hibernate framework unusable by any component in the JVM.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Resolution&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;1. Added the following in the JVM security policy file:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;java.policy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;grant codeBase "file: /opt/tomcat/shared/lib/cglib-2.1.3.jar" {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; permission java.security.AllPermission;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;};&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;2. Initialized the HibernateSessionFactory using Escenic Initial Context creator.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The following class actually initializes the HibernateSessionFactory:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; org.apache.log4j.Logger;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; org.hibernate.SessionFactory;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; org.hibernate.cfg.Configuration;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;import&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; com.myproject.framework.exception.SystemException;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; HibernateUtil {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; Logger &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;logger&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = Logger.&lt;i&gt;getLogger&lt;/i&gt;(HibernateUtil.&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SessionFactory &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;sessionFactory&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;logger&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.debug(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Building hibernate session factory"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;// Create the SessionFactory from &lt;u&gt;hibernate&lt;/u&gt;.&lt;u&gt;cfg&lt;/u&gt;.&lt;u&gt;xml&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;sessionFactory&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; Configuration().configure().buildSessionFactory();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;logger&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.debug(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Hibernate session factory built successfully"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (Throwable e) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throw&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SystemException(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Initial Hibernate SessionFactory creation failed"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;, e);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Returns&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;singleton&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;instance&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;of&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;SessionFactory&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;SessionFactory&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SessionFactory getSessionFactory() {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;sessionFactory&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;This class was invoked during the Escenic initial context creation to initialize the session factory by adding the following entry in Escenic &lt;span style="color: grey;"&gt;Initial.properties&lt;/span&gt; file as below&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;service.2.0.0-HibernateInit=/com/myproject/HibernateInitializer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;and defining a file called HibernateInitializer.properties in [ECE_localconfig]/com/myproject with the following entry:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 36pt;"&gt;&lt;span style="color: grey; font-size: 10pt;"&gt;$class=com.db.HibernateUtil&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Note: In non-escenic applications, if a similar problem is encountered, one can try using a start-up filter defined in the web-application deployment descriptor file (web.xml) instead. The idea is to basically initialize the singleton of the HibernateSessionFactory before invocation by the transaction filter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-3273480869742811319?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/3273480869742811319/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/10/hibernate-escenic-transaction-filter.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/3273480869742811319'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/3273480869742811319'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/10/hibernate-escenic-transaction-filter.html' title='Hibernate - Escenic Transaction Filter Integration | Error In Initialization'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-38394454397534128</id><published>2009-08-19T21:44:00.016+01:00</published><updated>2010-05-24T18:12:11.321+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='DBCP'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat tuning'/><category scheme='http://www.blogger.com/atom/ns#' term='JVM arguments'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><title type='text'>Tomcat 5 | Useful Configurations | Performance Tuning and Monitoring</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt; font-weight: bold;"&gt;JVM  Arguments&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" class="MsoNormalTable" style="border-collapse: collapse; margin-left: -1.15pt; width: 749px;"&gt;&lt;tbody&gt;&lt;tr height="51" style="height: 38.25pt;"&gt; &lt;td height="51" nowrap="nowrap" style="border: 1pt solid windowtext; height: 38.25pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[4]:  -Xmx2560m&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="51" style="border-color: windowtext windowtext windowtext -moz-use-text-color; border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 38.25pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="384"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Heap Size setting. Min and Max  should be set to the same value if you know that your application will mostly  operate on the max heap value.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[5]:  -Xms2560m&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="51" style="height: 38.25pt;"&gt; &lt;td height="51" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 38.25pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[13]:  -Dsun.rmi.dgc.server.gcInterval=3600000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="51" str="As there exists a bug in JDK 1.5, this is the recommended setting, http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6200091  " style="height: 38.25pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;As there exists a bug in JDK 1.5,  this is the recommended setting, &lt;a href="http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6200091"&gt;&lt;span class="Apple-style-span" style="background-color: white;"&gt;Sun Bug Database&lt;/span&gt;&lt;/a&gt;   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[14]:  -Dsun.rmi.dgc.client.gcInterval=3600000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: windowtext windowtext windowtext -moz-use-text-color; border-style: solid solid solid none; border-width: 1pt 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;This is used in combination to the  above.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[17]:  -Dsun.rmi.transport.connectionTimeout=20000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For network failure  tuning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[18]:  -Dsun.rmi.transport.tcp.handshakeTimeout=20000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For network failure  tuning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[19]:  -Dsun.rmi.transport.tcp.readTimeout=20000&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For network failure  tuning.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="34" style="height: 25.5pt;"&gt; &lt;td height="34" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 25.5pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;-XX:+DisableExplicitGC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="34" str="Do not use. Refer: http://forums.sun.com/thread.jspa?threadID=5369546&amp;amp;tstart=0 " style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 25.5pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Do not use. Refer: &lt;span class="Apple-style-span" style="background-color: white;"&gt;&lt;a href="http://forums.sun.com/thread.jspa?threadID=5369546&amp;amp;tstart=0"&gt;http://forums.sun.com/thread.jspa?threadID=5369546&amp;amp;tstart=0&lt;/a&gt;&lt;/span&gt;  &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[20]:  -verbose:gc&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For  debugging&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[21]:  -XX:+UseParNewGC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;a href="http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html"&gt;GC Algorithm&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[22]:  -XX:+PrintGCTimeStamps&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For  debugging&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr height="17" style="height: 12.75pt;"&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext; border-style: none solid solid; border-width: medium 1pt 1pt; height: 12.75pt; padding: 0cm 5.4pt; width: 266.4pt;" valign="bottom" width="355"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;argv[23]:  -XX:+PrintGCDetails&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt; &lt;td height="17" nowrap="nowrap" style="border-color: -moz-use-text-color windowtext windowtext -moz-use-text-color; border-style: none solid solid none; border-width: medium 1pt 1pt medium; height: 12.75pt; padding: 0cm 5.4pt; width: 295.6pt;" valign="bottom" width="394"&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;For  debugging&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="text-decoration: underline;"&gt;Tomcat  Settings&lt;span style="font-weight: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Connector  Settings&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;connector maxhttpheadersize="8192" port="8080"&gt;&lt;/connector&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;span style="font-family: 'Courier New'; font-size: xx-small;"&gt;&lt;span style="background-attachment: initial; background-clip: initial; background-color: silver; background-image: initial; background-origin: initial; font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;connector maxhttpheadersize="8192" port="8080"&gt;&lt;/connector&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;                maxThreads="300" minSpareThreads="25"  maxSpareThreads="77"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;                enableLookups="false" redirectPort="8443"  acceptCount="256"&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;                connectionTimeout="60000" disableUploadTimeout="true" /&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;i&gt;The maxThreads  and related settings we used were based on the corresponding settings on Apache considering default values Apache MPM Prefork are being used.&amp;nbsp;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;i&gt;-maxSpareThreads was set to 77 instead of the default value of 75 as tomcat is a bit slower than apache in spinning up threads.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;i&gt;-maxThreads value was increased from 150 to 300 - in-line with the maximum number of connections which Apache can receive (256 by default using &lt;/i&gt;&lt;a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients"&gt;&lt;i&gt;pre-fork MPM&lt;/i&gt;&lt;/a&gt;&lt;i&gt;).&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;i&gt;-acceptCount was increased from 100 to 256 – in-line with above.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt; font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Tip: Ensure that development mode is set  to false in TOMCAT/conf/web.xml [We have not tried this so far. Detailed  investigation is in the pipeline]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;   &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;JDBC Connection Pool Settings  (context.xml) &lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;&lt;resource auth="Container" driverclassname="oracle.jdbc.OracleDriver" name="****" type="javax.sql.DataSource" url="jdbc:oracle:thin:@(DESCRIPTION=(LOAD_BALANCE=OFF)(ADDRESS=(PROTOCOL=TCP)(HOST=*****)(PORT=*****))(ADDRESS=(PROTOCOL=TCP)(HOST=*****)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=*****)(PORT=*****))(CONNECT_DATA=(SERVICE_NAME=*****)))"&gt;&lt;span style="font-weight: bold;"&gt;connectionProperties="{ValidateConnection=true,ConnectionWaitTimeout=10}&lt;/span&gt;"  username="*****" password="*****" validationQuery="select 1 from dual" &lt;b&gt;&lt;span style="font-weight: bold;"&gt;testOnBorrow="true" poolPreparedStatements="true"  maxOpenPreparedStatements="10" initialSize="10" minIdle="10" maxActive="25"  maxIdle="20" maxWait="30000" removeAbandonedTimeout="60" removeAbandoned="true"  logAbandoned="true"&lt;/span&gt;&lt;/b&gt;/&amp;gt;&lt;/resource&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;i&gt;-maxWait value was changed from the default value of -1 (indefinite wait) to 300 seconds. This is to prevent exhaustion of threads due to a problems in the DB layer&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;i&gt;-Detailed DBCP Configurations:&amp;nbsp;&lt;a href="http://commons.apache.org/dbcp/configuration.html"&gt;http://commons.apache.org/dbcp/configuration.html&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;For Oracle 9i onwards you should use &lt;code&gt;oracle.jdbc.OracleDriver&lt;/code&gt; rather than &lt;code&gt;oracle.jdbc.driver.OracleDriver&lt;/code&gt;&amp;nbsp;as the driverClassName in the DataSource definiton as Oracle have  stated that &lt;code&gt;oracle.jdbc.driver.OracleDriver&lt;/code&gt; is deprecated and  support for this driver class will be discontinued in the next major release.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;It is sometimes desirable to place the JNDI resource definitions in the GlobalNamingResources Section rather than under Context elements to enable resources being shared across all contexts. If resources are defined under Contexts then they are duplicated for each context and thereby can exhaust the max connections a DB is configured to handle&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt; font-weight: bold;"&gt;Apache  Settings&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;mod_proxy_http was used instead of  mod_proxy_ajp as the connector between Tomcat and  Apache as it is more stable. This change sometimes requires ProxyPreserveHost setting to be turned ON to ensure correct configurations.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;ProxyPass                  http://localhost:8080/ &lt;b&gt;&lt;span style="font-weight: bold;"&gt;retry=0&lt;/span&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="background-color: silver; font-family: 'Courier New'; font-size: 9pt;"&gt;ProxyPassReverse           http://www.mysite.co.uk/&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 78%;"&gt;&lt;span style="font-family: 'Courier New'; font-size: 9pt;"&gt;   &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The &lt;i&gt;&lt;span style="font-style: italic;"&gt;retry=0&lt;/span&gt;&lt;/i&gt; settings was used to resolve an  issue on our production environment that caused intermittent 503 errors served by  Apache. (Refer: &lt;a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html" title="http://httpd.apache.org/docs/2.2/mod/mod_proxy.html"&gt;http://httpd.apache.org/docs/2.2/mod/mod_proxy.html&lt;/a&gt;  )&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-size: 13px;"&gt;If IPV4 is used in the environment, modify default httpd.conf settings to change the Listener port configurations as indicated below:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;0.0.0.0:80 rather than Listen 80&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 14px;"&gt;&lt;span style="font-family: Arial; font-size: 10pt; font-weight: bold;"&gt;Useful Tools For Tomcat/Apache Monitoring&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman';"&gt;&lt;b&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 14px;"&gt;&lt;span style="font-family: Arial; font-size: 10pt; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/developer/technicalArticles/J2SE/jconsole.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;JConsole&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.lambdaprobe.org/d/index.htm"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Lamda Probe&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#What%20is%20JMX%20Proxy%20Servlet"&gt;JMX Proxy Servlet&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://java.sun.com/j2se/1.5.0/docs/api/index.html?java/lang/management/package-summary.html"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Custom Code Using java.lang.management Package&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Example:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import java.lang.management.GarbageCollectorMXBean;&lt;br /&gt;import java.lang.management.ManagementFactory;&lt;br /&gt;import java.lang.management.MemoryPoolMXBean;&lt;br /&gt;import java.lang.management.MemoryUsage;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Servlet&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;that&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;provides&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;JVM&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #7f7f9f; font-family: 'Courier New'; font-size: 10pt;"&gt;-&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Memory&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;monitoring&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@copyright&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Anurag Kapur&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@version&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;1.0&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@author&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Anurag&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Kapur&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; JVMMonitor &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;extends&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; HttpServlet {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;final&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;long&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;serialVersionUID&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = 1L;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Invoked&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;on&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;servlet&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;initialization&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; init() &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; ServletException {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"monitoring.JVMMonitor Initilized"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Method&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;that&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;gets&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;invoked&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;on&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;servlet&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;invocation&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; doGet(HttpServletRequest request, HttpServletResponse response)&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; IOException, ServletException {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PrintWriter out = response.getWriter();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getHeapStatistics(out);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getGenerationStatistics(out);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getGCStatistics(out);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; getNonHeapStatistics(out);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.flush();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Invoked&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;when&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;servlet&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;is&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;removed&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;containers&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;context&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; destroy() {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"monitoring.JVMMonitor Destroyed"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Gathers&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Heap&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;statistics&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f3fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;{@link ManagementFactory}&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;prints&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;info&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;to&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;PrintWriter&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;object&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@param&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; getHeapStatistics(PrintWriter out) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryUsage heapUsage = ManagementFactory.&lt;i&gt;getMemoryMXBean&lt;/i&gt;()&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getHeapMemoryUsage();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Heap Memory Statistics (in bytes)"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Initialized Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + heapUsage.getInit());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Committed Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; + heapUsage.getCommitted());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Max Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + heapUsage.getMax());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Used Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + heapUsage.getUsed());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.flush();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Gathers&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Non&lt;/span&gt;&lt;span style="color: #7f7f9f; font-family: 'Courier New'; font-size: 10pt;"&gt;-&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Heap&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;statistics&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f3fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;{@link ManagementFactory}&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;prints&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;info&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;to&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;PrintWriter&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;object&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@param&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; getNonHeapStatistics(PrintWriter out) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MemoryUsage nonHeapUsage = ManagementFactory.&lt;i&gt;getMemoryMXBean&lt;/i&gt;()&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .getNonHeapMemoryUsage();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Non-Heap Memory Statistics (in bytes)"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Initialized Non-Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + nonHeapUsage.getInit());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Committed Non-Heap Memory :: "&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + nonHeapUsage.getCommitted());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Max Non-Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + nonHeapUsage.getMax());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Used Non-Heap Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + nonHeapUsage.getUsed());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.flush();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Gathers&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Heap&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;generation&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;statistics&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f3fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;{@link ManagementFactory}&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;prints&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;info&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;to&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;PrintWriter&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;object&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@param&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; getGenerationStatistics(PrintWriter out) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&lt;memorypoolmxbean&gt; memoryPool = ManagementFactory&lt;/memorypoolmxbean&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;i&gt;getMemoryPoolMXBeans&lt;/i&gt;();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Heap Partitions (Generations) Statistics (in bytes)"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (MemoryPoolMXBean memory : memoryPool) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Partition Name :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + memory.getName());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(memory.getName() + &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;" Max Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + memory.getUsage().getMax());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(memory.getName() + &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;" Used Memory :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + memory.getUsage().getUsed());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.flush();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/**&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;Gathers&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;GC&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;statistics&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;from&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f3fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;{@link ManagementFactory}&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;and&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;prints&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;info&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;to&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;the&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;PrintWriter&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;object&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f9fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;@param&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;out&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; getGCStatistics(PrintWriter out) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; List&lt;garbagecollectormxbean&gt; collectorBeans = ManagementFactory&lt;/garbagecollectormxbean&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;i&gt;getGarbageCollectorMXBeans&lt;/i&gt;();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Garbage Collection Statistics (times are in milliseconds)"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (GarbageCollectorMXBean collector : collectorBeans) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;long&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; count = collector.getCollectionCount();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;long&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; time = collector.getCollectionTime();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String name = collector.getName();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(name + &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;" Collection Count :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + count);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(name + &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;" Collection Time :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + time);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(count != 0)&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(name + &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;" Collection Pause Time :: "&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + time/count);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.println(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; out.flush();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="mso-layout-grid-align: none; text-autospace: none;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family: Arial; font-size: 100%;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-38394454397534128?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/38394454397534128/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/08/useful-server-configurations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/38394454397534128'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/38394454397534128'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/08/useful-server-configurations.html' title='Tomcat 5 | Useful Configurations | Performance Tuning and Monitoring'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-2500052230881828198</id><published>2009-07-19T21:27:00.000+01:00</published><updated>2010-02-09T21:08:51.929Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Tomcat Class Loader'/><category scheme='http://www.blogger.com/atom/ns#' term='Content Studio'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><title type='text'>Escenic Content Studio Hang Issue - Version 4.3.3</title><content type='html'>&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: navy; font-family: Arial; font-size: 13px; font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Problem  Statement: ECS Hang&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;We have a JNLP Based Java Client  Application(Escenic Content  Studio) which communicates with a Tomcat Servlet Conatiner using RMI. Software stack with versions used is as below:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;JVM Version:          1.5.0_14-b03&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;Server version:       Apache Tomcat/5.5.27&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;OS/uname:             SunOS uat5cma52e 5.10 Generic_125101-06 i86pc i386  i86pc&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt;The server application is a web  content management system (produced by a company called Escenic) and uses LDAP  for its authentication, and Oracle/Apache DBCP for its database connectivity, it  also uses RMI to communicate with other nodes for sending events  etc.&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;The problem we are seeing is that  after an amount of time(ranging  between 20 minutes to 40 hours), the server application appears to  hang for the clients connected via RMI, tomcat continues to serve content via  HTTP, but after a while (depending on the number of requests) the HTTP threads  begin to block, an example of a hung client connection thread is (The RMI connections have been observed to  hang at exactly the same point each time the issue has been reproduced). Once  hung the threads remain in hung state for as long as 24 hours and don’t  recover:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;"RMI TCP  Connection(1642)-143.252.80.100" daemon prio=10 tid=0x09a972b0 nid=0x872 waiting  on condition [0x60916000..0x60917ab8]&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.auth.JNDIPolicy14.getPermissions(JNDIPolicy14.java:46)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.Policy.implies(Policy.java:400)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.ProtectionDomain.implies(ProtectionDomain.java:195)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.checkPermission(AccessController.java:427)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.api.IOObjectLoader.getArticle(IOObjectLoader.java:306)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.api.IOObjectLoader.getObject(IOObjectLoader.java:40)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOLockManagerImpl.lockTransaction(RIOLockManagerImpl.java:57)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOLockManagerImpl.lockField(RIOLockManagerImpl.java:133)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOAdapterImpl.lock(RIOAdapterImpl.java:400)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOSessionImpl$3.run(RIOSessionImpl.java:1006)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.doPrivileged(Native  Method)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  javax.security.auth.Subject.doAsPrivileged(Subject.java:517)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOSessionImpl.lock(RIOSessionImpl.java:1003)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.reflect.GeneratedMethodAccessor384.invoke(Unknown  Source)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.lang.reflect.Method.invoke(Method.java:585)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.Transport$1.run(Transport.java:153)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.doPrivileged(Native  Method)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.Transport.serviceCall(Transport.java:149)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.lang.Thread.run(Thread.java:595)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;The line of code where this is  hanging is performing an instanceof operation:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;     for (int  i=0; i &amp;lt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       Principal  tmp = pd.getPrincipals()[i];&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;b&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt; font-weight: bold;"&gt;        if (tmp instanceof ECEPrincipal) {&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;span lang="EN-GB" style="font-weight: bold;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;          principal = (ECEPrincipal) tmp;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;          break;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;        }&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;      }&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;The class which is  “waiting on  condition” has the following inheritance  hierarchy:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;java.security.Policy&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;↓&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;neo.xredsys.auth.JNDIPolicy&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;↓&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;neo.xredsys.auth.JNDIPolicy14&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;The class which is having the  instanceof operation performed on it has the following class  hierarchy:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;java.security.Principal&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-left: 0.5in; text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;↓&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="text-indent: 0.5in;"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;neo.xredsys.auth.ECEPrincipal&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;We have an example of the truss  output, which shows that the light weight processes are waiting on a  condition:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;25743/6:       lwp_cond_wait(0x08311BA8, 0x08311B90, 0xFAF9BC98, 0) Err#62  ETIME&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;25743/6:              condvar type: USYNC_THREAD&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;25743/6:              mutex type: USYNC_THREAD&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;25743/6:              timeout: 0.010999273 sec&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;We want to know is “what” the java  threads/lwp’s are waiting for, and how to trace through the system; and what  exactly is happening when java performs an “instanceof” operation - we believe  that it is somehow related to LDAP, as we have had some success in relieving the  problem by setting the following 2 properties:&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;com.sun.jndi.ldap.connect.timeout=5000&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;com.sun.jndi.ldap.read.timeout=1000&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 100%;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; text-decoration: underline;"&gt;&lt;span class="Apple-style-span" style="color: navy; font-weight: bold;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Issue Resolution: ECS Hang&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;The following exception was being  masked in the ECS grey screen and was not visible until we applied the (Grey Screen of Death) GSOD  patch:&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;&lt;u1:p&gt; &lt;span class="Apple-style-span" style="color: grey; font-family: 'Courier New'; font-size: 11px;"&gt;Caused by:  java.lang.LinkageError:  neo/xredsys/auth/ECEPrincipal&lt;/span&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  &lt;b&gt;&lt;span style="font-weight: bold;"&gt;neo.xredsys.auth.JNDIPolicy14.getPermissions(JNDIPolicy14.java:46)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.Policy.implies(Policy.java:400)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.ProtectionDomain.implies(ProtectionDomain.java:195)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.checkPermission(AccessController.java:427)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.api.IOObjectLoader.getCatalog(IOObjectLoader.java:1059)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;[Stacktrace  Truncated]&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;The error can be simulated ‘at will  now’ by accessing the web application named ‘audit’. Since this web application  has &lt;b&gt;&lt;span style="font-weight: bold;"&gt;escenic-io.jar&lt;/span&gt;&lt;/b&gt; and &lt;b&gt;&lt;span style="font-weight: bold;"&gt;escenic-common.jar&lt;/span&gt;&lt;/b&gt; inside its WEB-INF/lib  folder, it loads a new instance of &lt;b&gt;&lt;span style="font-weight: bold;"&gt;class  neo.nursery.GlobalBus&lt;/span&gt;&lt;/b&gt; on access.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;Ideally, there should be only on  instance of class &lt;b&gt;&lt;span style="font-weight: bold;"&gt;neo.nursery.GlobalBus&lt;/span&gt;&lt;/b&gt; in a JVM. The  spinning up of a second instance causes a &lt;b&gt;&lt;span style="font-weight: bold;"&gt;java.lang.LinkageError&lt;/span&gt;&lt;/b&gt; for the class  &lt;b&gt;&lt;span style="font-weight: bold;"&gt;neo.xredsys.auth.ECEPrincipal&lt;/span&gt;&lt;/b&gt; when  an instanceof operation is invoked by &lt;b&gt;&lt;span style="font-weight: bold;"&gt;JNDIPolicy14.getPermissions()&lt;/span&gt;&lt;/b&gt;(Line number  46). The exact same line of code on which we see the RMI TCP Connections hung in  the thread dumps throws the Linkage error.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="color: grey; font-family: 'Courier New'; font-size: 11px;"&gt;"RMI TCP  Connection(1642)-143.252.80.100" daemon prio=10 tid=0x09a972b0 nid=0x872 waiting  on condition [0x60916000..0x60917ab8]&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  &lt;b&gt;&lt;span style="font-weight: bold;"&gt;neo.xredsys.auth.JNDIPolicy14.getPermissions(JNDIPolicy14.java:46)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.Policy.implies(Policy.java:400)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.ProtectionDomain.implies(ProtectionDomain.java:195)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessControlContext.checkPermission(AccessControlContext.java:249)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.checkPermission(AccessController.java:427)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.api.IOObjectLoader.getArticle(IOObjectLoader.java:306)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.api.IOObjectLoader.getObject(IOObjectLoader.java:40)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOLockManagerImpl.lockTransaction(RIOLockManagerImpl.java:57)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOLockManagerImpl.lockField(RIOLockManagerImpl.java:133)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOAdapterImpl.lock(RIOAdapterImpl.java:400)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOSessionImpl$3.run(RIOSessionImpl.java:1006)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.doPrivileged(Native  Method)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  javax.security.auth.Subject.doAsPrivileged(Subject.java:517)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  neo.xredsys.rio.RIOSessionImpl.lock(RIOSessionImpl.java:1003)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.reflect.GeneratedMethodAccessor384.invoke(Unknown  Source)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.lang.reflect.Method.invoke(Method.java:585)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.Transport$1.run(Transport.java:153)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.security.AccessController.doPrivileged(Native  Method)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.Transport.serviceCall(Transport.java:149)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Courier New; font-size: 78%;"&gt;&lt;span lang="EN-GB" style="color: grey; font-family: 'Courier New'; font-size: 8pt;"&gt;       at  java.lang.Thread.run(Thread.java:595)&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;The above has been confirmed by  reading JVM heap dumps before and after invoking audit web application in the  Tomcat container. There are two instances of &lt;b&gt;&lt;span style="font-weight: bold;"&gt;neo.nursery.GlobalBus &lt;/span&gt;&lt;/b&gt;after accessing the  audit web application (which should not be there) as opposed to one instance  until audit web application is not accessed.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="text-decoration: underline;"&gt;Why is this not seen in  Websphere (WAS 6.0.2)?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: Arial; font-size: 13px;"&gt;Websphere has a different class  loading mechanism than Tomcat. In Websphere, a web application always delegates  the loading of a class to the Parent class loader first. On the other hand, In  Tomcat, a web application tries to load a class from the WebApp class loader  before delegating the request to the Parent classloader. Thus, in Websphere,  presence of the jar files in audit web application has no  impact.&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;Open  Questions&lt;/span&gt;&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;&lt;ol style="margin-top: 0in;" type="1"&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;Why do we  not see any logs corresponding to the LinkageError in the server logs? We could  not see this error until we applied the GSOD  patch.&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;/li&gt;&lt;li class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 85%;"&gt;&lt;span lang="EN-GB" style="font-family: Arial; font-size: 10pt;"&gt;Why does a  class loaded by a web application class loader (audit web application in our  case) effect other web applications deployed on the Tomcat container? Is this a  Tomcat class loader ‘leak’ bug?&lt;u1:p&gt;&lt;/u1:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-2500052230881828198?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/2500052230881828198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/08/escenic-content-studio-hang-issue.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/2500052230881828198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/2500052230881828198'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/08/escenic-content-studio-hang-issue.html' title='Escenic Content Studio Hang Issue - Version 4.3.3'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-4048000634108468748</id><published>2009-06-24T16:17:00.004+01:00</published><updated>2009-10-07T17:58:42.263+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Loadtesting'/><category scheme='http://www.blogger.com/atom/ns#' term='Grinder'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Grinder Installation'/><category scheme='http://www.blogger.com/atom/ns#' term='Grinder Setup'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><title type='text'>Grinder Installation and Setup</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;What is Grinder?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;The Grinder is a Java&lt;/span&gt;&lt;sup style="font-family: times new roman;"&gt;TM&lt;/sup&gt;&lt;span style="font-family:times new roman;"&gt; load testing framework that makes it     easy to run a distributed test using many load injector machines. It     is freely available under a BSD-style open-source &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://grinder.sourceforge.net/license.html"&gt;license&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Refer: &lt;/span&gt;&lt;a style="font-family: times new roman;" href="http://grinder.sourceforge.net/index.html"&gt;http://grinder.sourceforge.net/index.html&lt;/a&gt;&lt;span style="font-family:times new roman;"&gt; for more details&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:times new roman;" &gt;Installation and Setup&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-style: italic;font-family:times new roman;font-size:85%;"  &gt;[This example assumes that you are installing grinder in the directory /u01/grinder/grinder-3.2&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:times new roman;font-size:85%;"  &gt;&lt;span style="font-style: italic;"&gt; referred to as GRINDER_HOME on a Solaris environment]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;1. Download Grinder version 3.2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;     wget http://kent.dl.sourceforge.net/sourceforge/grinder/grinder-3.2.zip&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;2. Unzip grinder-3.2.zip to GRINDER_HOME, where GRINDER_HOME in this example referes t&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;     /u01/grinder/grinder-3.2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;3. Create additional utility directories as follows:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;    mkdir /u01/grinder/grinder-3.2/bin&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;   mkdir /u01/grinder/grinder-3.2/grinder-agent &lt;span style="color: rgb(0, 0, 153);"&gt;[This basically houses the default load test script called grinder.py and grinder.properties, the configuration file the defines properties required by the Grinder engine]&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;   mkdir /u01/grinder/grinder-3.2/scripts&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:times new roman;font-size:85%;"  &gt;[Custom load testing scripts can be kept here]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;    mkdir /u01/app/grinder/grinder-3.2/cachedir&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:times new roman;font-size:85%;"  &gt;[Reference from grinder.properties]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;    mkdir &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;/u01/grinder/grinder-3.2/logs&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:times new roman;font-size:85%;"  &gt;[Reference from grinder.properties]&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;4. Create the following files in /u01/grinder/grinder-3.2/bin&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:times new roman;"&gt;&lt;li&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;setGrinderEnv.sh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;              #!/usr/bin/ksh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             GRINDERPATH=/u01/grinder/grinder-3.2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             GRINDERPROPERTIES=/u01/grinder/grinder-3.2/grinder-agent/grinder.properties&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             CLASSPATH=$GRINDERPATH/lib/grinder.jar:$GRINDERPATH/lib/jython.jar:$CLASSPATH&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             JAVA_HOME=/usr/jdk/jdk1.5.0_14&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             PATH=$JAVA_HOME/bin:$PATH&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             export CLASSPATH PATH GRINDERPROPERTIES&lt;/span&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:times new roman;"&gt;&lt;li&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;startConsole.sh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;             #!/usr/bin/ksh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;            #. (path to setGrinderEnv.sh)/setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;            . ./setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;            java -cp $CLASSPATH net.grinder.Console &amp;amp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:times new roman;"&gt;&lt;li&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;startAgent.sh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;            #!/usr/bin/ksh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           #. (path to setGrinderEnv.sh)/setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           . ./setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           java -cp $CLASSPATH net.grinder.Grinder $GRINDERPROPERTIES&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul  style="text-align: justify;font-family:times new roman;"&gt;&lt;li&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;startProxy.sh&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           #!/usr/bin/ksh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;          #. (path to setGrinderEnv.sh)/setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           . ./setGrinderEnv.sh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;           java -cp $CLASSPATH net.grinder.TCPProxy -console -http &gt; grinder.py&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;5. Create grinder.properties in /u01/grinder/grinder-3.2/grinder-agent as follows&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Properties understood by the Grinder Engine&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The number of worker processes the agent should start.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Example: grinder.processes=1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.processes=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The number of worker threads that each worker process spawns.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Example:grinder.threads=1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.threads=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The number of runs of the test script each thread performs.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# 0 means "run forever", and should be used when you are using the console to control&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# your test runs.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Example: grinder.runs=0&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.runs=0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# If set, the agent will ramp up the number of worker processes, starting the number&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# specified every grinder.processesIncrementInterval milliseconds. The upper limit is&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# set by grinder.processes. Do not set this property id you want to start all worker&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# processes together.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Example: grinder.processIncrement=1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.processIncrement=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Used in conjunction with grinder.processIncrement, this property sets the interval in&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# milliseconds at which the agent starts new worker processes.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.processIncrementInterval&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.processIncrementInterval=60000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Used in conjunction with grinder.processIncrement, this property sets the initial&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# number of worker processes to start.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.initialProcesses=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The maximum length of time in milliseconds that each worker process should run for.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# grinder.duration can be specified in conjunction with grinder.runs, in which case the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# worker processes will terminate if either the duration time or the number of runs is&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# exceeded.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Don't define this property to make grinder run forever. A manul break can be used in&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# this case (via Grinder console) to terminate the run&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.duration=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The file name of the Jython script to run&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# This is not mandatory to specify. If not specified the script to run can be chosed via&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# the grinder console.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.script=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Use an alternate JVM for worker processes. Defaults to java so you do not need to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# specify this if your PATH is sensible.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.jvm=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Use to adjust the classpath used for the worker process JVMs. Anything specified&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# here will be prepended to the classpath used to start the Grinder processes.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.jvm.classpath=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Additional arguments to worker process JVMs.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The following JVM argument is set due to a bug in the version of Jython being used.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# This error causes error during startup as below:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# *sys-package-mgr*: can't create package cache dir,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# '/u01/grinder/grinder-3.2/lib/jython.jar/cachedir/packages'&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.jvm.arguments=-Dpython.cachedir=/u01/app/grinder/grinder-3.2/cachedir&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Directory to write log files to. Created if it doesn't already exist.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.logDirectory=/u01/grinder/grinder-3.2/logs&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The number of archived logs from previous runs that should be kept.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.numberOfOldLogs=100&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Override the "host" string used in log filenames and logs.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.hostID=localhost&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The IP address or host name that the agent and worker processes use to contact the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# console. [All the network interfaces of the local machine.]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.consoleHost=127.0.0.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The IP port that the agent and worker processes use to contact the console.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.consolePort=6372&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Set to false to set the agent and worker processes not to use the console.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.useConsole=true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The period (in ms) at which each process sends updates to the console. This also&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# controls the frequency at which the data files are flushed.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.reportToConsole.interval=500&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The maximum time in milliseconds that each thread waits before starting. Unlike the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# sleep times specified in scripts, this is varied according to a flat random&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# distribution. The actual sleep time will be a random value between 0 and the specified&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# value. Affected by grinder.sleepTimeFactor, but not grinder.sleepTimeVariation.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.initialSleepTime=0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Apply a factor to all the sleep times you've specified, either through a property&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# of in a script. Setting this to 0.1 would run the script ten times as fast.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.sleepTimeFactor=1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The Grinder varies the sleep times specified in scripts according to a Normal&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# distribution. This property specifies a fractional range within which nearly&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# all (99.75%) of the times will lie. E.g., if the sleep time is specified as 1000 and&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# the sleepTimeVariation is set to 0.1, then 99.75% of the actual sleep times will be&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# between 900 and 1100 milliseconds.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.sleepTimeVariation=0.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Set to false to disable the logging of output and error steams for worker processes.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# You might want to use this to reduce the overhead of running a client thread.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.logProcessStreams=true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Set to false to disable reporting of timing information to the console; other&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# statistics are still reported.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.reportTimesToConsole=true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# If set to true, the agent process spawns engines in threads rather than processes,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# using special class loaders to isolate the engines. This allows the engine to be&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# easily run in a debugger. This is primarily a tool for debugging The Grinder engine,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# but it might also be useful to advanced users. GrinderStone uses this property to allow&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# interactive debugging.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.debug.singleprocess=false&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# For advanced use only. Specifies a comma separated list of names of classes that&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# should be shared between the worker engines when grinder.debug.singleprocess is true.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Class names can end with a * wildcard. See bug 2314157 for more details.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#grinder.debug.singleprocess.sharedclasses=&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# If set to true, System.nanoTime() is used for measuring time instead of&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# System.currentTimeMills(). The Grinder will still report times in milliseconds.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# The precision of these methods depends on the JVM implementation and the operating&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# system. Setting to true requires J2SE 5 or later.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#########################################################################################&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;grinder.useNanoTime=false&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;Note:- The key: &lt;/span&gt;&lt;span style=";font-family:times new roman;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 0, 0);"&gt;grinder.jvm.arguments=-Dpython.cachedir=/u01/app/grinder/grinder-3.2/cachedir&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt; is specified in grinder.properties to take care of errors in the version of Jython being used by default with Grinder.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;If the above mentioned JVM argument is not supplied you might get the following error:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;[*sys-package-mgr*: can't create package cache dir, '/u01/grinder/grinder-3.2/lib/jython.jar/cachedir/packages']&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:times new roman;font-size:85%;"  &gt;&lt;span style="font-style: italic;"&gt;Refer: http://grinder.sourceforge.net/g3/scripts.html for details.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;5. Create a minimal test script named &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;" &gt;grinder.py&lt;/span&gt;&lt;span style="font-family:times new roman;"&gt; in the directory  &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;" &gt;/u01/grinder/grinder-3.2/grinder-agent &lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;to ensure that the grinder agent starts sucessfully before any scripts have been distributed from the console machine. (This step is mandatory in most cases)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;####################################&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;############&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# A minimal script that ensures the agent will start before any&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# scripts have been distributed from the console machine.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;#&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# This script shows the recommended style for scripts, with a&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# TestRunner class. The script is executed just once by each worker&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# process and defines the TestRunner class. The Grinder creates an&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# instance of TestRunner for each worker thread, and repeatedly calls&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# the instance for each run of that thread.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;from net.grinder.script.Grinder import grinder&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;from net.grinder.script import Test&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# A shorter alias for the grinder.logger.output() method.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;log = grinder.logger.output&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Create a Test with a test number and a description. The test will be&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# automatically registered with The Grinder console if you are using&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# it.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;test1 = Test(1, "Log method")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Wrap the log() method with our Test and call the result logWrapper.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# Calls to logWrapper() will be recorded and forwarded on to the real&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# log() method.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;logWrapper = test1.wrap(log)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# A TestRunner instance is created for each thread. It can be used to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# store thread-specific data.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;class TestRunner:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;   # This method is called for every run.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;   def __call__(self):&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;       logWrapper("Hello World")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:times new roman;"&gt;You may want to comment out the line &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;logWrapper("Hello World") &lt;/span&gt;&lt;span style="font-family:times new roman;"&gt;above to prevernt the grinder logs from being unnecessarily filled up.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;font-family:times new roman;font-size:85%;"  &gt;NOTE&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:times new roman;font-size:85%;"  &gt;Target host must allow X11 forwarding -so that grinder console can run. Although you can ignore this if you do not plan to use grinder console.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:times new roman;font-size:85%;"  &gt;To enable X11 forwarding on a solaris environment:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;vi /etc/ssh/sshd_config&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# make sure the following properties are set:&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;AllowTcpForwarding yes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;# X11 tunneling options&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;X11Forwarding yes&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;X11DisplayOffset 10&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;X11UseLocalhost no # this is required because of the IPV6 Solaris problem&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;svcadm disable /network/ssh&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-family:times new roman;font-size:85%;"  &gt;svcadm enable /network/ssh&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-4048000634108468748?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/4048000634108468748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/what-is-grinder-grinder-is-java-tm-load.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/4048000634108468748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/4048000634108468748'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/what-is-grinder-grinder-is-java-tm-load.html' title='Grinder Installation and Setup'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-7685798177344306226</id><published>2009-06-23T11:10:00.010+01:00</published><updated>2009-10-07T17:59:15.957+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Database Issue'/><category scheme='http://www.blogger.com/atom/ns#' term='CTX_DDL'/><category scheme='http://www.blogger.com/atom/ns#' term='Full Text Search'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><title type='text'>Setting-up Full Text Search on the Escenic Schema</title><content type='html'>&lt;div  style="text-align: justify;font-family:times new roman;"&gt;&lt;span style="font-size:100%;"&gt;A set of scripts provided by Escenic are used to setup full text search on the Escenic Schema. These scripts are required to enable text search via Escenic Content Studio (ECS)&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Common problems faced while setting up and executing the Escenic provided scripts are described below.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Problem 1&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Executing the following script to setup required indexing jobs&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;alter session set nls_language=american;&lt;br /&gt;VARIABLE jobno number;&lt;br /&gt;exec DBMS_JOB.SUBMIT(:jobno,'STO_ECE_SI1.ctx_ddl.sync_index(''STO_ECE_SI1.XML_INDEX'');',SYSDATE, 'SYSDATE + 1/1440');&lt;br /&gt;exec DBMS_JOB.SUBMIT(:jobno,'STO_ECE_SI1.ctx_ddl.sync_index(''STO_ECE_SI1.XMLENTITY_CONTENT'');',SYSDATE, 'SYSDATE + 1/1440');&lt;br /&gt;exec DBMS_JOB.SUBMIT(:jobno,'CTX_DDL.OPTIMIZE_INDEX(''STO_ECE_SI1.XML_INDEX'',CTX_DDL.OPTLEVEL_FAST);',SYSDATE, 'trunc(sysdate+1)+2/24');&lt;br /&gt;exec DBMS_JOB.SUBMIT(:jobno,'CTX_DDL.OPTIMIZE_INDEX(''STO_ECE_SI1.XMLENTITY_CONTENT'',CTX_DDL.OPTLEVEL_FAST);',SYSDATE, 'trunc(sysdate+1)+2/24');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Results in the following error&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;Error starting at line 3 in command:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;exec DBMS_JOB.SUBMIT(:jobno,'STO_ECE_SI1.ctx_ddl.sync_index(''STO_ECE_SI1.XML_INDEX'');',SYSDATE, 'SYSDATE + 1/1440');&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;Error report:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;ORA-06550: line 1, column 93:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;PLS-00201: identifier 'STO_ECE_SI1.CTX_DDL' must be declared&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;ORA-06550: line 1, column 93:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;PL/SQL: Statement ignored&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;ORA-06512: at "SYS.DBMS_JOB", line 79&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;ORA-06512: at "SYS.DBMS_JOB", line 136&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;ORA-06512: at line 1&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;06550. 00000 -  "line %s, column %s:\n%s"&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;*Cause:    Usually a PL/SQL compilation error.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;*Action:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;u&gt;Explanation&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The scripts(provided by Escenic) specify [Escenic_Schema_User]&lt;schema_user_name&gt;&lt;schema_user_name&gt;.ctx_ddl&lt;/schema_user_name&gt;&lt;/schema_user_name&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; which does not exists.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;u&gt;Resolution&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Simply remove the &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;schema_user_name&gt;&lt;/schema_user_name&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;schema_user_name&gt; &lt;/schema_user_name&gt;&lt;/span&gt;[Escenic_Schema_User]&lt;schema_user_name&gt; &lt;/schema_user_name&gt;&lt;span style="font-size:100%;"&gt;&lt;schema_user_name&gt;prefix and run the scripts to setup indexing jobs.&lt;/schema_user_name&gt;&lt;/span&gt; Verification that the jobs are setup correctly can be done by executing the following scripts:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;select job, what from user_jobs;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:78%;"&gt;          Sample Output&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;         Job What&lt;br /&gt;13  CTX_DDL.OPTIMIZE_INDEX('XML_INDEX',CTX_DDL.OPTLEVEL_FAST);&lt;br /&gt;14  CTX_DDL.OPTIMIZE_INDEX('XMLENTITY_CONTENT', CTX_DDL.OPTLEVEL_FAST);&lt;br /&gt;21  ctxsys.ctx_ddl.sync_index('XMLENTITY_CONTENT');&lt;br /&gt;22 ctxsys.ctx_ddl.sync_index('XML_INDEX');&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;select job, last_sec, last_date, next_sec, next_date,failures, broken from user_jobs;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:78%;"&gt;          Sample Output&lt;br /&gt;&lt;/span&gt; &lt;span style="color: rgb(102, 102, 102);font-size:78%;" &gt;         Job LAST_SEC LAST_DATE NEXT_SEC NEXT_DATE FAILURES BROKEN&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:78%;" &gt;        13    02:00:00    23-JUN-09    02:00:00    24-JUN-09    0    N&lt;br /&gt;14    02:00:01    23-JUN-09    02:00:00    24-JUN-09    0    N&lt;br /&gt;21    10:03:04    23-JUN-09    13:03:00    23-JUN-09    0    N&lt;br /&gt;22    10:00:04    23-JUN-09    13:00:00    23-JUN-09    0    N&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Problem 2&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Executing the following script&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;alter session set nls_language=american;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;ctx_ddl.create_section_group('sto_ece_si1.IO_ARTICLE','AUTO_SECTION_GROUP');&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;END;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;/&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;&lt;u&gt;Results in the following error&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;alter session set succeeded.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;Error starting at line 2 in command:&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;ctx_ddl.create_section_group('sto_ece_si1.IO_ARTICLE','AUTO_SECTION_GROUP');&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;END;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;Error report:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;ORA-06550: line 2, column 1:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;PLS-00201: identifier 'CTX_DDL' must be declared&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;ORA-06550: line 2, column 1:&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;PL/SQL: Statement ignored&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;06550. 00000 -  "line %s, column %s:\n%s"&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;*Cause:    Usually a PL/SQL compilation error.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);font-size:85%;" &gt;&lt;span style="font-size:78%;"&gt;*Action:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;u&gt;Explanation&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The CTXSYS user needs to grant the CTXAPP role to the user running the script. A DBA can do this and this is normally done while installaing the DB.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span&gt;&lt;u&gt;Resolution&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;This was reported to the DBA and after he resolved the permission issues, the script ran successfully.&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-7685798177344306226?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/7685798177344306226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/setting-up-full-texr-search-on-escenic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7685798177344306226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7685798177344306226'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/setting-up-full-texr-search-on-escenic.html' title='Setting-up Full Text Search on the Escenic Schema'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-7419667927897980730</id><published>2009-06-09T15:03:00.008+01:00</published><updated>2010-03-08T01:57:18.335Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Escenic'/><category scheme='http://www.blogger.com/atom/ns#' term='Database Issue'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='ORA-29861'/><title type='text'>Escenic Content Studio - 4.3.5</title><content type='html'>&lt;span style="font-family: 'times new roman'; font-size: 100%;"&gt;&lt;u&gt;Issue in saving images in ECS version 4.3.5&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%; font-weight: bold;"&gt;&lt;u&gt;Problem Statement&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Attempt to save an image throws the following exception in both the server logs and the ECS error log pop-up&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #666666; font-family: 'times new roman'; font-size: 78%;"&gt;2009-06-09 14:02:59,503 ERROR [RMI TCP Connection(12)-10.194.138.185]  (neo.dbaccess.GenericDataConnector) Error in database operation. Invalidating resource: null java.lang.reflect.UndeclaredThrowableException         at $Proxy1.executeUpdate(Unknown Source)         at neo.dbaccess.OracleUtil.insertEmptyClob(OracleUtil.java:20)         at neo.xredsys.content.entity.EntityManager$InsertXMLEntityAction.execute(EntityManager.java:709)         at neo.xredsys.content.entity.EntityManager.insertXMLEntity(EntityManager.java:748)         at neo.xredsys.content.entity.EntityManager$InsertEntityAction.execute(EntityManager.java:1094)         at neo.xredsys.content.entity.EntityManager.insertReferenceEntity(EntityManager.java:1137)         at neo.xredsys.content.multimedia.MultimediaManager$InsertMultimediaObjectAction.execute(MultimediaManager.java:372)         at neo.xredsys.content.ContentManager$TransactionOperationWrapper.execute(ContentManager.java:145)         at neo.dbaccess.GenericDataConnector.doTransaction(GenericDataConnector.java:139)         at neo.xredsys.content.ContentManager.doDatabaseAction(ContentManager.java:169)         at neo.xredsys.content.ContentManager.doTransaction(ContentManager.java:194)         at neo.xredsys.content.multimedia.MultimediaManager.insertMultimediaObject(MultimediaManager.java:471)         at neo.xredsys.api.IOObjectUpdater.createImage(IOObjectUpdater.java:2853)         at neo.xredsys.api.IOObjectUpdater.createMultimedia(IOObjectUpdater.java:2580)         at neo.xredsys.api.IOObjectUpdater.createMultimedia(IOObjectUpdater.java:2555)         at neo.xredsys.api.ImageTransactionImpl.create(ImageTransactionImpl.java:161)         at neo.xredsys.rio.RIOAdapterImpl.create(RIOAdapterImpl.java:901)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)         at java.lang.reflect.Method.invoke(Method.java:585)         at neo.xredsys.rio.RIOSessionImpl$1.invoke(RIOSessionImpl.java:80)         at $Proxy2.create(Unknown Source)         at neo.xredsys.rio.RIOSessionImpl$9.run(RIOSessionImpl.java:1385)         at java.security.AccessController.doPrivileged(Native Method)         at javax.security.auth.Subject.doAsPrivileged(Subject.java:517)         at neo.xredsys.rio.RIOSessionImpl.create(RIOSessionImpl.java:1382)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)         at java.lang.reflect.Method.invoke(Method.java:585)         at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)         at sun.rmi.transport.Transport$1.run(Transport.java:153)         at java.security.AccessController.doPrivileged(Native Method)         at sun.rmi.transport.Transport.serviceCall(Transport.java:149)         at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)         at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)         at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.reflect.InvocationTargetException         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)         at java.lang.reflect.Method.invoke(Method.java:585)         at neo.dbaccess.DebugPreparedStatement.invoke(DebugPreparedStatement.java:35)         ... 38 more Caused by: java.sql.SQLException: &lt;span style="font-weight: bold;"&gt;ORA-29861: domain index is marked LOADING/FAILED/UNUSABLE&lt;/span&gt;          at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)         at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)         at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)         at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:216)         at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:955)         at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)         at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3316)         at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3400)         at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:102)         ... 43 more&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 85%;"&gt;&lt;span style="font-size: 78%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%; font-weight: bold;"&gt;&lt;u&gt;Resolution&lt;br /&gt;&lt;br /&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%;"&gt;The issue was caused because one of the domain indices was not created successfully while setting up the Escenic schema. Domain indices are created as part of settinup up Full text searcgh on the Escenic schema.&lt;br /&gt;&lt;br /&gt;The following domain indices are created as part of enabling full text search:&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: times new roman;"&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;XMLENTITY_CONTENT&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: 100%;"&gt;XML_INDEX&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: 'times new roman'; font-size: 100%;"&gt;The issue was resolved by simply dropping the 2 domain indices and recreating them. Following scripts were executed to achieve this:&lt;br /&gt;&lt;br /&gt;--Dropping indexes&lt;br /&gt;&lt;span style="color: #666666; font-size: 85%;"&gt;drop index XML_INDEX force;&lt;br /&gt;drop index XMLENTITY_CONTENT force;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;--Recreating indexes&lt;br /&gt;&lt;span style="color: #666666; font-size: 85%;"&gt;alter session set nls_language=american;&lt;br /&gt;create index AK_ECE_BLD1.XML_INDEX on AK_ECE_BLD1.XMLArticle(content) indextype is ctxsys.context parameters('SECTION GROUP AK_ECE_BLD1.IO_ARTICLE storage AK_ECE_BLD1.ECE_STORAGE1M lexer AK_ECE_BLD1.ece_text_lexer stoplist AK_ECE_BLD1.ECE_STOP MEMORY 12M');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: #666666; font-size: 85%;"&gt;alter session set nls_language=american;&lt;br /&gt;create index AK_ECE_BLD1.XMLENTITY_CONTENT on AK_ECE_BLD1.XMLEntity(content) indextype is ctxsys.context parameters('storage AK_ECE_BLD1.ECE_STORAGE1M lexer AK_ECE_BLD1.ece_text_lexer stoplist AK_ECE_BLD1.ECE_STOP MEMORY 12M');&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-7419667927897980730?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/7419667927897980730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/escenic-content-studio-435.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7419667927897980730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/7419667927897980730'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/06/escenic-content-studio-435.html' title='Escenic Content Studio - 4.3.5'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7646217949411391696.post-351898105731231037</id><published>2009-06-05T17:24:00.001+01:00</published><updated>2010-03-08T02:02:54.181Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSP'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag Kapur'/><category scheme='http://www.blogger.com/atom/ns#' term='Performance Optimization'/><category scheme='http://www.blogger.com/atom/ns#' term='Property Files'/><category scheme='http://www.blogger.com/atom/ns#' term='Configuration Files'/><category scheme='http://www.blogger.com/atom/ns#' term='Anurag'/><category scheme='http://www.blogger.com/atom/ns#' term='JAVA'/><title type='text'>Reading Property Files Efficiently In Java and JSP files</title><content type='html'>&lt;style&gt;&lt;!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman";	mso-fareast-font-family:"Times New Roman";}span.EmailStyle15	{mso-style-type:personal;	mso-style-noshow:yes;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;	font-family:Arial;	mso-ascii-font-family:Arial;	mso-hansi-font-family:Arial;	mso-bidi-font-family:Arial;	color:windowtext;}@page Section1	{size:612.0pt 792.0pt;	margin:72.0pt 90.0pt 72.0pt 90.0pt;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;  &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;Described below is an efficient way of reading configurations from property files in a web application. It uses a class called AppConfigMaster to read all property files available at a directory location specified as a JVM argument. All key value pairs read from the property files are fed into a HashMap object, which is defined as a data member of the AppConfigMaster class. A singleton of this AppConfigMaster is maintained in the JVM so that the properties are read from the file system only once in a JVMs lifecycle.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;b&gt;&lt;u&gt;AppConfigMaster.java&lt;/u&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; AppConfigMaster {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; AppConfigMaster &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;AppConfigMasterObj&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; Map &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configPropertiesMap&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; HashMap();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configurationFilesPath&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="font-size: 16px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; AppConfigMaster() &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SystemException {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configurationFilesPath&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = System.&lt;i&gt;getProperty&lt;/i&gt;(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"ApplicationConfigPath"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; navigateConfigDirectory(&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configurationFilesPath&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (Exception ex) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;br /&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;synchronized&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;static&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; AppConfigMaster getInstance() {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;AppConfigMasterObj &lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;== &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;AppConfigMasterObj&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; AppConfigMaster();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (SystemException e) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; e.printStackTrace();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;AppConfigMasterObj&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; navigateConfigDirectory(String path) &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SystemException {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File configurationDirectiory = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; File(path);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; File[] subdirectories = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; ((configurationDirectiory.isDirectory())&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;amp;&amp;amp; (configurationDirectiory.exists())) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; subdirectories = configurationDirectiory.listFiles();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FilenameFilter propertiesFileFilter = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; OnlyExt(&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"properties"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; configDirLength = configurationDirectiory.listFiles(propertiesFileFilter).&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;length&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;(&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; i=0;i&lt;configdirlength;i++)&gt;&lt;configdirlength;i++) {=""&gt;&lt;/configdirlength;i++)&gt;&lt;/configdirlength;i++)&gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; propertiesFileProcessor(configurationDirectiory.listFiles(propertiesFileFilter)[i]);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;/*&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;* Assuming there are just 2 levels of nesting&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;*/&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; i = 0; i &amp;lt; subdirectories.&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;length&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;; i++) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (subdirectories[i].isDirectory()) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;for&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;int&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; j = 0; j &amp;lt; subdirectories[i].list(propertiesFileFilter).&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;length&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;; j++) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; propertiesFileProcessor(subdirectories[i].listFiles(propertiesFileFilter)[j]);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; OnlyExt &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;implements&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; FilenameFilter {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;ext&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; OnlyExt(String ext) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;ext&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"."&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; + ext;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;boolean&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; accept(File dir, String name) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; name.endsWith(&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;ext&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; propertiesFileProcessor(File file) &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SystemException {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: 'Times New Roman'; font-size: 16px;"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; Properties configProprties = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; Properties();&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FileInputStream inputstream;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String key = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String value = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; inputstream = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;new&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; FileInputStream(file.getAbsolutePath());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; configProprties.load(inputstream);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enumeration keys = configProprties.keys();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;while&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (keys.hasMoreElements()) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; key = (String) keys.nextElement();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = configProprties.getProperty(key.toString());&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New'; font-size: 13px;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;configPropertiesMap.put(key, value);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (FileNotFoundException e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (IOException e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (Exception e) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String getPropertyforkey(String key) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;if&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configPropertiesMap&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.containsKey(key))&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configPropertiesMap&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.get(key).toString();&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;else&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (ClassCastException cex) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (NullPointerException npex) {&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #3f7f5f;"&gt;//Do Something&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String reloadProperties() &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;throws&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; SystemException {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String retMessage = &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;try&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; navigateConfigDirectory(&lt;/span&gt;&lt;i&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;configurationFilesPath&lt;/span&gt;&lt;/i&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retMessage = &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Reload of properties Successful"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;catch&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; (SystemException ex) {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; retMessage = &lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"Reload of properties unsuccessful"&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #3f7f5f; font-family: 'Courier New'; font-size: 10pt;"&gt;//Do Something&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; retMessage;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;The class is then used in other class files that need to read key values from property file as below:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;AppConfigMaster.getInstance().getPropertyforkey("artbody.html.imagespanclasss.right");&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;To use it in JSP files without using scriplets following additional wrapper class and tag file are used:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;u&gt;&lt;b&gt;AppConfigUtil.java&lt;/b&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; AppconfigUtil {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;key&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;private&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;void&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; setKey(String key) {&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;this&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;.&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;key&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = key;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;public&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; String getValue() {&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = AppConfigMaster.&lt;i&gt;getInstance&lt;/i&gt;().getPropertyforkey(&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;key&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;);&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; = (&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; == &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;null&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;)?&lt;/span&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;""&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;:&lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;b&gt;&lt;span style="color: #7f0055; font-family: 'Courier New'; font-size: 10pt;"&gt;return&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #0000c0; font-family: 'Courier New'; font-size: 10pt;"&gt;value&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;}&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;u&gt;&lt;b&gt;&lt;webapp&gt;/WEB-INF/tags/getProperty.tag&lt;/webapp&gt;&lt;/b&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;taglib&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;uri&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"http://java.sun.com/jsp/jstl/core"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;prefix&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"c"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;taglib&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;uri&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"/WEB-INF/struts-bean.tld"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;prefix&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"bean"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;tag&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;import&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"com.util.AppconfigUtil"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;attribute&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;name&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"property"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;required&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"true"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;attribute&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;name&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"id"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;required&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"true"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"&gt;jsp:useBean&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #7f007f;"&gt;id&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"appconfig"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;class&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"com.util.AppconfigUtil"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: teal;"&gt;&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"&gt;jsp:setProperty&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #7f007f;"&gt;name&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"appconfig"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;property&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"key"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;value&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;"&lt;span style="color: black;"&gt;${property}&lt;/span&gt;" &lt;span style="color: teal;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"&gt;jsp:useBean&lt;/span&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"&gt;bean:define&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #7f007f;"&gt;id&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"value"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;name&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"appconfig"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;property&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"value"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: teal;"&gt;/&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%&lt;/span&gt;&lt;u&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;r&lt;/span&gt;&lt;/u&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;equest.setAttribute(id,value);&lt;/span&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;%&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;u&gt;&lt;b&gt;Usage in a JSP file is illustrated below&lt;/b&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;span style="color: #3f7f7f;"&gt;taglib&lt;/span&gt; &lt;span style="color: #7f007f;"&gt;uri&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"http://java.sun.com/jsp/jstl/core"&lt;/span&gt;&lt;/i&gt; &lt;span style="color: #7f007f;"&gt;prefix&lt;/span&gt;&lt;span style="color: black;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff;"&gt;"c"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f;"&gt;%&amp;gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;%@&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #3f7f7f; font-family: 'Courier New'; font-size: 10pt;"&gt;taglib &lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt;tagdir&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"/WEB-INF/tags"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt;prefix&lt;/span&gt;&lt;span style="color: black; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"appConfig"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;appconfig:getproperty&gt;&lt;/appconfig:getproperty&gt;&lt;/span&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: #3f7f7f;"&gt;appConfig:getProperty &lt;/span&gt;&lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt;property&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"publication.name"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt;id&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"pub_name"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: teal; font-family: 'Courier New'; font-size: 10pt;"&gt;/&amp;gt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: #bf5f3f; font-family: 'Courier New'; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;span style="color: #3f7f7f;"&gt;appConfig:getProperty&lt;/span&gt;&lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt; property&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"site.url"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt; &lt;/span&gt;&lt;span style="color: #7f007f; font-family: 'Courier New'; font-size: 10pt;"&gt;id&lt;/span&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;=&lt;/span&gt;&lt;i&gt;&lt;span style="color: #2a00ff; font-family: 'Courier New'; font-size: 10pt;"&gt;"site_url"&lt;/span&gt;&lt;/i&gt;&lt;span style="color: #3f5fbf; font-family: 'Courier New'; font-size: 10pt;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;b&gt;&lt;c:out value="${pub_name}"&gt;&lt;/c:out&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: 'Courier New'; font-size: 10pt;"&gt;&lt;b&gt;&lt;c:out value="${times_url}"&gt;&lt;/c:out&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;br /&gt;&lt;link href="file:///C:%5CDOCUME%7E1%5Cakapur%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml" rel="File-List"&gt;&lt;/link&gt;&lt;style&gt;&lt;!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal	{mso-style-parent:"";	margin:0cm;	margin-bottom:.0001pt;	mso-pagination:widow-orphan;	font-size:12.0pt;	font-family:"Times New Roman";	mso-fareast-font-family:"Times New Roman";}span.EmailStyle15	{mso-style-type:personal;	mso-style-noshow:yes;	mso-ansi-font-size:10.0pt;	mso-bidi-font-size:10.0pt;	font-family:Arial;	mso-ascii-font-family:Arial;	mso-hansi-font-family:Arial;	mso-bidi-font-family:Arial;	color:windowtext;}@page Section1	{size:612.0pt 792.0pt;	margin:72.0pt 90.0pt 72.0pt 90.0pt;	mso-header-margin:36.0pt;	mso-footer-margin:36.0pt;	mso-paper-source:0;}div.Section1	{page:Section1;}--&gt;&lt;/style&gt;    &lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&amp;lt;b&amp;gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;c:out value="${site_url}"/&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;/b&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&lt;/span&gt;&lt;span style="color: grey; font-family: Arial; font-size: 10pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;u&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;NOTE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;To prevent key name conflicts, all key names used in various property files should follow some agreed naming convention. Name space conflicts can cause logical errors otherwise.&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;span style="font-family: Arial; font-size: 10pt;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;script type="text/javascript"&gt;var addthis_pub="anuragkapur";&lt;/script&gt;&lt;br /&gt;&lt;a href="http://www.addthis.com/bookmark.php" onclick="return addthis_sendto()" onmouseout="addthis_close()" onmouseover="return addthis_open(this, '', '[URL]', '[TITLE]')"&gt;&lt;img alt="Bookmark and Share" border="0" height="16" src="http://s7.addthis.com/static/btn/lg-share-en.gif" style="border: 0pt none;" width="125" /&gt;&lt;/a&gt;&lt;script src="http://s7.addthis.com/js/152/addthis_widget.js" type="text/javascript"&gt;&lt;/script&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7646217949411391696-351898105731231037?l=anuragkapur-techbytes.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://anuragkapur-techbytes.blogspot.com/feeds/351898105731231037/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/10/reading-property-files-efficiently-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/351898105731231037'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7646217949411391696/posts/default/351898105731231037'/><link rel='alternate' type='text/html' href='http://anuragkapur-techbytes.blogspot.com/2009/10/reading-property-files-efficiently-in.html' title='Reading Property Files Efficiently In Java and JSP files'/><author><name>Anurag Kapur</name><uri>http://www.blogger.com/profile/07113816105383734265</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='33' height='23' src='http://4.bp.blogspot.com/_Oq9OlP-8ap0/S15gXAtDA6I/AAAAAAAACMo/1vmv3Yf9_A8/S220/IMG_20090412_0251.JPG'/></author><thr:total>0</thr:total></entry></feed>
