<?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-6741080397454890783</id><updated>2012-02-16T10:56:00.967-08:00</updated><category term='Introduction'/><category term='SAMPLES'/><category term='8002'/><category term='zos'/><category term='admin'/><category term='debugging'/><category term='serviceability'/><category term='strategy'/><category term='WSTE'/><category term='migration'/><category term='application performance'/><category term='caching performance'/><category term='native'/><category term='general'/><category term='JDBC'/><category term='failover'/><category term='classloader'/><category term='servlet caching'/><category term='WebSphere Plugin'/><category term='competitive'/><category term='configuration'/><category term='spring'/><category term='data access'/><category term='session'/><category term='tuning'/><category term='dynacache'/><category term='JSF'/><category term='was'/><category term='performance'/><category term='server performance'/><category term='CDI'/><category term='debugging tools'/><category term='defensive queuing'/><category term='caching'/><category term='JEE'/><category term='profiling'/><category term='l3'/><category term='JSF Servlet'/><title type='text'>Concerns and issues relating to all versions of WebSphere Application Server</title><subtitle type='html'>Concerns and issues relating to all versions of WebSphere Application Server</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default?start-index=101&amp;max-results=100'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>125</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8658786265217901903</id><published>2012-02-13T08:02:00.000-08:00</published><updated>2012-02-13T08:07:51.545-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zos'/><title type='text'>WebSphere Application Server version 8 zOS startup performance</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="background-color: white; color: orange; font-family: arial, sans-serif; font-size: large;"&gt;Two APARs all WebSphere Application Server zOS 8002 customers should consider applying -&lt;/span&gt;&lt;br /&gt;&lt;span style="background-color: white; color: orange; font-family: arial, sans-serif; font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;h1 style="background-color: white; clear: both; font-family: arial, sans-serif; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px;"&gt;&lt;/h1&gt;&lt;h1 style="background-color: white; clear: both; font-family: arial, sans-serif; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px;"&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PM51889" style="background-color: white; font-size: medium;" target="_blank"&gt;PM51889&lt;/a&gt;&lt;span style="background-color: white; font-size: small;"&gt;: DECREASE CLUSTER STARTUP TIME.&lt;/span&gt;&lt;/h1&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;USERS AFFECTED&lt;/b&gt;: &amp;nbsp;All IBM WebSphere Application Server V8.0&amp;nbsp; users of Base and Network Deployment &amp;nbsp;editions. &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;br /&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;PROBLEM DESCRIPTION&lt;/b&gt;: Excessive JIT compilation increases &amp;nbsp;the start time of servers and clusters&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;RECOMMENDATION: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;/b&gt;&lt;br /&gt;****************************************************************&lt;br /&gt;The Java JIT compiler provides a performance boost by&amp;nbsp;compiling frequently used classes in such a way that future&amp;nbsp;invocations of those classes perform better. &amp;nbsp;However, the&amp;nbsp;initial compilation of these classes takes additional time.&amp;nbsp;For classes that are used often throughout the life of the&amp;nbsp;server, it is worth taking the initial time to compile them in&amp;nbsp;order to obtain future performance benefits.During server startup, numerous classes are loaded that will&amp;nbsp;rarely be invoked after startup is complete. &amp;nbsp;Compiling all of&amp;nbsp;these classes is often unnecessary and can increase server&amp;nbsp;start time. &amp;nbsp;The JIT compiler should be optimzied to avoid&amp;nbsp;unnecessary compilations during server startup.&lt;br /&gt;&lt;b&gt;Problem conclusion&lt;/b&gt;&lt;br /&gt;WebSphere Application Server was modified to inform the JIT&amp;nbsp;compiler of the beginning and end of server &amp;nbsp;startup. &amp;nbsp;The JIT&amp;nbsp;compiler can use this information to make better decisions&amp;nbsp;about which classes to compile, thereby improving the start&amp;nbsp;time of servers and clusters.&lt;br /&gt;&lt;br /&gt;Fix on 8002: &lt;a href="http://www.ibm.com/support/fixcentral/quickorder?product=ibm/WebSphere/WebSphere+Application+Server&amp;amp;fixids=8.0.0.2-WS-WAS-IFPM51889&amp;amp;source=myna&amp;amp;myns=swgws&amp;amp;mynp=OCSSEQTP&amp;amp;mync=E"&gt;http://www.ibm.com/support/fixcentral/quickorder?product=ibm/WebSphere/WebSphere+Application+Server&amp;amp;fixids=8.0.0.2-WS-WAS-IFPM51889&amp;amp;source=myna&amp;amp;myns=swgws&amp;amp;mynp=OCSSEQTP&amp;amp;mync=E&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The fix for this APAR is currently targeted for inclusion in&amp;nbsp;fix pack 8.0.0.3. &amp;nbsp;Please refer to the Recommended Updates&amp;nbsp;page for delivery information:&lt;br /&gt;&lt;a href="http://www.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27004980"&gt;http://www.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg27004980&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 style="background-color: white; clear: both; font-family: arial, sans-serif; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 4px;"&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PM55170" target="_blank"&gt;PM55170&lt;/a&gt;: CPU CONSTRAINED DMGR + NODE STARTUP 95% SLOWER&lt;/span&gt;&lt;/h1&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;USERS AFFECTED&lt;/b&gt;: &amp;nbsp;All IBM WebSphere Application Server V8.0 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;users of Base and Network Deployment &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;br /&gt;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;editions. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;br /&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;PROBLEM DESCRIPTION:&lt;/b&gt; Excessive JIT compilation increases &amp;nbsp; &lt;br /&gt;* &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;the time to federate nodes. &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;****************************************************************&lt;br /&gt;* &lt;b&gt;RECOMMENDATION: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &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;/b&gt;&lt;br /&gt;****************************************************************&lt;br /&gt;The Java JIT compiler provides a performance boost by&amp;nbsp;compiling frequently used classes in such a way that future&amp;nbsp;invocations of those classes perform better. &amp;nbsp;However, the&amp;nbsp;initial compilation of these classes takes additional time.For classes that are not used often throughout the life of the&amp;nbsp;addNode command, it is not worth taking the initial time to&amp;nbsp;compile them as the JVM shuts down after the command&amp;nbsp;completes. &amp;nbsp;Compiling all of classes is unnecessary and can&amp;nbsp;increase the time to federate a node. &amp;nbsp;The JIT compiler should&amp;nbsp;be optimzied to avoid unnecessary compilations during node&amp;nbsp;federation.&lt;br /&gt;&lt;b&gt;Problem conclusion&lt;/b&gt;&lt;br /&gt;WebSphere Application Server was modified to inform the JIT&amp;nbsp;compiler of the beginning of the addNode command. &amp;nbsp;The JIT&amp;nbsp;compiler can use this information to make better decisions&lt;br /&gt;about which classes to compile, thereby improve the&amp;nbsp;federate a node.&lt;br /&gt;&lt;br /&gt;The fix for this APAR is currently targeted for inclusion in&amp;nbsp;fix pack 8.0.0.3.&lt;br /&gt;Fix on 8002: &lt;a href="http://www.ibm.com/support/fixcentral/quickorder?product=ibm/WebSphere/WebSphere+Application+Server&amp;amp;fixids=8.0.0.2-WS-WAS-IFPM55170&amp;amp;source=myna&amp;amp;myns=swgws&amp;amp;mynp=OCSSEQTP&amp;amp;mync=E"&gt;http://www.ibm.com/support/fixcentral/quickorder?product=ibm/WebSphere/WebSphere+Application+Server&amp;amp;fixids=8.0.0.2-WS-WAS-IFPM55170&amp;amp;source=myna&amp;amp;myns=swgws&amp;amp;mynp=OCSSEQTP&amp;amp;mync=E&lt;/a&gt;&lt;br /&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/6741080397454890783-8658786265217901903?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8658786265217901903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/two-apars-all-websphere-application.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8658786265217901903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8658786265217901903'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/two-apars-all-websphere-application.html' title='WebSphere Application Server version 8 zOS startup performance'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1053451584644619627</id><published>2012-02-04T23:04:00.001-08:00</published><updated>2012-02-04T23:05:26.835-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Websphere logging quick tip</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 13px; line-height: 18px;"&gt;You can make the WebSphere for z/OS logs look the same as Distributed by setting the following nifty Java system property:&amp;nbsp;&lt;/span&gt;&lt;b style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; font-weight: bold; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;com.&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;ibm.&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;ws.d&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;ist.&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;trac&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;e.fo&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;rmat&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;.on.&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;zos=&lt;wbr style="font-style: inherit; font-weight: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;true&lt;/b&gt;&lt;br /&gt;&lt;b style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; font-weight: bold; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; font-weight: bold; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;b style="font-weight: bold; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;Notes:&lt;/b&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;br style="font-size: 13px; font-weight: normal; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 8px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;* To use this property in V7.0 you must be at or above service level 7.0.0.11. Using this property at an older service level will cause a Null&lt;/span&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;Poin&lt;/span&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;terE&lt;/span&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;xcep&lt;/span&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;tion&lt;/span&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;.&lt;/span&gt;&lt;br style="font-size: 13px; font-weight: normal; margin-bottom: 8px; margin-left: 0px; margin-right: 0px; margin-top: 8px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;" /&gt;&lt;wbr style="font-size: 13px; font-weight: normal; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;/wbr&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;* This property only affects the SYSPRINT DD of WebSphere for z/OS output, the remaining DDs are unaffecte&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; font-weight: bold; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;b style="background-color: white; color: #424242; font-family: Arial, 'Helvetica Neue', Helvetica, sans-serif; font-size: 15px; font-weight: bold; line-height: 18px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px;"&gt;&lt;span style="font-size: 13px; font-weight: normal;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/aimsupport/entry/logging_harmony_among_websphere_application_server_platforms_and_versions21?lang=en" target="_blank"&gt;Source&lt;/a&gt;:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1053451584644619627?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1053451584644619627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/websphere-logging-quick-tip.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1053451584644619627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1053451584644619627'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/websphere-logging-quick-tip.html' title='Websphere logging quick tip'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6423831759167394850</id><published>2012-02-01T11:26:00.000-08:00</published><updated>2012-02-01T11:26:52.012-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><title type='text'>WebSphere Proxy Server Best Practice</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;When configuring the WebSphere Proxy Server for &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.nd.multiplatform.doc%2Finfo%2Fae%2Fae%2Ftjpx_cachestatdyn.html"&gt;caching&lt;/a&gt;&amp;nbsp; it is a best practice to ENABLE disk offload&amp;nbsp;&amp;amp; set the location to a dedicated disk partition. Even if you do not have a disk partition consider enabling disk offload for your static and dynamic cache.&amp;nbsp;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-6423831759167394850?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6423831759167394850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/websphere-proxy-server-best-practice.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6423831759167394850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6423831759167394850'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/02/websphere-proxy-server-best-practice.html' title='WebSphere Proxy Server Best Practice'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2710728353231902582</id><published>2012-01-31T09:41:00.001-08:00</published><updated>2012-01-31T09:41:24.055-08:00</updated><title type='text'>Class loading and debugging class  loader memory leaks in WebSphere  Application Server</title><content type='html'>See this excellent presentation on Debugging Classloader leaks in application servers&lt;a href="http://www.websphereusergroup.org.uk/wug/files/presentations/31/Ian_Partridge_-_WUG_classloader_leaks.pdf"&gt;http://www.websphereusergroup.org.uk/wug/files/presentations/31/Ian_Partridge_-_WUG_classloader_leaks.pdf&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2710728353231902582?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2710728353231902582/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/class-loading-and-debugging-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2710728353231902582'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2710728353231902582'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/class-loading-and-debugging-class.html' title='Class loading and debugging class  loader memory leaks in WebSphere  Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-173886783450356649</id><published>2012-01-31T09:30:00.000-08:00</published><updated>2012-01-31T09:38:32.615-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='classloader'/><title type='text'>WebSphere Classloader Memory Leak Prevention</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.blogger.com/post-create.do" name="solving" style="text-align: -webkit-auto;"&gt;&lt;/a&gt;&lt;br /&gt;&lt;h1 style="display: inline !important;"&gt;Solving Application ClassLoader Leaks&lt;/h1&gt;&lt;br /&gt;&lt;div style="display: inline !important;"&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;Applications&lt;span class="Apple-style-span"&gt; &lt;/span&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;tend to want to:&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style="text-align: -webkit-auto;"&gt;&lt;li&gt;Start new threads using&amp;nbsp;&lt;tt&gt;Runnable&lt;/tt&gt;&amp;nbsp;implementations from the application class loader. Even though the JEE programming model does not support this, customers frequently either directly create new threads or indirectly create them by using&amp;nbsp;&lt;tt&gt;&lt;/tt&gt;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/util/Timer.html"&gt;Timer&lt;/a&gt;&lt;/tt&gt;s. Customers must ensure that these threads are stopped when the corresponding application (or WAR module) is stopped:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;tt&gt;javax.servlet.ServletContextListener.contextDestroyed&lt;/tt&gt;&amp;nbsp;can be used to be notified when a WAR is being stopped in order to clean up. Note that WARs can be stopped independently from an application when&amp;nbsp;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/urun_rapp_classload.html"&gt;class reloading&lt;/a&gt;&amp;nbsp;is enabled.&lt;/li&gt;&lt;li&gt;&lt;tt&gt;javax.ejb.Singleton&lt;/tt&gt;,&amp;nbsp;&lt;tt&gt;javax.ejb.Startup&lt;/tt&gt;, and&amp;nbsp;&lt;tt&gt;javax.annotation.PreDestroy&lt;/tt&gt;&amp;nbsp;annotations can be used to be notified when an EJB module is being stopped in order to clean it up. Note, singleton EJBs are only available in EJB 3.1 (WAS v8).&lt;/li&gt;&lt;li&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/topic/com.ibm.websphere.ejbfep.multiplatform.doc/info/ae/asyncbns/tasks/tasb_confstb.html"&gt;Startup beans&lt;/a&gt;&amp;nbsp;can be used to be notified when an EJB module is being stopped in order to clean up. All EJB modules are stopped when an entire application is being stopped.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;Use&amp;nbsp;&lt;tt&gt;ThreadLocal&lt;/tt&gt;&amp;nbsp;(storing a&amp;nbsp;&lt;tt&gt;ThreadLocal&lt;/tt&gt;&amp;nbsp;in a&amp;nbsp;&lt;tt&gt;static&lt;/tt&gt;).&amp;nbsp;&lt;tt&gt;ThreadLocal&lt;/tt&gt;&amp;nbsp;values are effectively stored as&amp;nbsp;&lt;tt&gt;WeakHashMap&lt;threadlocal, object=""&gt;&lt;/threadlocal,&gt;&lt;/tt&gt;&amp;nbsp;in each&amp;nbsp;&lt;tt&gt;Thread&lt;/tt&gt;. Since the values typically include application objects, the application object references its&amp;nbsp;&lt;tt&gt;Class&lt;/tt&gt;, which references its&amp;nbsp;&lt;tt&gt;ClassLoader&lt;/tt&gt;, which references the&amp;nbsp;&lt;tt&gt;Class&lt;/tt&gt;&amp;nbsp;contain the&amp;nbsp;&lt;tt&gt;ThreadLocal&lt;/tt&gt;, the weak reference is never broken, and a leak occurs.&lt;br /&gt;Customers are encouraged either to&amp;nbsp;&lt;a href="http://www.devwebsphere.com/devwebsphere/2005/06/dont_use_thread.html"&gt;avoid the use&lt;/a&gt;&amp;nbsp;of&amp;nbsp;&lt;tt&gt;ThreadLocal&lt;/tt&gt;, to clear references to the ThreadLocal when the module is stopped (see above), or to ensure that&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/lang/ThreadLocal.html#remove()"&gt;remove()&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;is called after every request.&lt;/li&gt;&lt;li&gt;Register JMX MBeans or&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/javax/management/NotificationListener.html"&gt;NotificationListener&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;with the JMX server. Customers must ensure that these are unregistered when the corresponding application (or WAR module) is stopped.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Arbitrary components&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: -webkit-auto;"&gt;This includes JDBC providers, third-party software, and applications themselvestend to want to:&lt;/div&gt;&lt;ul style="text-align: -webkit-auto;"&gt;&lt;li&gt;Start new threads, including the "timer threads" created by the&amp;nbsp;&lt;tt&gt;java.util.Timer&lt;/tt&gt;&amp;nbsp;constructor. When a&amp;nbsp;&lt;tt&gt;Thread&lt;/tt&gt;&amp;nbsp;is created, two pieces of information are copied from the primordial thread:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;The context class loader (&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#getContextClassLoader()"&gt;getContextClassLoader()&lt;/a&gt;&lt;/tt&gt;). When an application is executing, the containers set the context class loader to the module class loader, so the newly created thread will keep the context class loader alive for the duration of its existence. This can be avoided by calling&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/lang/Thread.html#setContextClassLoader(java.lang.ClassLoader)"&gt;setContextClassLoader&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;to a non-application class loader prior to starting the timer and then resetting it afterwards.&lt;/li&gt;&lt;li&gt;The&amp;nbsp;&lt;tt&gt;AccessControlContext&lt;/tt&gt;&amp;nbsp;of the calling thread (as documented by&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/security/AccessController.html"&gt;AccessController&lt;/a&gt;&lt;/tt&gt;). If the thread is being started due to an API call from an application, then the application's&amp;nbsp;&lt;tt&gt;ProtectionDomain&lt;/tt&gt;&amp;nbsp;will be in the&lt;tt&gt;AccessControlContext&lt;/tt&gt;, and the&amp;nbsp;&lt;tt&gt;ProtectionDomain&lt;/tt&gt;&amp;nbsp;of an application class will include a reference to its&amp;nbsp;&lt;tt&gt;ClassLoader&lt;/tt&gt;. This can be avoided by creating the thread using&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/security/AccessController.html#doPrivileged(java.security.PrivilegedAction)"&gt;doPrivileged&lt;/a&gt;&lt;/tt&gt;. Note that care must be taken to ensure that the use of&amp;nbsp;&lt;tt&gt;doPrivileged&lt;/tt&gt;&amp;nbsp;does not allow unprivileged applications to create threads.&lt;br /&gt;&lt;span class="Apple-style-span" style="color: green; font-family: serif;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;For example:&lt;br /&gt;&lt;pre style="margin-left: 30px;"&gt;// doPrivileged fixes the AccessControlContext leak, and it is also required&lt;br /&gt;// for calls to Thread.get/setContextClassLoader.&lt;br /&gt;Timer timer = AccessController.doPrivileged(new PrivilegedAction&lt;timer&gt;() {&lt;br /&gt;  public void run() {&lt;br /&gt;    Thread thread = Thread.currentThread();&lt;br /&gt;    ClassLoader savedCL = thread.getContextClassLoader();&lt;br /&gt;    thread.setContextClassLoader(null);&lt;br /&gt;    try {&lt;br /&gt;      // The Timer constructor will create a Thread, which will copy the&lt;br /&gt;      // context class loader from the current thread, which is now null.&lt;br /&gt;      return new Timer(true);&lt;br /&gt;    } finally {&lt;br /&gt;      thread.setContextClassLoader(savedCL);&lt;br /&gt;    }&lt;br /&gt;  }&lt;br /&gt;});&lt;br /&gt;&lt;/timer&gt;&lt;/pre&gt;&lt;pre style="margin-left: 30px;"&gt;&lt;/pre&gt;&lt;/li&gt;&lt;li&gt;Associate data with the current context class loader. This is typically done via a&amp;nbsp;&lt;tt&gt;Map&lt;classloader&lt;i&gt;Value&amp;gt;&lt;/classloader&lt;i&gt;&lt;/tt&gt;. This&amp;nbsp;&lt;tt&gt;Map&lt;/tt&gt;&amp;nbsp;must either:&lt;br /&gt;&lt;/li&gt;&lt;ol&gt;&lt;li&gt;Have explicit lifecycle APIs. In this case, the lifecycle API must be called. If the code was introduced by a customer, then the customer is responsible for adding a JMX listener. If the code was introduced by a WAS prereq, then the owner must use a WAS application listener API. If the code belongs to the JDK, then the runtime team will accept responsibility for calling it (e.g.,&amp;nbsp;&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/util/ResourceBundle.html#clearCache(java.lang.ClassLoader)"&gt;ResourceBundle.clearCache&lt;/a&gt;&lt;/tt&gt;&amp;nbsp;and&lt;tt&gt;&lt;a href="http://java.sun.com/javase/6/docs/api/java/beans/Introspector.html#flushCaches()"&gt;Introspector.flushCaches&lt;/a&gt;&lt;/tt&gt;).&lt;/li&gt;&lt;li&gt;Be a&amp;nbsp;&lt;tt&gt;WeakHashMap&lt;/tt&gt;&amp;nbsp;to allow the&amp;nbsp;&lt;tt&gt;ClassLoader&lt;/tt&gt;&amp;nbsp;key to be garbage collected. Note that the value must not hold a non-weak reference to classes or objects created from that&amp;nbsp;&lt;tt&gt;ClassLoader&lt;/tt&gt;, or the entry will never be removed.&amp;nbsp;Either WeakHashMap&amp;lt;ClassLoader, WeakReference&amp;lt;Class&amp;gt;&amp;gt; or WeakHashMap&amp;lt;ClassLoader, Tuple&amp;gt;, where Tuple contains WeakReference&amp;lt;Class&amp;gt; and WeakReference&amp;lt;Object&amp;gt; to an object instantiated from the class. In both cases, the Class is held weakly, which will still allow the ClassLoader to be collected. In the latter case, the reference to the instantiated object will be cleared if a GC occurs, but the assumption is made that it can be cheaply reinstantiated.&lt;/li&gt;&lt;/ol&gt;&lt;/ul&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;i&gt;These tips are courtesy of WAS guru &lt;b&gt;Brett Kail&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-173886783450356649?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/173886783450356649/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/websphere-classloader-memory-leak.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/173886783450356649'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/173886783450356649'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/websphere-classloader-memory-leak.html' title='WebSphere Classloader Memory Leak Prevention'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7974006789397088212</id><published>2012-01-23T09:06:00.000-08:00</published><updated>2012-01-23T10:10:16.930-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='8002'/><title type='text'>New Features in WebSphere Application Server version 8.0.0.2</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;WAS 8002 was available for general availability on 1/16/2012. The blog post below provides the necessary links for download and an overview and brief detail of the new features in WebSphere Application Server version 8.0.0.2. Please note that a fix pack contains both features and APAR fixes.&lt;br /&gt;WAS 8002 &amp;amp; other offerings download --&amp;gt;&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg24031368"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg24031368&lt;/a&gt;&lt;br /&gt;Recommended Fixes Page --&amp;gt; &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;context=SSEQTP&amp;amp;uid=swg27004980#ver80"&gt;http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;context=SSEQTP&amp;amp;uid=swg27004980#ver80&lt;/a&gt;&lt;br /&gt;Readme --&amp;gt; &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27023570"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27023570&lt;/a&gt;&lt;br /&gt;FixList 8002 -&amp;gt; &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27022958"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27022958&lt;/a&gt;&lt;br /&gt;z/OS --&amp;gt; &lt;a href="http://www-01.ibm.com/support/docview.wss?rs=404&amp;amp;uid=swg27006970"&gt;http://www-01.ibm.com/support/docview.wss?rs=404&amp;amp;uid=swg27006970&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;&lt;u style="background-color: orange;"&gt;Improvements in WAS 8002 &amp;nbsp;=&amp;gt;&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: red;"&gt;&lt;b&gt;Education on ALL these new features is provided by the IBM Education Assistant here&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.was_v8/was/WASv8.0.0.2.html"&gt;http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/index.jsp?topic=/com.ibm.iea.was_v8/was/WASv8.0.0.2.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Customized access logging for WAS&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Before V8.0.0.2 the access log only offered two options for format, common and&amp;nbsp;combined. With &amp;nbsp;the new access log enhancements added in V8.0.0.2 you can customize how much information, and what information, is displayed. 17 directives were&amp;nbsp;added to display different pieces of information in the access log. These directives,&amp;nbsp;allow for any order the user&amp;nbsp;wants and each directive can be quoted. These access log enhancements provide&amp;nbsp;greater customization and more information on display to the user.&lt;br /&gt;&lt;br /&gt;Example:&lt;br /&gt;&lt;b&gt;&lt;span style="color: blue;"&gt;%h %u %t "%r" %s %b "%{Referer}i" "%{User-agent}i" "%C"&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;Remote host,   URL path not including query string, start time of request (NCSA format),  method, path, query-string, and protocol, .....&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;- Directives must be separated by spaces&lt;/div&gt;&lt;div&gt;- Individual directives can be surrounded by quotes&lt;/div&gt;&lt;div&gt;- Directives can be ordered however the user wishes&lt;/div&gt;&lt;div&gt;- Unless noted, all directives will print - if no value is found&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;� Information on access log functionality:&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/utrb_httperrlogs.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/utrb_httperrlogs.html&lt;/a&gt;&lt;br /&gt;� Used as a base for the new functionality:&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/httpserv/manual70//mod/mod_log_config.html"&gt;http://publib.boulder.ibm.com/httpserv/manual70//mod/mod_log_config.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Tools from the Virtual Member Manager to clear adapter cache, manage realm default parent &amp;amp; retrieve the data model&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;div style="text-align: left;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;The Clear Adapter Cache feature is needed to ensure that VMM always returns correct data. &amp;nbsp;Changes made to the existing Get and Search commands.&amp;nbsp;New control added to be used with the existing Get and Search API.&amp;nbsp;Two new commands added for handling the cache of the adapters.&amp;nbsp;&lt;/li&gt;&lt;li&gt;New commands for set, update, delete, list of realm level default parent. Simplifies configuration and management. Commands can be used in server and local mode&lt;/li&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;VMM data Model is a description of the organization of data in a manner that reflects the&amp;nbsp;information structure supported by VMM. VMM allows to retrieve the different kinds of information related to its data model schema.&amp;nbsp;To retrieve the VMM schema there is currently a supported API. There is no command used from the command line to retrieve the schema.This feature adds new commands to retrieve the different VMM data model that can be used in server and local mode.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Tools.html?dmuid=20111105095219725033"&gt;http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Tools.html?dmuid=20111105095219725033&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;Fixing the Performance problem with the Service Data Object (SDO) Repository&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;The feature focuses on enhancing the performance of the SDO repository. This is done by&lt;br /&gt;changing the way in which the data is accessed by the entity beans.&amp;nbsp;Finder methods fetches the entire objects even if you are interested in just one column in&amp;nbsp;the table, these are exposed to the clients.&amp;nbsp;Replacing the finder methods with the ejbSelect methods and exposing them to client&amp;nbsp;interface enhances the performance by several factors.&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Performance/WASv8002_SDO_Performance.pdf?dmuid=20111107132159204845"&gt;http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Performance/WASv8002_SDO_Performance.pdf?dmuid=20111107132159204845&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;sibDDLGenerator enhancements for SIBus -&lt;/i&gt;&amp;nbsp;&lt;/b&gt;&lt;br /&gt;Before these enhancements, the sibDDLGenerator command created the CREATE&amp;nbsp;DATABASE statement DDL and created the tablespaces listed here.&amp;nbsp;If the same database had to be shared by multiple messaging engines, it was necessary &amp;nbsp;to make some changes to the DDLs generated by the sibDDLGenerator command:&lt;br /&gt;remove the CREATE DATABASE statement DDL, and modify the tablespace names.&amp;nbsp;As part of the enhancements to the sibDDLGenerator, two new parameters (-createdbstmt, -tablespaceprefix) are added. &amp;nbsp;These parameters remove the need for changes to the DDLs generated by the&amp;nbsp;sibDDLGenerator command .&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Architecture/WAS_8002_SIB_sibDDLGenerator.pdf?dmuid=20111107132412229085&amp;amp;noframes=true"&gt;http://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/Architecture/WAS_8002_SIB_sibDDLGenerator.pdf?dmuid=20111107132412229085&amp;amp;noframes=true&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Installation changes and enhancements in IBM&amp;nbsp;WebSphere Application Server V8.0 for the z/OS platform&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Clarification of fix pack delivery mechanism (PTFs) to ensure fixed service footprint and&amp;nbsp;Support for Installation Manager console mode&lt;br /&gt;&lt;a href="https://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/zOS/WAS_8002_zOS_Installation.pdf?dmuid=20111116163149641261"&gt;https://publib.boulder.ibm.com/infocenter/ieduasst/v1r1m0/topic/com.ibm.iea.was_v8/was/8.0.0.2/zOS/WAS_8002_zOS_Installation.pdf?dmuid=20111116163149641261&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7974006789397088212?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7974006789397088212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/new-features-in-was-8002-and-related.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7974006789397088212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7974006789397088212'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/new-features-in-was-8002-and-related.html' title='New Features in WebSphere Application Server version 8.0.0.2'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7821561020223663166</id><published>2012-01-23T08:38:00.000-08:00</published><updated>2012-01-24T06:38:57.199-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JDBC'/><title type='text'>How to create a non-transactional JDBC connection in WAS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;The ability to create a non-transactional datasource was introduced in WAS 7.0, and thus unavailable in any earlier release.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Answer: Courtesy of Fred Rowe &amp;nbsp;=&amp;gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;In the admin console, navigate to "Resources | JDBC | Data sources"&lt;/li&gt;&lt;li&gt;Select the desired datasource from the list.&lt;/li&gt;&lt;li&gt;Click on the "WebSphere Application Server data source properties" link to the right of the screen under the "Additional Properties" group.&lt;/li&gt;&lt;li&gt;Check the "Non-transactional data source" box.&lt;/li&gt;&lt;li&gt;Restart the server.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-7821561020223663166?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7821561020223663166/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/how-to-create-non-transactional-jdbc.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7821561020223663166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7821561020223663166'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2012/01/how-to-create-non-transactional-jdbc.html' title='How to create a non-transactional JDBC connection in WAS'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1109267728117316578</id><published>2011-12-28T16:01:00.000-08:00</published><updated>2011-12-28T16:25:22.981-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>IBM JVM and JDK -Xdump and -Xtrace options for scenario based problem determination</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are multiple ways of configuring the IBM JDK shipped by WebSphere Application Server to generate &amp;nbsp;WebSphere and JDK trace in situations where you have no control of the application or the server runtime.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Scenario 1:&amp;nbsp;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;In a long running server when an exception occurs  say a javax.transaction.RollbackException, we need to enable a particular WebSphere runtime trace for a period of 1 hour to collect pertinent logs. This allows for collection for logs ONLY and IF  a critical incident occurs in long run and production deployment scenarios.&lt;br /&gt;&lt;br /&gt;Using the JVM dump engine ability to run command lines based on events, you could trigger a command line on, say, the uncaught javax.transaction.RollbackException:&lt;br /&gt;&lt;b&gt;-Xdump:tool:events=uncaught.filter="javax/transaction/RollbackException",exec="command line to run"&lt;/b&gt;&lt;br /&gt;Where we could then use wsadmin to change the trace settings:&lt;br /&gt;&lt;b&gt;exec="sh /opt/IBM/WebSphere/AppServer/bin/wsadmin.sh -lang jython -f setWASTrace.py"&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;For (setWASTrace.py) scripting with WebSphere Application Server see this &lt;a href="http://webspherecommunity.blogspot.com/2010/04/options-for-websphere-application.html" target="_blank"&gt;blog&lt;/a&gt; post.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;&lt;i&gt;Scenario 2:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Print a thread stack trace whenever the method com.ibm.ws.util.ThreadPool$Worker.setStartTime method is called&lt;br /&gt;&lt;b&gt;-Xtrace:print=mt,methods={com/ibm/ws/util/ThreadPool$Worker.setStar tTime},trigger=method{com/ibm/ws/util/ThreadPool$Worker.setStartTime,jstack trace}&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Scenario 3:&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Print JVM entry and exit trace in clear text whenever any code is executed in the sun.net.www.protocol.http and sun.net.www.http packages&lt;br /&gt;&lt;b&gt;-Xtrace:methods={sun/net/www/protocol/http*,sun/net/www/http*},print=mt&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;Scenario 4&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;Take Javacores when CPU Starvation is detected.&amp;nbsp;&lt;span style="text-align: -webkit-auto;"&gt;This will write to a file named cpu_starvation%pid%.txt in the current working directory of the JVM (i.e. the same directory as the javacores) when&amp;nbsp;&lt;/span&gt;&lt;span style="text-align: -webkit-auto;"&gt;CPUStarvationDetectedException is thrown&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: -webkit-auto;"&gt;&lt;b&gt;-Xdump:tool:events=throw,range=1..0,filter=com/ibm/loglistener/CPUStarvationDetectedException,exec="cmd /c c:\cpu_starvation.bat end %pid"&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1109267728117316578?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1109267728117316578/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/jvm-xdump-options-for-scenario-based.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1109267728117316578'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1109267728117316578'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/jvm-xdump-options-for-scenario-based.html' title='IBM JVM and JDK -Xdump and -Xtrace options for scenario based problem determination'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1752043903311185413</id><published>2011-12-20T18:40:00.000-08:00</published><updated>2011-12-20T18:55:25.952-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Perl script for finding invalidations in Dynacache Trace</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: large; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: large; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Dynatrace.pl - Tool for finding invalidations in Dynacache Trace&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This tool searches Dynacache Trace for invalidations and generates two CSV files.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Pre-req&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;This tool requires Perl. ActivePerl can be installed on Windows. The DateTime package is required.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;The log to be parsed needs to contain Dynacache Tracing.&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Usage&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Courier; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;C:\&amp;gt;dynatrace.pl&lt;br /&gt;&lt;br /&gt;usage: C:\dynatrace.pl [OPTIONS] FILE&lt;br /&gt;&lt;br /&gt;Trace should contain this trace:&lt;br /&gt;&amp;nbsp; com.ibm.ws.cache.*=all:com.ibm.ws.drs.*=all&lt;br /&gt;&lt;br /&gt;Tool looks for this line:&lt;br /&gt;&amp;nbsp; Cache.remove() cacheName=baseCache id=Customers cause=1 source=2&lt;br /&gt;&lt;br /&gt;Filtering Options:&lt;br /&gt;&lt;br /&gt;-i&amp;nbsp; | --instance CACHE_INSTANCE&lt;br /&gt;&amp;nbsp; Tool uses the contains reg ex&lt;br /&gt;&lt;br /&gt;-c&amp;nbsp; | --cause CAUSE&lt;br /&gt;&amp;nbsp; Use either number of string&lt;br /&gt;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp; UNSET&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp; DIRECT&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2&amp;nbsp;&amp;nbsp;&amp;nbsp; LRU&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3&amp;nbsp;&amp;nbsp;&amp;nbsp; TIMEOUT&lt;br /&gt;&amp;nbsp;&amp;nbsp; 6&amp;nbsp;&amp;nbsp;&amp;nbsp; INACTIVITY&lt;br /&gt;&amp;nbsp;&amp;nbsp; 7&amp;nbsp;&amp;nbsp;&amp;nbsp; DISK_GARBAGE_COLLECTOR&lt;br /&gt;&amp;nbsp;&amp;nbsp; 8&amp;nbsp;&amp;nbsp;&amp;nbsp; DISK_OVERFLOW&lt;br /&gt;&lt;br /&gt;-s&amp;nbsp; | --source SOURCE&lt;br /&gt;&amp;nbsp;&amp;nbsp; 1 &amp;nbsp;&amp;nbsp; MEMORY&lt;br /&gt;&amp;nbsp;&amp;nbsp; 2 &amp;nbsp;&amp;nbsp; REMOTE&lt;br /&gt;&amp;nbsp;&amp;nbsp; 3 &amp;nbsp;&amp;nbsp; DISK&lt;br /&gt;&amp;nbsp;&amp;nbsp; 4 &amp;nbsp;&amp;nbsp; NOOP&lt;br /&gt;&amp;nbsp;&amp;nbsp; 5 &amp;nbsp;&amp;nbsp; LOCAL&lt;br /&gt;&lt;br /&gt;Output:&lt;br /&gt;&amp;nbsp; - FILE.inv.csv&lt;br /&gt;&amp;nbsp; - FILE.inv.nonum.csv&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FILE.inv.nonum.csv can be used for grouping&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Example Usage&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: Courier; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;C:\&amp;gt;dynatrace.pl --source REMOTE trace.log&lt;br /&gt;-----&amp;gt; Grepping file: trace.log&lt;br /&gt;-----&amp;gt; Filtering by source=REMOTE&lt;br /&gt;-----&amp;gt; Processing: trace.log&lt;br /&gt;-----&amp;gt; Writing trace.inv.csv&lt;br /&gt;-----&amp;gt; Writing trace.inv.nonum.csv&lt;br /&gt;-----&amp;gt; Log file format: Default - short&lt;br /&gt;-----&amp;gt; Process trace.log file. Found 3443 invalidations&lt;br /&gt;-----&amp;gt; Done&lt;/span&gt;&lt;/div&gt;&lt;div dir="ltr" style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;b style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: medium; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="background-color: white; border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #222222; font-family: Arial, sans-serif; font-size: 12px; margin-bottom: 5px; margin-top: 5px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 2px; padding-left: 0px; padding-right: 0px; padding-top: 2px; text-align: -webkit-auto; vertical-align: baseline;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; font-family: 'Tms Rmn'; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; vertical-align: baseline;"&gt;Download the tool from here ---------&amp;gt;&amp;nbsp;&lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/dynatrace_pl.zip" style="border-bottom-width: 0px; border-color: initial; border-image: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; color: #105cb6; cursor: pointer; font-family: Arial, sans-serif; font-size: inherit; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; outline-color: initial; outline-style: initial; outline-width: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; text-decoration: none; vertical-align: baseline;" target="_blank"&gt;Dynatrace.pl&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1752043903311185413?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1752043903311185413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/perl-script-for-finding-invalidations.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1752043903311185413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1752043903311185413'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/perl-script-for-finding-invalidations.html' title='Perl script for finding invalidations in Dynacache Trace'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8894451412651363848</id><published>2011-12-20T11:03:00.000-08:00</published><updated>2011-12-20T11:09:43.421-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='competitive'/><title type='text'>Oracle’s Newly Unveiled WebLogic 12c Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; text-align: left;"&gt;Oracle WebLogic 12 c (c stands for cloud) was announced on December 1st 2011. I would like to use this blog post to differentiate between WAS and the new launched WebLogic 12c. &amp;nbsp;&lt;/span&gt;&lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif; text-align: left;"&gt;Please take &amp;nbsp;an&amp;nbsp;analytic&amp;nbsp;look at the Oracle WebLogic Server 12c announcement&lt;/span&gt;&lt;span style="font-family: inherit; text-align: left;"&gt; &lt;/span&gt;&lt;span style="text-align: left;"&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="http://smarterquestions.org/2011/12/analytical-look-at-the-oracle-weblogic-server-12c-announcement/" style="text-align: left;" target="_blank"&gt;here&lt;/a&gt;&lt;span style="text-align: left;"&gt;. &lt;span style="font-family: 'Helvetica Neue', Arial, Helvetica, sans-serif;"&gt;This article puts to rest any confusion regarding differences between WAS and WebLogic. For a comparison of which is faster WebSphere or WebLogic &lt;a href="http://smarterquestions.org/2011/11/which-is-faster-websphere-or-weblogic/" target="_blank"&gt;see&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&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/6741080397454890783-8894451412651363848?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8894451412651363848/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/oracles-newly-unveiled-weblogic-12c.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8894451412651363848'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8894451412651363848'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/oracles-newly-unveiled-weblogic-12c.html' title='Oracle’s Newly Unveiled WebLogic 12c Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-3655663927713933810</id><published>2011-12-20T10:29:00.000-08:00</published><updated>2011-12-20T10:41:37.809-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='defensive queuing'/><title type='text'>Defensive queuing for website surge protection</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Today's blog post explains a deployment and tuning methodology to protect your application server from a traffic surge.&lt;br /&gt;&lt;br /&gt;In the figure below decreasing values are assigned to the tuning parameters for each&amp;nbsp;of the displayed Web site components. This deliberate reduction in the maximum&amp;nbsp;number of available resources assigned to each successive layer is called the&amp;nbsp;&lt;b&gt;Funnel model methodology&lt;/b&gt;. The benefit of the funnel tuning model is that we&lt;br /&gt;want as many clients to connect to our system as possible, but without&amp;nbsp;overwhelming the resources in each of the layers downstream (for example,&amp;nbsp;database connections). The funnel helps us place these requests into various&amp;nbsp;queues at each layer, where they will wait until the next layer has the capacity to&amp;nbsp;process them.&lt;b&gt; In summary, the funnel model helps us handle bursts of client&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&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;a href="http://1.bp.blogspot.com/-ehktt_AuWCs/TvDSWjWnKYI/AAAAAAAAEjQ/a5R0jWDHRNI/s1600/queue.jpg" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ehktt_AuWCs/TvDSWjWnKYI/AAAAAAAAEjQ/a5R0jWDHRNI/s1600/queue.jpg" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Queue tuning points in a Java EE Web site: the Funnel model&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;For some high level guidance &amp;nbsp;and theory &lt;a href="ttp://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&amp;amp;product=was-nd-dist&amp;amp;topic=rprf_queuetip" target="_blank"&gt;see&lt;/a&gt;.&amp;nbsp;The proportion and ratios &amp;nbsp;of the various queues to various another is very important in determining the queuing that occurs at load. If every incoming request requires a connection to a back-end database then &amp;nbsp;the &amp;nbsp;datasource connection pool &amp;nbsp;should be at least equal in size to the servlet thread pool.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;What is the size of the WebContainer threadpool in relation to the connection pool &amp;nbsp;?&lt;/i&gt;&lt;br /&gt;&lt;i&gt;What should be the IHS thread/process configuration in relation to the WebContainer threadpool ?&lt;/i&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Answer from SWAT guru &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/kevgrig/?lang=en" target="_blank"&gt;Kevin Grigorenko&lt;/a&gt; --&amp;gt;&lt;/div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;The ideal proportion is 1:1 with all wait time on the network, but that assumes all layers perform and scale the same, which is rarely (if ever) the case, so only the general recommendation of 1:&amp;lt;=1 is made. Also, requests are not all the same, so one request may use more memory on a thread than others.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;In general, I recommend customers "play it safe" -- for example, start at the max database concurrency, N, then set WAS WebContainer to 1.5N (could go more since a lot of times requests are just for static content) and then set IHS to 2N.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: blue;"&gt;But a lot of stress testing is required at the boundary of the incoming queues -- the biggest problem is that customers configure the front queue (e.g. IHS) at N but then don't even create a test that sends N concurrent requests in. When that happens (spike in load, DOS attack, etc.), their JVMs or database crash/OOM.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-3655663927713933810?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/3655663927713933810/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/defensive-queuing-for-website-surge.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3655663927713933810'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3655663927713933810'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/defensive-queuing-for-website-surge.html' title='Defensive queuing for website surge protection'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ehktt_AuWCs/TvDSWjWnKYI/AAAAAAAAEjQ/a5R0jWDHRNI/s72-c/queue.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7810218700325950360</id><published>2011-12-20T10:03:00.000-08:00</published><updated>2011-12-20T10:04:16.502-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF'/><title type='text'>Using Java Server Faces 2 with WebSphere Application Server 7</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you want to use newer versions of Java Server Faces &amp;nbsp;i.e. JSF 2.x with WebSphere Application Server 7 or WebSphere Application Server 6.1 take a look at this blog post&amp;nbsp;&lt;a href="http://wasbehindtheglass.blogspot.com/2011/11/myfaces-20-and-websphere-application.html" style="background-color: white; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; text-align: -webkit-auto;" target="_blank"&gt;MyFaces 2.0 and WebSphere Application Server v7&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7810218700325950360?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7810218700325950360/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/using-java-server-faces-2-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7810218700325950360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7810218700325950360'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/12/using-java-server-faces-2-with.html' title='Using Java Server Faces 2 with WebSphere Application Server 7'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-635086545940425110</id><published>2011-11-29T10:24:00.000-08:00</published><updated>2011-11-29T11:02:12.343-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Hottest items in the WebSphere Application Server Dynacache Servlet cache</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: #fff2cc;"&gt;Provided is a DynaCache program that leverages PMI and JMX to output the top 100 templates in the servlet cache in terms of in-memory cache hits.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;b style="background-color: #fff2cc;"&gt;You can use this client program to determine which items in the cache are the most popular.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;When there are a lot of cache-entries &amp;nbsp;and consequently templates in the cachespec.xml this tool will give you a good idea of what is hot or not.&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;The utility of this tool decreases when the cache-entry names are not granular. For instance some cachespec.xml's use the single front controller, with a lot of the cache-ids hanging off a usually a single cache-entry. For now the program/tool only looks at the in-memory cache hits and not disk hits. Java&amp;nbsp;src is included in the jar if you want to modify it :-)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Attached jar contains the src and the class files:&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/12872475/Dynacache-WXS/dc-pmi.jar"&gt;http://dl.dropbox.com/u/12872475/Dynacache-WXS/dc-pmi.jar&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This program requires the template servlet cache PMI group to be enabled.&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-4arkmjOIXMg/TtUkJiS-1KI/AAAAAAAAEi8/ERgpqnBSUI8/s1600/dc-pmi.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-4arkmjOIXMg/TtUkJiS-1KI/AAAAAAAAEi8/ERgpqnBSUI8/s1600/dc-pmi.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Usage:&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;C:\WebSphere7\AppServer\java\bin\java -Djava.ext.dirs=C:\WebSphere7\AppServer\runtimes;c:\WebSphere7\AppServer\lib;C:\WebSphere7\AppServer\java\jre\lib;C:\WebSphere7\AppServer\java\jre\lib\ext;C:\WebSphere7\AppServer\lib com.ibm.ws.sample.DynaCachePMIClient &lt;span class="Apple-style-span" style="color: orange;"&gt;&lt;b&gt;localhost 8881-standalone smitaNode01 server1 baseCache&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Replace C:\WebSphere7\AppServer with your $WAS_HOME &amp;amp;rerun.&lt;/li&gt;&lt;li&gt;Program arguments are in orange.&amp;nbsp;&lt;/li&gt;&lt;li&gt;There is also a test.properties that can be modified inside the jar for more granular control, if you do not want to provide arguments.&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace; font-style: italic;"&gt;&lt;b style="font-style: normal;"&gt;Output:&lt;/b&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;div&gt;host=localhost , port=8881 , connector=SOAP , distributed=false&lt;/div&gt;&lt;div&gt;main: create the adminclient&lt;/div&gt;&lt;div&gt;getAdminClient: hostStr=localhost , portStr=8881&lt;/div&gt;&lt;div&gt;getAdminClient: WasClientPath=C:/WebSphere7/AppServer/profiles/base&lt;/div&gt;&lt;div&gt;*****************************************&lt;/div&gt;&lt;div&gt;DynaCache Automated Tests&lt;/div&gt;&lt;div&gt;&lt;test.properties&gt;&lt;/test.properties&gt;&lt;/div&gt;&lt;div&gt;Host &amp;nbsp; &amp;nbsp; : smita.raleigh.ibm.com&lt;/div&gt;&lt;div&gt;Port &amp;nbsp; &amp;nbsp; : 9081&lt;/div&gt;&lt;div&gt;PMI Port : 8881 connector: SOAP&lt;/div&gt;&lt;div&gt;Cell &amp;nbsp; &amp;nbsp; : smitaNode01Cell&lt;/div&gt;&lt;div&gt;Node &amp;nbsp; &amp;nbsp; : smitaNode01&lt;/div&gt;&lt;div&gt;Server &amp;nbsp; : server1&lt;/div&gt;&lt;div&gt;BaseCacheSize: 2000&lt;/div&gt;&lt;div&gt;Offload to Disk: false&lt;/div&gt;&lt;div&gt;IhsEnabled: true&lt;/div&gt;&lt;div&gt;globalSecurityEnabled: false&lt;/div&gt;&lt;div&gt;IHS Host &amp;nbsp; &amp;nbsp;: localhost&lt;/div&gt;&lt;div&gt;IHS Port &amp;nbsp; &amp;nbsp;: 80&lt;/div&gt;&lt;div&gt;Distributed Caching: false&lt;/div&gt;&lt;div&gt;zOSMode: false&lt;/div&gt;&lt;div&gt;*****************************************&lt;/div&gt;&lt;div&gt;Usage: DynaCachePMIClient [&lt;host&gt; &lt;port&gt; &amp;lt;-distributed|-standalone&amp;gt; &lt;node&gt; &lt;server&gt; &lt;servlet-cache-name&gt;]&lt;/servlet-cache-name&gt;&lt;/server&gt;&lt;/node&gt;&lt;/port&gt;&lt;/host&gt;&lt;/div&gt;&lt;div&gt;Arguments passed in to com.ibm.ws.sample.DynaCachePMIClient&lt;/div&gt;&lt;div&gt;args[0] localhost&lt;/div&gt;&lt;div&gt;args[1] 8881&lt;/div&gt;&lt;div&gt;args[2] -standalone&lt;/div&gt;&lt;div&gt;args[3] smitaNode01&lt;/div&gt;&lt;div&gt;args[4] server1&lt;/div&gt;&lt;div&gt;args[5] baseCache&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Found 1&lt;/div&gt;&lt;div&gt;...node:smitaNode01 match: true&lt;/div&gt;&lt;div&gt;...process:server1 match: true&lt;/div&gt;&lt;div&gt;my perf MBean: WebSphere:name=PerfMBean,process=server1,platform=dynamicproxy,node=smitaNode01,version=7.0.0.19,type=Perf,mbeanIdentifier=PerfMBean,cell=smitaNode01Cell,spec=1.0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Get statistics from all cacheModules&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;stats name=cacheModule.template&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; HitsInMemoryCount[21]=23&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; HitsOnDiskCount[22]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; ExplicitInvalidationCount[23]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; LruInvalidationCount[24]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; TimeoutInvalidationCount[25]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; InMemoryAndDiskCacheEntryCount[26]=4&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; RemoteHitCount[27]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; MissCount[28]=4&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; ClientRequestCount[29]=27&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; DistributedRequestCount[30]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; ExplicitMemoryInvalidationCount[31]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; ExplicitDiskInvalidationCount[32]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; LocalExplicitInvalidationCount[34]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; RemoteExplicitInvalidationCount[35]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; RemoteCreationCount[36]=0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; stats name=/dynacachetests/TimeStamp&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HitsInMemoryCount[21]=11&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HitsOnDiskCount[22]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitInvalidationCount[23]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LruInvalidationCount[24]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TimeoutInvalidationCount[25]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InMemoryAndDiskCacheEntryCount[26]=2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteHitCount[27]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MissCount[28]=2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientRequestCount[29]=13&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DistributedRequestCount[30]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitMemoryInvalidationCount[31]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitDiskInvalidationCount[32]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LocalExplicitInvalidationCount[34]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteExplicitInvalidationCount[35]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteCreationCount[36]=0&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; stats name=/dynacachetests/TimeStamp1&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HitsInMemoryCount[21]=12&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; HitsOnDiskCount[22]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitInvalidationCount[23]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LruInvalidationCount[24]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TimeoutInvalidationCount[25]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; InMemoryAndDiskCacheEntryCount[26]=2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteHitCount[27]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; MissCount[28]=2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ClientRequestCount[29]=14&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DistributedRequestCount[30]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitMemoryInvalidationCount[31]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ExplicitDiskInvalidationCount[32]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; LocalExplicitInvalidationCount[34]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteExplicitInvalidationCount[35]=0&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RemoteCreationCount[36]=0&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;b style="background-color: #d0e0e3;"&gt;TOP 100 TEMPLATES IN THE CACHE baseCache&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b style="background-color: #d0e0e3;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/dynacachetests/TimeStamp1=12&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b style="background-color: #d0e0e3;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;/dynacachetests/TimeStamp=11&lt;/b&gt;&lt;/div&gt;&lt;div style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Dynacache PMI structure:&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-KnDsw95vF0E/TtUmLOlvINI/AAAAAAAAEjE/OuWX1QUIm5U/s1600/dc-pmi-struct.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-KnDsw95vF0E/TtUmLOlvINI/AAAAAAAAEjE/OuWX1QUIm5U/s1600/dc-pmi-struct.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: 'Courier New', Courier, monospace; font-weight: bold;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: 'Courier New', Courier, monospace; font-size: small; font-style: italic;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&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/6741080397454890783-635086545940425110?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/635086545940425110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/hottest-items-in-cache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/635086545940425110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/635086545940425110'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/hottest-items-in-cache.html' title='Hottest items in the WebSphere Application Server Dynacache Servlet cache'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-4arkmjOIXMg/TtUkJiS-1KI/AAAAAAAAEi8/ERgpqnBSUI8/s72-c/dc-pmi.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1860307460113602141</id><published>2011-11-09T16:05:00.000-08:00</published><updated>2011-11-09T16:14:19.093-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>How to tell if a response from WebSphere Application Server has been cached</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;An application that uses Dynacache servlet caching in the past had no indication in the servlet response if data came from the cache or not.&lt;br /&gt;&lt;br /&gt;Starting with WAS version 7.0.0.11 in APAR &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PM01156"&gt;PM01156&lt;/a&gt;,&amp;nbsp; Dynacache adds a header to the response that can be used to determine if the servlet response has been returned from Dynacache. The name of this header is "CACHED_RESPONSE"&lt;br /&gt;&lt;br /&gt;An application may need to take different actions depending on&amp;nbsp; if the data has been cached. &lt;br /&gt;The header &lt;b&gt;CACHED_RESPONSE&lt;/b&gt; has been added to the header of the servlet response and set to true when the servlet output is obtained from the cache.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1860307460113602141?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1860307460113602141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/how-to-tell-if-response-from-websphere.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1860307460113602141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1860307460113602141'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/how-to-tell-if-response-from-websphere.html' title='How to tell if a response from WebSphere Application Server has been cached'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1950244799720436931</id><published>2011-11-09T15:24:00.000-08:00</published><updated>2011-11-09T15:25:01.521-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JSF Servlet'/><title type='text'>ApacheCon 2011 Web Technologies in Java EE6 : Servlet 3.0 and JSF 2.0 Whats New ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Here are the slides from my ApacheCon 2011 talk on web EE technologies &lt;b&gt;JSF 2.0 and Servlet 3.0&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://dl.dropbox.com/u/12872475/Servlet_JSF_apachecon_2011.pdf"&gt;http://dl.dropbox.com/u/12872475/Servlet_JSF_apachecon_2011.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Servlet 3.0 is a new specification that is part of the Java EE 6 technologies. This session will introduce you to the new features of Servlet 3.0 and explain how you can leverage them in your applications. The session will focus on two major themes: ease of development, and improving application scalability. This session is intended for Java EE developers, administrators, and architects.&lt;br /&gt;&lt;br /&gt;JSF 2.0 is a new specification that is part of the Java EE 6 technologies. This session will introduce you to the new features of JSF 2.0 and explain how you can leverage JSF in your Java EE and Portlet applications. The session will focus on three major themes: ease of development, performance improvements, and open source technology adoption. You will learn how the tools for the Application Developer make developing UI easier, as well as the JSF-Dojo component library. This session is intended for Java EE developers, administrators, and architects.  &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/6741080397454890783-1950244799720436931?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1950244799720436931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/apachecon-2011-web-technologies-in-java.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1950244799720436931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1950244799720436931'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/apachecon-2011-web-technologies-in-java.html' title='ApacheCon 2011 Web Technologies in Java EE6 : Servlet 3.0 and JSF 2.0 Whats New ?'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8229957473569331957</id><published>2011-11-06T14:38:00.000-08:00</published><updated>2011-11-06T14:39:41.476-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='servlet caching'/><title type='text'>Dynacache Servlet caching cachespec.xml example</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Often customers ask me for complicated and non trivial examples of a servlet cache specification using Dyncache servlet caching. I have uploaded one on&amp;nbsp; &lt;a href="https://github.com/kelapure/dynacache/blob/master/FVT/ws/code/dynacache.fvt/web/WEB-INF/cachespec.xml"&gt;github&lt;/a&gt; that we use for our testing.&lt;br /&gt;&lt;br /&gt;You can copy paste this cachespec.xml in your application's WEB-INF directory to enable servlet caching of your responses in WebSphere Application Server.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8229957473569331957?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8229957473569331957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/dynacache-servlet-caching-cachespecxml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8229957473569331957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8229957473569331957'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/dynacache-servlet-caching-cachespecxml.html' title='Dynacache Servlet caching cachespec.xml example'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7576164994404612911</id><published>2011-11-03T05:37:00.000-07:00</published><updated>2011-11-03T08:14:38.790-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CDI'/><title type='text'>How to get Contexts &amp; Dependency Injection  (JSR 299)  running on WebSphere Application Server 7.0.0.x</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="color: purple;"&gt;&lt;b&gt;&lt;span style="color: orange;"&gt;Please understand that even with these changes you are losing a lot of WAS value-add and integration of Dependency Integration with Java EE resources in WAS i.e. pojo injection in a servlet/EJB or vice versa. IBM cannot help with support calls on WAS 7 when open web beans or JSF 2 is bundled as part of the application.&amp;nbsp; For dependency injection in WAS we recommend upgrading to WAS 8 which has CDI and JSF2 support baked in. &lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;1. OpenWebBeans (OWB) Download&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;Register for JIRA and watch OpenWebBeans project here&lt;a href="https://issues.apache.org/jira/browse/OWB"&gt; &lt;span id="goog_1198233407"&gt;&lt;/span&gt;https://issues.apache.org/jira/browse/OWB&lt;/a&gt;&lt;br /&gt;Versions &lt;a href="http://www.blogger.com/goog_1198233426"&gt;https://issues.apache.org/jira/browse&lt;/a&gt;&lt;a href="https://issues.apache.org/jira/browse/OWB#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel"&gt;/OWB#selectedTab=com.atlassian.jira.plugin.system.project%3Aversions-panel&lt;/a&gt;&lt;br /&gt;Latest version &amp;nbsp;&amp;nbsp;&amp;nbsp; 1.1.2&amp;nbsp;&amp;nbsp;&amp;nbsp; Release Date: 21/Oct/11&amp;nbsp;&amp;nbsp;&amp;nbsp; OpenWebBeans-1.1.2&lt;br /&gt;Distribution: https://repository.apache.org/content/repositories/releases/org/apache/openwebbeans/openwebbeans-distribution/1.1.2/&lt;br /&gt;Download and unzip &lt;a href="https://repository.apache.org/content/repositories/releases/org/apache/openwebbeans/openwebbeans-distribution/1.1.2/openwebbeans-distribution-1.1.2-binary.tar.gz"&gt;https://repository.apache.org/content/repositories/releases/org/apache/openwebbeans/openwebbeans-distribution/1.1.2/openwebbeans-distribution-1.1.2-binary.tar.gz&lt;/a&gt;&lt;br /&gt;to C:\WebSphere7\AppServer\temp where C:\WebSphere7\AppServer is my WAS_INSTALL_ROOT&lt;br /&gt;C:\WebSphere7\AppServer\temp was chosen as an arbitrary location for download. You can do this in any directory.&lt;br /&gt;After unzip you should see C:\WebSphere7\AppServer\temp\openwebbeans-distribution-1.1.2&lt;br /&gt;&lt;br /&gt;&lt;div style="color: purple;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;2.&amp;nbsp; Build a sample that comes with the OWB Distribution&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;In this scenario I will be building the jsf2sample application.&lt;br /&gt;This examples shows the usage of MyFaces JSF2 + OpenWebBeans .&lt;br /&gt;Before building the application add &lt;listener-class&gt;org.apache.myfaces.webapp.StartupServletContextListener&lt;/listener-class&gt;&lt;br /&gt;to the web.xml of your application if you intend to use JSF2.0. This is how the listener stanza should look like&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;lt;listener&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;listener-class&amp;gt;org.apache.webbeans.servlet.WebBeansConfigurationListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;listener-class&amp;gt;org.apache.myfaces.webapp.StartupServletContextListener&amp;lt;/listener-class&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/listener&amp;gt;&lt;br /&gt;&lt;br /&gt;For this to work you will need to add &lt;br /&gt;&amp;lt;profiles&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;profile&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;apache&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pluginRepositories&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;pluginRepository&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;id&amp;gt;apache.snapshots&amp;lt;/id&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;name&amp;gt;Maven Plugin Snapshots&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;url&amp;gt;http://repository.apache.org/snapshots/&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;releases&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enabled&amp;gt;false&amp;lt;/enabled&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/releases&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;snapshots&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;enabled&amp;gt;true&amp;lt;/enabled&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/snapshots&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/pluginRepository&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/pluginRepositories&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/profile&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/profiles&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;lt;activeProfiles&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;activeProfile&amp;gt;apache&amp;lt;/activeProfile&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;/activeProfiles&amp;gt;&lt;br /&gt;&lt;br /&gt;to your global settings in M2_INSTALL_HOME\conf\settings.xml or&amp;nbsp; user settings from M2_USER_HOME\.m2\settings.xml . To determine these settings locations type "mvn -X"&lt;br /&gt;&lt;br /&gt;You may need to change the pom.xml of the sample application&lt;br /&gt;Replace &lt;relativepath&gt;../pom.xml&lt;/relativepath&gt; in &lt;parent&gt; with&lt;br /&gt;&lt;a href="https://repository.apache.org/content/repositories/releases/org/apache/openwebbeans/openwebbeans/1.1.2/openwebbeans-1.1.2.pom/pom.xml"&gt;&lt;relativepath&gt;https://repository.apache.org/content/repositories/releases/org/apache/openwebbeans/openwebbeans/1.1.2/openwebbeans-1.1.2.pom/pom.xml&lt;/relativepath&gt;&lt;/a&gt;&lt;br /&gt;You may also need to delete myfaces.version xml element from&amp;nbsp;&amp;nbsp; &lt;dependency&gt;&lt;groupid&gt;org.apache.myfaces.core&lt;/groupid&gt; ...&lt;br /&gt;After building the jsf2sample&amp;nbsp; CDI you should see C:\WebSphere7\AppServer\temp\openwebbeans-distribution-1.1.2\samples\jsf2sample\target\jsf2sample.war&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="color: purple; font-size: large;"&gt;3.&amp;nbsp; Configure WAS 7 to use JSF 2.0&lt;/span&gt;&lt;/b&gt;&lt;/dependency&gt;&lt;/parent&gt;&lt;br /&gt;Because WAS 7 comes with its own implementation of JSF we have to follow the steps below for the jsf2sample to leverage JSF 2.0 myfaces correctly.&lt;br /&gt;&lt;br /&gt;3.1 Extract &lt;br /&gt;commons-beanutils-1.8.3.jar, &lt;br /&gt;commons-codec-1.3.jar, &lt;br /&gt;commons-collections-3.2.jar, &lt;br /&gt;commons-digester-1.8.jar, &lt;br /&gt;commons-logging-1.1.1.jar, &lt;br /&gt;myfaces-api-2.0.3.jar, &lt;br /&gt;myfaces-impl-2.0.3.jar from the WEB-INF/lib dir of the application to a common place on your server where you want to store them. &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Say&amp;nbsp; ${WAS_INSTALL_ROOT}\optionalLibraries\Apache\MyFaces..&lt;br /&gt;&lt;br /&gt;3.2 Delete the 7 jar files listed above from the WEB-INF/lib dir of the app&lt;br /&gt;3.3 Open up the myfaces-impl-2.0.x.jar file and remove the files in the META-INF\services\ directory.&lt;br /&gt;3.4 Install js2sample.war&amp;nbsp; application on WAS 7&lt;br /&gt;&lt;br /&gt;3.5 Configuring WAS v7 shared libraries&lt;br /&gt;Next, we configure the JAR files as Isolated Shared libraries. &lt;br /&gt;&lt;br /&gt;Add the following to Environment &amp;gt; Shared Libraries &amp;gt; New&lt;br /&gt;&lt;br /&gt;Name &lt;br /&gt;OWB&lt;br /&gt;&lt;br /&gt;Classpath&lt;br /&gt;&lt;b&gt;${WAS_INSTALL_ROOT}/optionalLibraries/IBM/JSFProviders/WebSphere-MyFaces20-annotation-provider.jar&amp;nbsp; &lt;/b&gt;&lt;i&gt;(this is needed and only available on &amp;amp; after 7.0.0.19&lt;/i&gt;&lt;b&gt;)&lt;/b&gt;&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/commons-beanutils-1.8.3.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/commons-codec-1.3.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/commons-collections-3.2.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/commons-digester-1.8.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/commons-logging-1.1.1.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/myfaces-api-2.0.3.jar&lt;br /&gt;${WAS_INSTALL_ROOT}/optionalLibraries/Apache/owb/myfaces-impl-2.0.3.jar&lt;br /&gt;&lt;br /&gt;Click on the check box for ‘Use an isolated class loader for this shared library’. Click Apply and Save. &lt;br /&gt;&lt;br /&gt;3.6 Associate the shared library with your &lt;br /&gt;Go to Enterprise Applications &amp;gt; jsf2sample_war &amp;gt; Shared library references and add the OWB shared library reference&lt;br /&gt;to both web module&lt;br /&gt;&lt;br /&gt;3.7 If you want at this point you can enable trace for&lt;b&gt; &lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;*=info:org.apache.webbeans*=all&lt;/span&gt;&lt;/b&gt; to get more information about the OWB&lt;br /&gt;and WAS interaction&lt;br /&gt;&lt;br /&gt;3.8 Restart the application server&lt;br /&gt;&lt;br /&gt;&lt;div style="color: purple;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;4. Confirmation&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;After the server has started look for these messages to validate that your CDI application has started&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[11/2/11 15:53:57:141 EDT] 00000008 WebContainerL 2 org.apache.webbeans.web.lifecycle.WebContainerLifecycle debug Deploying scanned beans.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[11/2/11 15:53:57:250 EDT] 00000008 BeansDeployer 2 org.apache.webbeans.config.BeansDeployer debug Found Managed Bean with class name : [org.apache.webbeans.jsf2.HelloJsfBean]&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[11/2/11 15:53:57:391 EDT] 00000008 WebContainerL I org.apache.webbeans.web.lifecycle.WebContainerLifecycle info OpenWebBeans Container has started, it took [313] ms.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;[11/2/11 15:53:59:860 EDT] 00000008 servlet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; I com.ibm.ws.webcontainer.servlet.ServletWrapper init SRVE0242I: [jsf2sample_war] [/jsf2sample] [Faces Servlet]: Initialization successful.&lt;/span&gt;&lt;br /&gt;&lt;div style="color: purple;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="color: purple;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;5. Final Validation&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;Hit &lt;br /&gt;&amp;nbsp;&amp;nbsp; - http://localhost:9081/jsf2sample/counter.xhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shows the AJAX functionality of JSF2 specification.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; - http://localhost:9081/jsf2sample/conversation.xhtml&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Show the usage of JSF conversations.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;where 9081 is the WC_defaulthost port.&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7576164994404612911?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7576164994404612911/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/how-to-get-cdi-running-on-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7576164994404612911'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7576164994404612911'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/11/how-to-get-cdi-running-on-websphere.html' title='How to get Contexts &amp; Dependency Injection  (JSR 299)  running on WebSphere Application Server 7.0.0.x'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2874153275549597070</id><published>2011-10-31T13:47:00.000-07:00</published><updated>2011-10-31T13:55:39.452-07:00</updated><title type='text'>WebSphere Application Server 8.5 alpha overview session at ApacheCon 2011 in  Vancouver BC Thursday November 10</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If you are in Vancouver&amp;nbsp; on Thursday November 10 and interested in listening about the new faster and lighter footprint version of WebSphere Application Server 8.5&amp;nbsp; please come to MacKenzie Room (1st Floor) at 7PM at the&lt;span style="font-size: small;"&gt;&lt;a href="http://www.westinbayshore.com/"&gt;The Westin Bayshore Vancouver&lt;/a&gt;&lt;/span&gt; 1601 Bayshore Drive, Vancouver, BC, V6G 2V4.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Please note that this session is open to ALL users and customers not just ApacheCon attendees.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;See announcement here&lt;br /&gt;&lt;a href="http://na11.apachecon.com/posts/32726152"&gt;http://na11.apachecon.com/posts/32726152&lt;/a&gt; &lt;br /&gt;&lt;a href="https://twitter.com/#%21/ApacheCon/status/131098166429892609"&gt;https://twitter.com/#!/ApacheCon/status/131098166429892609&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This will be a presentation and hands-on demo followed by a Q&amp;amp;A session run by Eric Covener and Rohit Kelapure.&lt;br /&gt;&lt;br /&gt;Hope to see you there!!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2874153275549597070?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2874153275549597070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/websphere-application-server-85-alpa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2874153275549597070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2874153275549597070'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/websphere-application-server-85-alpa.html' title='WebSphere Application Server 8.5 alpha overview session at ApacheCon 2011 in  Vancouver BC Thursday November 10'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1209801346201517264</id><published>2011-10-30T09:50:00.000-07:00</published><updated>2011-10-30T09:52:10.793-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='strategy'/><title type='text'>WebSphere Application Server Mobile, dependency injection, migration and coexistence strategy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;From a &lt;b&gt;mobile &lt;/b&gt;perspective , the new WebSphere Application Server (WAS) Feature Pack for Web 2.0 and Mobile V1.1.0 provides developers with ready-to-use components, simplified, standards based development of mobile web applications, rich Ajax websites, and REST web services. This feature pack can be installed on WAS 7 as well as WAS 8 and contains an implementation of the JAX-RS specification that provides for building RESTful webservices. Feature packs are fully supported by IBM. See whitepaper &lt;a href="http://www-01.ibm.com/common/ssi/rep_ca/3/897/ENUS211-143/ENUS211-143.PDF"&gt;http://www-01.ibm.com/common/ssi/rep_ca/3/897/ENUS211-143/ENUS211-143.PDF&lt;/a&gt; for more details.&lt;br /&gt;&lt;br /&gt;For &lt;b&gt;dependency injection &lt;/b&gt;we strongly recommend using the Contexts and Dependency Injection&amp;nbsp; (CDI) specification , part of the web profile in Java EE 6.&amp;nbsp; CDI provides type safety and loose coupling between POJOs and other EE resources using dependency injection. CDI&amp;nbsp; (JSR 299) provides context and semantics to the lower level Dependency Injection Specification in Java EE6 defined by JSR 330.&amp;nbsp;&amp;nbsp; CDI also provides a way to extend the Java EE platform via extensions which allow customers to build custom components and modify EE in a specification compliant fashion. For a detailed overview&amp;nbsp; and a presentation on CDI see &lt;a href="http://dl.dropbox.com/u/12872475/CDI_Impact_2011_RohitKelapure.pdf"&gt;http://dl.dropbox.com/u/12872475/CDI_Impact_2011_RohitKelapure.pdf&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The CDI specification is currently ONLY available in WebSphere Application Server v8.&amp;nbsp; A less desirable option would be to bundle a CDI implementation such as from the Apache Open WebBeans project&amp;nbsp; in your own application on WAS 7. In this scenario when the CDI is bundled inside the application, IBM will not be able to fix CDI issues as it is a part of the customer application. &lt;br /&gt;For an overview of features in WAS 8 see &lt;a href="http://www-01.ibm.com/common/ssi/rep_ca/9/897/ENUS211-139/ENUS211-139.PDF"&gt;http://www-01.ibm.com/common/ssi/rep_ca/9/897/ENUS211-139/ENUS211-139.PDF&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For &lt;b&gt;migration &lt;/b&gt;to&amp;nbsp; WAS 8&amp;nbsp; see the following resources&lt;br /&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27008724"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27008724&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/vtov.html"&gt;http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/vtov.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WAS 8 can coexist with WAS 7. &lt;/b&gt;The links below will&amp;nbsp; explain mixed cell &lt;b&gt;coexistence&lt;/b&gt;, where you can add servers at a&amp;nbsp; later version of WAS for the new features and keep the production environment stable on an older version WAS.&lt;br /&gt;Running multiple application server versions &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tins_coexistep.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tins_coexistep.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/cmig_coexist.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/cmig_coexist.html&lt;/a&gt;&lt;br /&gt;Setting up Version 8.0 coexistence&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tmig_70coexist70.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tmig_70coexist70.html&lt;/a&gt;&lt;br /&gt;Setting up Version 6.x, Version 7.0 and Version 8.0 coexistence&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tmig_6coexist70.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.migration.nd.doc/info/ae/ae/tmig_6coexist70.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1209801346201517264?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1209801346201517264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/websphere-application-server-mobile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1209801346201517264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1209801346201517264'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/websphere-application-server-mobile.html' title='WebSphere Application Server Mobile, dependency injection, migration and coexistence strategy'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7311112031227410308</id><published>2011-10-25T18:03:00.000-07:00</published><updated>2011-10-25T18:05:26.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='native'/><title type='text'>Excessive DirectByteBuffer  WebSphere Application Server native allocations</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Things that we recommend to customers who&amp;nbsp; are dealing java and native heap issues due to excessive DirectByteBuffer allocations.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Switching AIO to NIO&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21366862"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21366862&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Setting the WebSphere Application Server WebContainer to synchronous mode&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/support/docview.wss?uid=swg21317658"&gt;http://www.ibm.com/support/docview.wss?uid=swg21317658 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Introspection of&amp;nbsp; system dumps &lt;/b&gt;generated on an OOM with IBM Product Extensions into Memory Analyzer Tool: Run the following query &lt;br /&gt;Open Query Browser → IBM Extensions → Java SE Runtime → DirectByteBuffers&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fixed size Major thread pools&lt;/b&gt; (WebContainer, etc.) (min=max)&lt;br /&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21368248"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21368248&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;IBM Health Center has native memory monitoring&lt;/b&gt;&lt;br /&gt;Generic JVM argument -Xhealthcenter&lt;br /&gt;-Xhealthcenter:level=low to not gather profiling data&lt;br /&gt;Support Assistant&amp;nbsp; -Xhealthcenter:level=headless for writing to an HCD file&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Javacore memory analysis script &lt;/b&gt;&lt;br /&gt;get_memory_use.pl&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/aix/library/j-nativememory-aix/index.html"&gt;http://www.ibm.com/developerworks/aix/library/j-nativememory-aix/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Enable explicit GC&lt;/b&gt;&lt;br /&gt;If ExplicitGC has been disabled please enable it&lt;br /&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/6741080397454890783-7311112031227410308?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7311112031227410308/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/excessive-directbytebuffer-native.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7311112031227410308'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7311112031227410308'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/excessive-directbytebuffer-native.html' title='Excessive DirectByteBuffer  WebSphere Application Server native allocations'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4411836565146649090</id><published>2011-10-10T15:29:00.000-07:00</published><updated>2011-10-10T16:58:07.360-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Dynacache JSPs that wil force the creation of a cache instance</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The JSPs below force the creation of a cache instance and allow for invalidation of the cache instance. Drop these JSPs in the&lt;span class="left" style="color: black; font-family: Microsoft Sans Serif; font-size: 8pt;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;/installedApps/Dynamic Cache Monitor.ear/CacheMonitor.war/WEB-INF &lt;/span&gt;directory.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/Invaliddatereqs.jsp"&gt;&lt;span class="system"&gt;https://github.com/kelapure/dynacache/blob/master/scripts/Invaliddatereqs.jsp&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/invalidateIT.jsp"&gt;&lt;span class="system"&gt;https://github.com/kelapure/dynacache/blob/master/scripts/invalidateIT.jsp&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="system"&gt;The primary purpose of these JSPs is to force the creation of the cache instance and make the cache instance show up in the list of cache instances in the CacheMonitor or the Extended Cache Monitor. The JSPs also allow for a specific cache ID to be invalidated. &lt;/span&gt;&lt;br /&gt;&lt;span class="system"&gt;&lt;br /&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/6741080397454890783-4411836565146649090?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4411836565146649090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/dynacache-jsps-that-wil-force-creation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4411836565146649090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4411836565146649090'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/dynacache-jsps-that-wil-force-creation.html' title='Dynacache JSPs that wil force the creation of a cache instance'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8099142946851337101</id><published>2011-10-10T09:36:00.000-07:00</published><updated>2011-10-12T11:24:58.183-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><title type='text'>Migrating to WebSphere Application Server 8</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&amp;nbsp;Excellent Session by WebSphere Application Server 8 Release Architect Dana Price on &lt;a href="http://dl.dropbox.com/u/12872475/migration/2011_09_01_4001_WAS_v8_CAP__Client_Migration_.wmv"&gt;WebSphere application Server 8 Migration&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Another excellent resource on Migration is the &lt;b&gt;Migration Toolkit&lt;/b&gt;. The version-to-version Migration Toolkit information is &lt;a href="http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/vtov.html"&gt;here&lt;/a&gt;.&amp;nbsp; Documentation and the tool itself can be downloaded from that page.&lt;br /&gt;&lt;br /&gt;See Migration resources for WAS&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27008724"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27008724&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8099142946851337101?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8099142946851337101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/migrating-to-websphere-application.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8099142946851337101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8099142946851337101'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/migrating-to-websphere-application.html' title='Migrating to WebSphere Application Server 8'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7639377718432738456</id><published>2011-10-09T08:21:00.000-07:00</published><updated>2011-10-09T08:24:25.547-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='general'/><title type='text'>New lightweight and faster version of WebSphere Application Server now available</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Today, just slightly over 100 days since we eGA'ed WAS V8, we officially introduce the &lt;a href="http://www.ibm.com/wasdev"&gt;WAS 8.5 Open Alpha&lt;/a&gt; to the world.&amp;nbsp; This Alpha introduces for the first time a brand new lightweight tooling and runtime environment that is easier to setup than your phone, starts faster than your TV, and requires less disk space than your digital camera.&lt;br /&gt;&lt;br /&gt;Based on OSGi standards, it is also completely modularized so that it can extended with only the functions and programming models that you require.&amp;nbsp; This new environment gives users the freedom to 'customize' their infrastructure for their specific industry demands.&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: orange; font-size: large;"&gt;WAS 8.5 is lighter, faster and has more features than Tomcat.Check it out, it *will* surprise you what we've done :o)&lt;/span&gt; &lt;a class="twitter-timeline-link" data-display-url="ibm.com/wasdev" data-expanded-url="http://www.ibm.com/wasdev" data-ultimate-url="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/home/?lang=en" href="http://t.co/abFpKPWF" rel="nofollow" target="_blank" title="https://www.ibm.com/developerworks/mydeveloperworks/blogs/wasdev/entry/home/?lang=en"&gt;http://www.ibm.com/wasdev&lt;/a&gt;&lt;br /&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/6741080397454890783-7639377718432738456?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7639377718432738456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/new-lightweight-and-faster-version-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7639377718432738456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7639377718432738456'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/new-lightweight-and-faster-version-of.html' title='New lightweight and faster version of WebSphere Application Server now available'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-3966432594358256581</id><published>2011-10-07T12:31:00.000-07:00</published><updated>2011-10-10T06:46:48.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='profiling'/><title type='text'>IBM WebSphere Application Server JVM free and low overhead profiling tool</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;The IBM Monitoring and Diagnostic Tools for Java - Health Center is a lightweight tool that monitors active IBM Virtual Machines for Java with minimal performance overhead. The Health Center suggests live tuning recommendations for garbage collection, profiles methods including call stacks, and highlights contended locks. &lt;br /&gt;&lt;br /&gt;&lt;i&gt;Please see demo's of IBM Health Center recorded here:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &lt;/b&gt;Overview of Health Center features &lt;a href="http://www.youtube.com/watch?v=5Tcktcl0qxs&amp;amp;feature=related"&gt;http://www.youtube.com/watch?v=5Tcktcl0qxs&amp;amp;feature=related&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. &lt;/b&gt;Install IBM Support Assistant and Health Center&amp;nbsp; &lt;a href="http://www.youtube.com/watch?v=6WjE9U0jvEk"&gt;http://www.youtube.com/watch?v=6WjE9U0jvEk&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. &lt;/b&gt;How to enable a Java application for live monitoring by the Health Center &lt;a href="http://www.youtube.com/watch?v=Hdp0mJ13NLQ&amp;amp;feature=related"&gt;http://www.youtube.com/watch?v=Hdp0mJ13NLQ&amp;amp;feature=related&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. &lt;/b&gt;What's new in version 1.2 of the Health Center &lt;a href="http://www.youtube.com/watch?v=Hdp0mJ13NLQ&amp;amp;feature=related"&gt;http://www.youtube.com/watch?v=Hdp0mJ13NLQ&amp;amp;feature=related&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5. &lt;/b&gt;What's new in version 1.3 of the Health Center&lt;a href="http://www.youtube.com/watch?v=rZrVVCdv7l0"&gt;http://www.youtube.com/watch?v=rZrVVCdv7l0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For the IBM Health Center 1.3 Infocenter see &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp"&gt;http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For starting a Java application with the Health Center agent enabled see &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/topic/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/connecting.html"&gt;http://publib.boulder.ibm.com/infocenter/hctool/v1r0/topic/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/connecting.html&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &lt;br /&gt;For downloading and installing the server side agent i.e.&amp;nbsp; healthcenter.jar  use -&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/topic/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/installingagent.html"&gt;http://publib.boulder.ibm.com/infocenter/hctool/v1r0/topic/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/installingagent.html&lt;/a&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-3966432594358256581?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/3966432594358256581/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/ibm-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3966432594358256581'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3966432594358256581'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/ibm-websphere-application-server.html' title='IBM WebSphere Application Server JVM free and low overhead profiling tool'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5291900489657190196</id><published>2011-10-05T11:59:00.000-07:00</published><updated>2011-10-09T19:33:41.848-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='spring'/><title type='text'>JavaOne 2011 - Java EE 6 vs Spring 3.1  Framework Shootout</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This slide deck will compare Spring and Java EE stack in terms of web frameworks. It will re-examine the motivations behind the Spring framework and explore the emergence of the Java EE programming model to meet the challenges posed. This session will provide insight into when Spring and/or Java EE is appropriate for a building web applications and if they can coexist.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: large;"&gt;Presentation can be downloaded from&amp;nbsp; &lt;/span&gt;&lt;a href="http://db.tt/1q9us2JH"&gt;http://db.tt/1q9us2JH&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-Z9y3hk7UJQw/To3rd_dJ_VI/AAAAAAAADkk/UkUdqPkggrs/s1600/eeVsSpring.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="416" src="http://3.bp.blogspot.com/-Z9y3hk7UJQw/To3rd_dJ_VI/AAAAAAAADkk/UkUdqPkggrs/s640/eeVsSpring.jpg" width="640" /&gt;&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div id="__ss_9623327" style="width: 425px;"&gt; &lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/kelapure/java-e-evsspringshootout" target="_blank" title="Java EE vs Spring Framework "&gt;Java EE vs Spring Framework &lt;/a&gt;&lt;/strong&gt; &lt;iframe frameborder="0" height="355" marginheight="0" marginwidth="0" scrolling="no" src="http://www.slideshare.net/slideshow/embed_code/9623327" width="425"&gt;&lt;/iframe&gt; &lt;div style="padding: 5px 0pt 12px;"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/kelapure" target="_blank"&gt;kelapure&lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-5291900489657190196?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5291900489657190196/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/java-ee-6-vs-spring-31-shootout.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5291900489657190196'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5291900489657190196'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/java-ee-6-vs-spring-31-shootout.html' title='JavaOne 2011 - Java EE 6 vs Spring 3.1  Framework Shootout'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-Z9y3hk7UJQw/To3rd_dJ_VI/AAAAAAAADkk/UkUdqPkggrs/s72-c/eeVsSpring.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8087881823269485722</id><published>2011-10-05T11:50:00.001-07:00</published><updated>2011-10-05T12:01:11.308-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>JavaOne 2011 - Server Resiliency Production Debugging session</title><content type='html'>Troubleshooting issues such as OutOfMemoryErrors, Performance problems and various exceptions are a common task for anyone developing or deploying an application. This session will explain techniques to make the server more resilient and using open source IBM tools like the Monitoring and Diagnostic Tools for Java, Extended Memory Analyzer Tool and the Support Assistant to learn how to diagnose these common problems types. &lt;div style="width:425px" id="__ss_9562562"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/kelapure/debugging-java-deployments2" title="Debugging java deployments_2"&gt;Debugging java deployments_2&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse9562562" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=debuggingjavadeployments2-111005134828-phpapp02&amp;stripped_title=debugging-java-deployments2&amp;userName=kelapure" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse9562562" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=debuggingjavadeployments2-111005134828-phpapp02&amp;stripped_title=debugging-java-deployments2&amp;userName=kelapure" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/kelapure"&gt;kelapure&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8087881823269485722?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8087881823269485722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/javaone-2011-server-resiliency.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8087881823269485722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8087881823269485722'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/10/javaone-2011-server-resiliency.html' title='JavaOne 2011 - Server Resiliency Production Debugging session'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4845116029453769197</id><published>2011-09-27T11:39:00.000-07:00</published><updated>2011-09-27T11:41:52.851-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>WebSphere Application Server  8.0.0.1 is now OUT</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;In case you missed it WebSphere Application Server V8.0 Fix Pack 1 NOW AVAILABLE!&lt;br /&gt;&lt;a href="http://t.co/3w9K7x0A%20"&gt;http://t.co/3w9K7x0A &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is an absolute MUST-HAVE if you are deploying your application to WAS 8.&lt;br /&gt;List of fixes is found &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27022958"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27022958&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;There are a lot of fixes and enhancements in multiple component areas.&lt;br /&gt;This is absolutely critical if you are having any issues with your WAS 8.0.0.0 install&lt;br /&gt;&lt;br /&gt;Some of the fixes to skip directory and zip archive scanning will speedup app deploy and reduce footprint.&lt;br /&gt;There are a lot of enhancements and ease of use fixes like these in 8.0.0.1.&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Go get it today!&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4845116029453769197?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4845116029453769197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-8001-is.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4845116029453769197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4845116029453769197'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-8001-is.html' title='WebSphere Application Server  8.0.0.1 is now OUT'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6954257504782003370</id><published>2011-09-27T11:30:00.000-07:00</published><updated>2011-09-27T11:30:00.475-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tuning'/><title type='text'>WebSphere Application Server SIBus tuning for production deployments</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="width:425px" id="__ss_9446891"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/kelapure/sibus-tuning-for-production-websphere-application-server" title="SIBus Tuning for production WebSphere Application Server " target="_blank"&gt;SIBus Tuning for production WebSphere Application Server &lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9446891" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/kelapure" target="_blank"&gt;kelapure&lt;/a&gt; &lt;/div&gt; &lt;/div&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/6741080397454890783-6954257504782003370?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6954257504782003370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-sibus.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6954257504782003370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6954257504782003370'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-sibus.html' title='WebSphere Application Server SIBus tuning for production deployments'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7781382542667440937</id><published>2011-09-27T11:08:00.000-07:00</published><updated>2011-09-28T08:43:43.618-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='admin'/><title type='text'>Increasing memory for wsadmin task</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Customers use the wsadmin task (ant XML or &lt;a href="http://publib.boulder.ibm.com/infocenter/wbihelp/v6rxmx/index.jsp?topic=%2Fcom.ibm.wasee.doc%2Finfo%2Fee%2Fjavadoc%2Fee%2Fcom%2Fibm%2Fwebsphere%2Fant%2Ftasks%2FWsAdmin.html"&gt;programatically&lt;/a&gt;) to execute the WebSphere command-line administration tool with the specified arguments.&lt;br /&gt;&lt;br /&gt;To use this task, add the following to your Ant build.xml &lt;span style="background-color: white;"&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&amp;lt;taskdef name="&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wsadmin&lt;/span&gt;" classname="&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;com.ibm.websphere.ant.tasks.WsAdmin&lt;/span&gt;"/&amp;gt; &lt;br /&gt;&lt;br /&gt;WsAdmin ant task supported arbitrary -X arguments to the task's forked JVM&amp;nbsp; by directly adding them to the build.xml :&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;wsadmin script="${basedir}/script.py"&amp;gt; ...&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &amp;lt;arg value="blah" /&amp;gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp; &lt;span style="color: red;"&gt;&amp;lt;jvmarg value="-XX:MaxPermSize=128m"/&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;lt;/wsadmin&amp;gt;&lt;/div&gt;&lt;br /&gt;You can also do this programatically directly by using&amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;WsAdmin &lt;/span&gt;task. You will need to setup classpath similar to how it is set for the wsadmin ant task. Modify WAS_HOME/bin/ws_ant.bat/sh script to setup the classpath for your custom task.&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;WsAdmin task = new WsAdmin();&lt;br /&gt;if (forceConnType != null) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println("forcing connection type to: "+forceConnType);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; task.setConntype(this.forceConnType);&lt;br /&gt;} else {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; task.setConntype(this.conntype);&lt;br /&gt;}&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;task.setLang(this.lang);&lt;br /&gt;task.setUser(this.getWasuser());&lt;br /&gt;task.setPassword(this.getWaspassword());&lt;br /&gt;task.setScript(jFile.getAbsolutePath());&lt;b&gt;&lt;/b&gt;&lt;br /&gt;if (com.ibm.ws.ant.utils.OsUtils.isSolaris()&lt;br /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; || com.ibm.ws.ant.utils.OsUtils.isHPUX()) {&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: #38761d;"&gt;//increase permgen space on solaris/hp-ux&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; task.createJvmarg().setValue("-XX:MaxPermSize=512M");&lt;/b&gt;&lt;br /&gt;}&lt;b&gt; &lt;/b&gt;&lt;br /&gt;task.setJvmMaxMemory("1024M");&lt;br /&gt;task.execute();&lt;/div&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/6741080397454890783-7781382542667440937?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7781382542667440937/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/increasing-memory-for-wsadmin-task.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7781382542667440937'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7781382542667440937'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/increasing-memory-for-wsadmin-task.html' title='Increasing memory for wsadmin task'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6401908391649276255</id><published>2011-09-16T08:28:00.001-07:00</published><updated>2011-09-19T11:00:27.305-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='serviceability'/><title type='text'>FFDC browser tool by David Cohen</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/downloads/ffdc_browser.html"&gt;http://www.ibm.com/developerworks/websphere/downloads/ffdc_browser.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Provides greater accessibility to FFDC logs in an organized and easy to use fashion.&lt;br /&gt;&lt;br /&gt;Simplifies the process of locating, accessing and displaying FFDC log contents.&lt;br /&gt;&amp;nbsp;Works in both distributed and zOS environments.&lt;br /&gt;&amp;nbsp;Works in Base, ND, Clustered and Secure topologies.&lt;br /&gt;&amp;nbsp;Direct access from any web browser, provides remote access to the WAS log files-&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;No need to incur the overhead of more heavyweight tools to view logs, e.g. admin console&lt;/li&gt;&lt;/ul&gt;Realtime tool: dynamically accesses content from live WAS system&lt;br /&gt;&amp;nbsp;Very small application footprint: solely servlet based&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Can be run during stress with minimal or no impact&lt;/li&gt;&lt;/ul&gt;Developed out of a need to get to FFDC and system log files without the use of the admin console, FTP clients or complicated file system navigation.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-6401908391649276255?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6401908391649276255/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/ffdc-browser-tool-by-david-cohen.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6401908391649276255'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6401908391649276255'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/ffdc-browser-tool-by-david-cohen.html' title='FFDC browser tool by David Cohen'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2309869650095300788</id><published>2011-09-16T08:05:00.000-07:00</published><updated>2011-09-16T08:05:03.347-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Dynacache Utility script to clear cache instances</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;I have uploaded an utility Dynacache management &lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/clearDynaCaches_ProductionV2_test.py"&gt;script &lt;/a&gt;to &lt;a href="https://github.com/kelapure/"&gt;github &lt;/a&gt;that runs on the Deployment Manager, and for each application server on each node, calls clearCache for a set of cache instances. This script can probably run at midnight when you want to flush your entire cache.&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: yellow;"&gt;Kevin Grigorenko from the WAS SWAT team wrote this script. Thanks Kevin! &lt;/span&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-2309869650095300788?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2309869650095300788/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/dynacache-utility-script-to-clear-cache.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2309869650095300788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2309869650095300788'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/dynacache-utility-script-to-clear-cache.html' title='Dynacache Utility script to clear cache instances'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2982114080822908650</id><published>2011-09-14T08:59:00.000-07:00</published><updated>2011-09-27T11:30:48.513-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SAMPLES'/><title type='text'>Good documentation on Installing/Configuring the sample applications for WAS8.0</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Accessing the samples --&amp;gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.samples.doc/info/ae/ae/welcome_samples.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.samples.doc/info/ae/ae/welcome_samples.html&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The samples currently available in the Samples section of the &lt;a href="http://www14.software.ibm.com/webapp/wsbroker/redirect?version=matt&amp;amp;product=was-nd-mp&amp;amp;topic=welcome_samples"&gt;WAS V8 Information Center &lt;/a&gt;demonstrate the following technologies: Service Component Architecture (SCA), Communications Enabled Applications (CEA), OSGi applications, XML, and Internationalization service&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;For instance servlet 3.0 sample can be found here&lt;/div&gt;&lt;div&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.samples.doc/info/ae/ae/sample_servlet30.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.samples.doc/info/ae/ae/sample_servlet30.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table cellpadding="0" cellspacing="0" class="tr-caption-container" style="float: left; margin-right: 1em; text-align: left;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-MDYwWQCH0-0/TnDPQYc29RI/AAAAAAAAC0I/RaiUlYwM73I/s1600/4.JPG" imageanchor="1" style="clear: left; margin-bottom: 1em; margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-MDYwWQCH0-0/TnDPQYc29RI/AAAAAAAAC0I/RaiUlYwM73I/s1600/4.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Samples available&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Here is a nice article by Philippa Rhodes that gives an overview of the v8 samples:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/library/techarticles/1107_rhodes/1107_rhodes.html?ca=drs-"&gt;http://www.ibm.com/developerworks/websphere/library/techarticles/1107_rhodes/1107_rhodes.html?ca=drs-&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Here is the v8.0 link to samples (you can access this by the above link as well):&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/com.ibm.websphere.samples.doc/info/ae/ae/welcome_samples.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/com.ibm.websphere.samples.doc/info/ae/ae/welcome_samples.html&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2982114080822908650?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2982114080822908650/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/good-documentation-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2982114080822908650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2982114080822908650'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/good-documentation-on.html' title='Good documentation on Installing/Configuring the sample applications for WAS8.0'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-MDYwWQCH0-0/TnDPQYc29RI/AAAAAAAAC0I/RaiUlYwM73I/s72-c/4.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7592288309004643089</id><published>2011-09-14T08:50:00.000-07:00</published><updated>2011-09-14T08:50:01.644-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Sample code for exercising Dynacache DistributedMap</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A lot of times customers ask me for sample code to drive a Dynacache DistributedMap.&lt;br /&gt;&lt;br /&gt;I have put up one such sample on &lt;a href="https://github.com/kelapure"&gt;github &lt;/a&gt;that&amp;nbsp;illustrates the common and basic operations with Dynacache DistributedMap i.e. the WebSphere Application Server's default POJO cache.&lt;br /&gt;&lt;a href="https://github.com/kelapure/dynacache/blob/master/com/ibm/ws/cache/sample/TestDistributedMap.java"&gt;https://github.com/kelapure/dynacache/blob/master/com/ibm/ws/cache/sample/TestDistributedMap.java&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Configuring a Dynacache distributed map is covered under&amp;nbsp;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tdyn_distmap.html"&gt;Using the DistributedMap and DistributedObjectCache interfaces for the dynamic cache&lt;/a&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Best practices and tuning of Dynacache and DRS for replication have been covered in a previous blog post here&amp;nbsp;&lt;a href="http://wasdynacache.blogspot.com/2011/07/tuning-dynacache-and-drs.html"&gt;http://wasdynacache.blogspot.com/2011/07/tuning-dynacache-and-drs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7592288309004643089?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7592288309004643089/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/sample-code-for-exercising-dynacache.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7592288309004643089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7592288309004643089'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/sample-code-for-exercising-dynacache.html' title='Sample code for exercising Dynacache DistributedMap'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1889184047939903292</id><published>2011-09-13T12:51:00.000-07:00</published><updated>2011-09-13T12:59:39.083-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data access'/><title type='text'>IBM WebSphere security questions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"&gt;Today's blog post is a gem from WAS Senior Software Engineer &lt;span class="Apple-style-span" style="background-color: yellow;"&gt;Fred Rowe&lt;/span&gt;. &lt;/span&gt;&lt;span class="Apple-style-span" style="color: blue;"&gt;We often get questions related to malicious data source access. Some these include how &amp;nbsp;users with&amp;nbsp;wadmin can access be prevented from gathering or pulling datasource credentials for database access. How to &amp;nbsp;segment the access from intentional and un-intential access to customer data.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;There are two primary ways to secure WebSphere datasources, each method has a user name and password associated with it. &amp;nbsp;In both cases, if displayed from either the admin console or wsadmin, the password value is either:&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;obscured by dots&lt;/li&gt;&lt;li&gt;obscured by asterisks&lt;/li&gt;&lt;li&gt;displayed in encoded form&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b&gt;1. Using datasource custom properties:&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;This method is vendor-specific based on the JDBC provider associated with the datasource. &amp;nbsp;Typically, JDBC drivers support the custom properties userand password. If a custom property named password is created, it's value will be obscured in the WAS admin console&lt;b&gt; Data sources &amp;gt; &lt;i&gt;datasource_name&lt;/i&gt; &amp;gt; Custom properties &lt;/b&gt;list page as follows:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-hezFP_TwQns/Tm-yG20wUxI/AAAAAAAACz8/KSQKC8Tt5Yc/s1600/1.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-hezFP_TwQns/Tm-yG20wUxI/AAAAAAAACz8/KSQKC8Tt5Yc/s1600/1.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Note that the property named pwd is not obscured. &amp;nbsp;Similarly, on the &amp;nbsp;WAS admin console &lt;b&gt;Data sources &amp;gt; &lt;i&gt;datasource_name&lt;/i&gt; &amp;gt; Custom properties &amp;gt; password&lt;/b&gt; details page, the XOR-encoded version of the password is displayed:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-G6PNWb1zbuc/Tm-yq9IZbdI/AAAAAAAAC0A/ZROoulnyJL4/s1600/2.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-G6PNWb1zbuc/Tm-yq9IZbdI/AAAAAAAAC0A/ZROoulnyJL4/s1600/2.JPG" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;And finally, if the password property is examined from wsadmin, the XOR-encoded version of the password is displayed:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wsadmin&amp;gt;pwd = AdminConfig.getid("/DataSource:datasource_name/J2EEResourcePropertySet:/J2EEResourceProperty:password/")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wsadmin&amp;gt;print AdminConfig.showAttribute(pwd, "value")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;{xor}MiYvPiwsKDAtOw==&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;2. Using JAAS - J2C authentication aliases:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;If a JAAS auth alias is created for the datasource, the password of the alias is obscured on the WAS admin console &lt;b&gt;Data sources &amp;gt; &lt;i&gt;&amp;nbsp;datasource_name&lt;/i&gt; &amp;gt; JAAS - J2C authentication data &amp;gt; myAlias&lt;/b&gt; details page:&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-JEyI1zkRCgw/Tm-zeP0TCMI/AAAAAAAAC0E/0uA6izEDsg4/s1600/3.JPG" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://4.bp.blogspot.com/-JEyI1zkRCgw/Tm-zeP0TCMI/AAAAAAAAC0E/0uA6izEDsg4/s400/3.JPG" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Similarly, if the value of the password attribute of an auth alias object is examined from wsadmin:&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wsadmin&amp;gt;print AdminConfig.getid("/JAASAuthData:/")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;wsadmin&amp;gt;print AdminConfig.showAttribute(authAlias, "password")&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;*****&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1889184047939903292?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1889184047939903292/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/ibm-websphere-security-questions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1889184047939903292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1889184047939903292'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/ibm-websphere-security-questions.html' title='IBM WebSphere security questions'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-hezFP_TwQns/Tm-yG20wUxI/AAAAAAAACz8/KSQKC8Tt5Yc/s72-c/1.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5626854399865812950</id><published>2011-09-06T16:11:00.000-07:00</published><updated>2012-01-23T14:49:11.168-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='failover'/><title type='text'>Resource Workload Routing in WebSphere Application Server 8</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;WebSphere Application Server V8 adds improved high availability                        (HA) support in several scenarios, including: &lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Resource failover and retry logic for relational data sources and JCA connection factories, where the administrator can tailor the data sources and connection factory configuration based on application need to specify:                                             &lt;ul&gt;&lt;li&gt;Number of connection retries.&lt;/li&gt;&lt;li&gt;Alternate/fail-over resource.&lt;/li&gt;&lt;li&gt;Pre-population of alternate/fail-over resource connection pool.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;Resource Workload Routing is a new feature exclusive to the WebSphere Application Server that enables applications to easily recover from &lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;resourc&lt;/span&gt;e&lt;/span&gt;outages, such as database failures, without requiring you to embedalternate &lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;resourc&lt;/span&gt;e&lt;/span&gt; and configuration information.&lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/cdat_dsfailover.html?resultof=%22%52%65%73%6f%75%72%63%65%22%20%22%72%65%73%6f%75%72%63%22%20%22%77%6f%72%6b%6c%6f%61%64%22%20%22%72%6f%75%74%69%6e%67%22%20%22%72%6f%75%74%22%20" target="_blank"&gt;Resource workload routing&lt;/a&gt; includes data source and connection factory fail over andsubsequent fail back from a predefined alternate or backup &lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;resourc&lt;/span&gt;e&lt;/span&gt;. You can tailor the&lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;resourc&lt;/span&gt;e&lt;/span&gt; fail over and failback flexible configuration options tomeet your environment-specific and application needs.&lt;span class="stealth" id="vcc_sp_span_31" tabindex="10"&gt;new&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="stealth" id="vcc_sp_span_31" tabindex="10"&gt;On distributed systems, you can enable &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v8r0/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/welcome_ndmp.html"&gt;resource routing&lt;/a&gt; by configuring an alternate resource.&lt;br /&gt;A data source and connection factory can fail over and fail back automatically when a specified or default failure threshold value is reached. When fail over occurs, the application switches from using the primary resource to using the alternate resource. Fail back occurs when the application switches back from the alternate resource to the primary resource.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="stealth" id="vcc_sp_span_31" tabindex="10"&gt; &lt;/span&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="stealth" id="vcc_sp_span_31" tabindex="10"&gt;Implementers of Resource Adapters take note - &lt;/span&gt;&lt;/i&gt;Fail over works with non-relational&lt;span class="resultofText" name="resultofMatch"&gt;&lt;span class="resultofText" name="resultofMatch"&gt;resourc&lt;/span&gt;e&lt;/span&gt; adapters that have a ManagedConnection object that implementsa testConnection method.&lt;br /&gt;&lt;br /&gt;&lt;span style="background-color: orange;"&gt;Instead of rolling your own architecture and policy for outbound resource fail over please leverage this&amp;nbsp; in-built resource routing High Availability function to prevent disruption to end users.&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span class="stealth" id="vcc_sp_span_31" tabindex="10"&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/6741080397454890783-5626854399865812950?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5626854399865812950/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/resource-workload-routing-in-websphere.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5626854399865812950'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5626854399865812950'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/resource-workload-routing-in-websphere.html' title='Resource Workload Routing in WebSphere Application Server 8'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7900664583233024987</id><published>2011-09-02T14:58:00.000-07:00</published><updated>2011-09-02T15:02:18.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WSTE'/><title type='text'>WebSphere Application Server- Windows native memory leak</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Please look at this excellent WSTE session by Kevin Grigorenko that covers native memory issues for WebSphere Application Server, particularly native OutOfMemoryErrors and leaks on Windows.&lt;br /&gt;&lt;br /&gt;It covers theory, detecting and monitoring, isolating and avoiding, and finally analyzing leaks with UMDH, LeakDiag, DebugDiag, VMMap and windbg. &lt;br /&gt;&lt;br /&gt;Windows Native Memory Problem Determination Techniques and Tools for WebSphere Application Server - &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27021906"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27021906&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;To replay the recording of this 46 minutes Webcast, click on &lt;a href="http://public.dhe.ibm.com/software/websphere/techexchange/Jun-22-2011-Grigorenko.mp3"&gt;Download Audio&lt;/a&gt; (5.0MB - audio in MP3 format) then open the &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27021906&amp;amp;aid=1"&gt;PDF file &lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7900664583233024987?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7900664583233024987/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-windows.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7900664583233024987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7900664583233024987'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-windows.html' title='WebSphere Application Server- Windows native memory leak'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1162682374709565007</id><published>2011-09-02T14:51:00.000-07:00</published><updated>2011-09-02T14:51:31.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>WebSphere Application Server - How to display SQL statements executed from J2EE applications using minimal tracing</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21496047"&gt;Is there a minimal trace string to view SQL statements being executed by  an application running on WebSphere Application Server?&lt;/a&gt;&lt;br /&gt;&lt;div style="background-color: yellow;"&gt;&lt;/div&gt;&lt;div style="background-color: yellow;"&gt;&lt;/div&gt;&lt;h2 style="background-color: yellow;"&gt;Answer&lt;/h2&gt;If the application uses java.sql.PreparedStatement objects, then there is a relatively lightweight way to obtain the SQL statements being executed. PreparedStatement objects are often used in applications because of their performance over regular java.sql.Statement objects. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To view the SQL statements being executed using a PreparedStatement object, enable WebSphere tracing for the class that implements java.sql.PreparedStatement:&lt;b&gt;com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement&lt;/b&gt;. The corresponding trace specification is: &lt;b style="color: red;"&gt;com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement=all&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Examples:&lt;/b&gt; &lt;br /&gt;Consider the following sample SQL INSERT statement being executed from the application using a java.sql.PreparedStatement:&lt;br /&gt;&lt;br /&gt;String insertCoffeeSaleString &lt;br /&gt;= "INSERT INTO SALES(ITEM_NAME,QUANTITY,PRICE) values('Coffee',5,1.25)";&lt;br /&gt;PreparedStatement insertCoffeeSale &lt;br /&gt;= connection.prepareStatement(insertCoffeeSaleString);&lt;br /&gt;insertCoffeeSale.executeUpdate();&lt;br /&gt;&lt;br /&gt;With &lt;b&gt;com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement=all&lt;/b&gt; trace enabled, the following output can be seen when the Prepared Statement is initialized:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Trace: 2011/04/07 14:37:12.100 01 t=6C9020 c=UNK key=P8 (13007002)&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp; &amp;nbsp;ThreadId: 0000002b&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp; &amp;nbsp;FunctionName: &lt;init&gt;&lt;/init&gt;&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp; &amp;nbsp;SourceId: com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp; &amp;nbsp;Category: FINER&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp; &amp;nbsp;ExtendedMessage: Entry; org.apache.derby.impl.jdbc.EmbedPreparedStatement30@401c401c, com.ibm.ws.rsadapter.jdbc.WSJdbcConnection@3&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; &amp;nbsp;c4a3c4a, HOLD CURSORS OVER COMMIT (1), &lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;PSTMT:&lt;/b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;INSERT INTO SALES (ITEM_NAME,QUANTITY,PRICE) values('Coffee',5,1.25)&amp;nbsp;1003 1007 1 0 0&lt;/span&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/6741080397454890783-1162682374709565007?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1162682374709565007/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-how-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1162682374709565007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1162682374709565007'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/09/websphere-application-server-how-to.html' title='WebSphere Application Server - How to display SQL statements executed from J2EE applications using minimal tracing'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8199044561219097612</id><published>2011-08-31T12:07:00.000-07:00</published><updated>2011-08-31T12:09:56.590-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='configuration'/><title type='text'>wsadmin script  to configure a data source for WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span style="font-size: large;"&gt;Do you know how to configure JDBC, DataSources, etc using &lt;a href="http://www.ibm.com/developerworks/websphere/library/samples/SampleScripts.html"&gt;wsadminlib.py&lt;/a&gt; library ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See: &lt;a href="https://cwiki.apache.org/ARCHIVA/archiva-on-websphere-61.html"&gt;https://cwiki.apache.org/ARCHIVA/archiva-on-websphere-61.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Specifically, the file, createArchivaServer.py, from: &lt;a href="https://cwiki.apache.org/ARCHIVA/archiva-on-websphere-61.data/createArchivaServer.py"&gt;https://cwiki.apache.org/ARCHIVA/archiva-on-websphere-61.data/createArchivaServer.py&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;And this is the relevant sections from the file:&lt;/i&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Specify the DB2 details.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2DriverPath = "/usr/opt/db2_08_01/java"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2Alias = "DB2ArchivaUserId"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2UserId = "db2inst1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2Password = "db2inst1"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # JNDI details&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2DatabaseName = "ARCHIVA"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2DriverType = "4"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2ServerName = "localhost"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; db2PortNumber = "50000"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;and&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Set the WebSpere Variable needed to for the universal driver. In this case, we just set it for&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# the individual server. To set it for the entire node, just remove the serverName variable completely.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Setting WebSphere Variable"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setWebSphereVariable( "DB2UNIVERSAL_JDBC_DRIVER_PATH", db2DriverPath, nodeName, serverName)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Create a JAAS entry for the userid/password for the DB2 datasource.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# If the entry already exists, the function simply returns.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;createJAAS(db2Alias, db2UserId, db2Password)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Create the DB2 Universal Driver&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Creating the DB2 Universal Driver Provider"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;serverId = getServerId(nodeName,serverName)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;jdbcProvider = createJdbcProvider ( serverId, "DB2 Universal JDBC Driver Provider", "${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc.jar;${UNIVERSAL_JDBC_DRIVER_PATH}/db2cc_license_cu.jar;${DB2UNIVERSAL_JDBC_DRIVER_PATH}/db2jcc_license_cisuz.jar", "", "com.ibm.db2.jcc.DB2ConnectionPoolDataSource", "Non-XA DB2 Universal JDBC Driver-compliant Provider. Datasources created under this provider support only 1-phase commit processing except in the case where driver type 2 is used under WAS z/OS. On WAS z/OS, driver type 2 uses RRS and supports 2-phase commit processing." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Created: jdbcProvider = " + jdbcProvider&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Create the JNDI Data Sources&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# First, jdbc/users&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Creating the Users Database Data Source"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;usersDataSource = createDataSource( jdbcProvider, "Users Database", "jdbc/users", "jdbc/users", 10, db2Alias, "com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper" )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Created: usersDataSource = " + usersDataSource&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( usersDataSource, "databaseName", "java.lang.String", db2DatabaseName, "The name of the database." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( usersDataSource, "driverType", "java.lang.Integer", db2DriverType, "The JDBC connectivity-type of a data source." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( usersDataSource, "serverName", "java.lang.String", db2ServerName, "The TCP/IP address or host name for the DRDA server." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( usersDataSource, "portNumber", "java.lang.Integer", db2PortNumber, "The TCP/IP port number where the DRDA server resides." )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;# Then, jdbc/archiva&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Creating the Archiva Database Data Source"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;archivaDataSource = createDataSource( jdbcProvider, "Archiva Database", "jdbc/archiva", "jdbc/archiva", 10, db2Alias, "com.ibm.websphere.rsadapter.DB2UniversalDataStoreHelper" )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;print "Created: archivaDataSource = " + archivaDataSource&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( archivaDataSource, "databaseName", "java.lang.String", db2DatabaseName, "The name of the database." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( archivaDataSource, "driverType", "java.lang.Integer", db2DriverType, "The JDBC connectivity-type of a data source." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( archivaDataSource, "serverName", "java.lang.String", db2ServerName, "The TCP/IP address or host name for the DRDA server." )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;setJ2eeResourceProperty( archivaDataSource, "portNumber", "java.lang.Integer", db2PortNumber, "The TCP/IP port number where the DRDA server resides." )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: yellow;"&gt;Courtesy IBMer Chris Graham from down under.&lt;/div&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/6741080397454890783-8199044561219097612?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8199044561219097612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/wsadmin-script-to-configure-data-source.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8199044561219097612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8199044561219097612'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/wsadmin-script-to-configure-data-source.html' title='wsadmin script  to configure a data source for WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2038215530902834593</id><published>2011-08-30T13:15:00.000-07:00</published><updated>2011-08-30T13:15:25.897-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><title type='text'>Non standard performance tuning for the WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Links for some non standard and standard performance tuning of the WebSphere Application Server&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_183267769"&gt;http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_183267769"&gt;http://wasdynacache.blogspot.com/2011/08/tune-your-websphere-application-server.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/goog_183267769"&gt;http://wasdynacache.blogspot.com/2011/05/websphere-application-server-top-10.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wasdynacache.blogspot.com/2010/03/pimp-my-websphere-reduce-websphere.html"&gt;http://wasdynacache.blogspot.com/2010/03/pimp-my-websphere-reduce-websphere.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wasdynacache.blogspot.com/2011/04/websphere-application-server-walk-in.html"&gt;http://wasdynacache.blogspot.com/2011/04/websphere-application-server-walk-in.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://wasdynacache.blogspot.com/2011/05/websphere-application-server.html"&gt;http://wasdynacache.blogspot.com/2011/05/websphere-application-server.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://webspherecommunity.blogspot.com/2011/05/tuning-for-idleness-service.html"&gt;http://webspherecommunity.blogspot.com/2011/05/tuning-for-idleness-service.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For a paid offering ask your IBM services representative about the Performance Tuning Configurator (PTC) &amp;nbsp;tool for improving and tuning WAS performance&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/6741080397454890783-2038215530902834593?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2038215530902834593/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/non-standard-performance-tuning-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2038215530902834593'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2038215530902834593'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/non-standard-performance-tuning-for.html' title='Non standard performance tuning for the WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5799689566030775270</id><published>2011-08-30T09:28:00.000-07:00</published><updated>2011-08-30T09:36:04.584-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>IBM Extensions to the Eclipse memory analyzer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The IBM extended version of Eclipse Memory Analyzer contains a number of plugins that help with determining the memory usage of WAS components like Dynacache, HTTPSession, WebContainer etc .. The IBM Extensions for Memory Analyzer currently offers extensions covering:&amp;nbsp; Java SE Runtime, &amp;amp; WebSphere Application Server&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;Snapshot of what this look like in the tool ...&lt;/div&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://4.bp.blogspot.com/-212NWCKKd9E/Tl0M3KomBeI/AAAAAAAACzs/PEf8bYN-2V4/s1600/ema-was.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="332" src="http://4.bp.blogspot.com/-212NWCKKd9E/Tl0M3KomBeI/AAAAAAAACzs/PEf8bYN-2V4/s640/ema-was.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;IBM WebSphere Application Server Extensions to Eclipse Memory Analyzer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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://1.bp.blogspot.com/-5RNjyUXadqc/Tl0NqCnDCDI/AAAAAAAACzw/zwhhVPgSVsc/s1600/ema-was-1.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="282" src="http://1.bp.blogspot.com/-5RNjyUXadqc/Tl0NqCnDCDI/AAAAAAAACzw/zwhhVPgSVsc/s640/ema-was-1.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;IBM Java SE Runtime Extensions to Eclipse Memory Analyzer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;If you have a complete core dump this tool can also show you thread details, thread stacks, a classloader explorer etc ...&lt;/div&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://1.bp.blogspot.com/-wzj4cvYEu18/Tl0O2ycfWsI/AAAAAAAACz0/lM1elTUw_yg/s1600/ema-was-2.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="482" src="http://1.bp.blogspot.com/-wzj4cvYEu18/Tl0O2ycfWsI/AAAAAAAACz0/lM1elTUw_yg/s640/ema-was-2.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;Java Thread exploration with Eclipse Memory Analyzer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&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://1.bp.blogspot.com/-uofJRr8gdBg/Tl0PmDMpkWI/AAAAAAAACz4/PlQZ5ImETdU/s1600/version.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="78" src="http://1.bp.blogspot.com/-uofJRr8gdBg/Tl0PmDMpkWI/AAAAAAAACz4/PlQZ5ImETdU/s640/version.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;My version of the IBM extended Eclipse Memory Analyzer&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;Happy Debugging!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-5799689566030775270?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5799689566030775270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/ibm-extensions-to-eclipse-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5799689566030775270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5799689566030775270'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/ibm-extensions-to-eclipse-memory.html' title='IBM Extensions to the Eclipse memory analyzer'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-212NWCKKd9E/Tl0M3KomBeI/AAAAAAAACzs/PEf8bYN-2V4/s72-c/ema-was.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4643481341186415481</id><published>2011-08-18T10:45:00.000-07:00</published><updated>2011-08-18T11:18:41.180-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='session'/><title type='text'>WebSphere Session Persistence Best Practices ... The 10/10 Rule</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;b style="background-color: cyan;"&gt;&lt;span style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;10 Seconds write frequency /10 KB session size&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;The most important factor in session replication performance is the &lt;b&gt;write frequency setting&lt;/b&gt;. &lt;br /&gt;This setting should be carefully considered to determine if the environment needs full reliability and failover support (End of Servlet service), or if a time based frequency is sufficient. In testing done for this study, a value larger than 10 seconds rarely provided much additional benefit. &lt;b&gt;Therefore, as a best practice, if the time based frequency is chosen, we would recommend a value of 10 seconds.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The cost of replication or persistence increases as the size of the session object increases.&lt;br /&gt;Therefore, as a best practice, we would recommend &lt;b&gt;keeping session sizes smaller than 10 KB.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-bwhSHcZ_Mrs/Tk1JbMlEfDI/AAAAAAAACsI/DO8ab414aY0/s1600/session-perf.bmp" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="329" src="http://1.bp.blogspot.com/-bwhSHcZ_Mrs/Tk1JbMlEfDI/AAAAAAAACsI/DO8ab414aY0/s640/session-perf.bmp" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Database session persistence performs better than Memory- to- Memory session persistence. &lt;/b&gt;This is because in the Database persistence mode, the application servers are not having to act as both an application server servicing requests and a replication backup, as was the case in the Memory-to-Memory scenarios. For larger environments, Database persistence is almost always the better choice as it scales a lot better than Memory-to-Memory.&lt;br /&gt;&lt;br /&gt;There is an &lt;b&gt;extra cost associated with a database server, &lt;/b&gt;license, and database administrator. Most environments require database backups / mirrors. The &lt;b&gt;performance of the database can also be a bottleneck &lt;/b&gt;as the network latency between database and app server, and the speed of the database machine and disk drives are all factors. From a &lt;b&gt;cost perspective&lt;/b&gt; &lt;b&gt;Memory-to-Memory session persistence will always beat database persistence.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;See this&lt;a href="ftp://public.dhe.ibm.com/software/webservers/appserv/was/WASV8_SessionReplication_Performance_v1.0.pdf"&gt; Whitepaper WebSphere Application Server V8 Replication Performance&amp;nbsp;&lt;/a&gt; for a complete discussion of this topic and DayTrader benchmark results.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4643481341186415481?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4643481341186415481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/websphere-session-persistence-best.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4643481341186415481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4643481341186415481'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/websphere-session-persistence-best.html' title='WebSphere Session Persistence Best Practices ... The 10/10 Rule'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-bwhSHcZ_Mrs/Tk1JbMlEfDI/AAAAAAAACsI/DO8ab414aY0/s72-c/session-perf.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2887303127965441075</id><published>2011-08-17T14:02:00.000-07:00</published><updated>2011-08-17T14:03:35.282-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging tools'/><title type='text'>Diagnostic tools for WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are a number of&amp;nbsp; publicly available tools and scripts that WebSphere Application Server component and service teams use for assisting and problem determination of&amp;nbsp; PMRs. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;WebSphere Plugin tools - Perl Script for parsing WebSphere Plugin logs&lt;/b&gt;&lt;br /&gt;&lt;a href="https://github.com/covener/plugin-tools"&gt;https://github.com/covener/plugin-tools&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HTTPSession -&amp;nbsp; Session tracker debug Servlet&lt;/b&gt;&lt;br /&gt;&lt;a href="http://www.blogger.com/HTTPSession%20-%20%20Session%20tracker%20debug%20Servlet%20http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&amp;amp;product=was-express-dist&amp;amp;topic=rtrb_httpsesncomp%20%20Servlet%20name:%20com.ibm.ws.webcontainer.httpsession.IBMTrackerDebug%20%20shipped%20with%20WAS.%20%20Dynacache:%20Extended%20Cache%20Monitor%20and%20Flight%20Recorder%20http://wasdynacache.blogspot.com/2010/03/dynacache-flight-recorder-wsadmin.html%20http://www.ibm.com/developerworks/websphere/downloads/cache_monitor.html%20%20HAManager%20Awk%20scripts%20for%20analyzing%20%20HAManager%20logs%20https://www.ibm.com/developerworks/mydeveloperworks/files/app?lang=en_US#/person/0600007J6A/file/2499709b-2511-44ac-a38a-fa62b3e3e7aa%20%20SIBus%20%E2%80%93Explorer%20&amp;amp;%20Destination%20Handler%20SIB%20Explorer:%20http://alphaworks.ibm.com/tech/sibexplorer%20SIB%20Performance%20Tool:%20http://www.alphaworks.ibm.com/tech/sibperf%20A%20tool%20to%20view,%20move,%20copy,%20delete,%20save%20and%20restore%20messages%20in%20the%20default%20messaging%20provider:%20http://www-01.ibm.com/support/docview.wss?uid=swg24021439"&gt;http://www14.software.ibm.com/webapp/wsbroker/redirect?version=pix&amp;amp;product=was-express-dist&amp;amp;topic=rtrb_httpsesncomp &lt;/a&gt;&lt;br /&gt;Servlet name:&lt;span style="color: blue;"&gt; &lt;b&gt;&lt;span style="color: #274e13;"&gt;com.ibm.ws.webcontainer.httpsession.IBMTrackerDebug&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&amp;nbsp; shipped with WAS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Dynacache: Extended Cache Monitor and Flight Recorder&lt;/b&gt;&lt;br /&gt;&lt;a href="http://wasdynacache.blogspot.com/2010/03/dynacache-flight-recorder-wsadmin.html"&gt;http://wasdynacache.blogspot.com/2010/03/dynacache-flight-recorder-wsadmin.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/downloads/cache_monitor.html"&gt;http://www.ibm.com/developerworks/websphere/downloads/cache_monitor.html&lt;/a&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;HAManager: Awk scripts for analyzing&amp;nbsp; HAManager logs&lt;/b&gt;&lt;br /&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/files/app?lang=en_US#/person/0600007J6A/file/2499709b-2511-44ac-a38a-fa62b3e3e7aa"&gt;https://www.ibm.com/developerworks/mydeveloperworks/files/app?lang=en_US#/person/0600007J6A/file/2499709b-2511-44ac-a38a-fa62b3e3e7aa&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;SIBus –Explorer &amp;amp; Destination Handler&lt;/b&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;SIB Explorer: &lt;a href="http://alphaworks.ibm.com/tech/sibexplorer"&gt;http://alphaworks.ibm.com/tech/sibexplorer&lt;/a&gt;&lt;/li&gt;&lt;li&gt;SIB Performance Tool: &lt;a href="http://www.alphaworks.ibm.com/tech/sibperf"&gt;http://www.alphaworks.ibm.com/tech/sibperf&lt;/a&gt;&lt;/li&gt;&lt;li&gt;A tool to view, move, copy, delete, save and restore messages in the default messaging provider:&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg24021439"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg24021439&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt;LDAP Tools&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt;Apache Directory Studio&lt;/b&gt;&lt;b&gt; &lt;/b&gt;Very handy LDAP tool based on Eclipse &lt;span class="nobr"&gt;&lt;/span&gt;&lt;a href="http://directory.apache.org/studio/index.html"&gt;http://directory.apache.org/studio/index.html&lt;/a&gt;&lt;b class="strong"&gt;&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt;ldapSearch -&amp;nbsp;&lt;/b&gt; LDAP search tool&lt;a href="http://linux.die.net/man/1/ldapsearch"&gt; http://linux.die.net/man/1/ldapsearch&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt; &lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Sun JVM ONLY Tools&lt;/b&gt;- jps, jstatd, jstack, jmap, jinfo, jhat&amp;nbsp;visualVM &amp;amp; jConsole&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;Name space dumper &lt;/b&gt;$WAS_HOME/bin/dumpNameSpace tool &lt;br /&gt;&lt;br /&gt;&lt;b&gt;OSGI Bundle Explorer and debug utility&amp;nbsp; &lt;/b&gt;$WAS_HOME/bin/osgiConsole.sh/bat &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;b class="strong"&gt;ISA Tools&lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-gBVkx1IE5jM/TkwqKY4PLlI/AAAAAAAACsA/nBsDyiXIxa4/s1600/isa-tools.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="447" src="http://3.bp.blogspot.com/-gBVkx1IE5jM/TkwqKY4PLlI/AAAAAAAACsA/nBsDyiXIxa4/s640/isa-tools.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt; &lt;/b&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-nTThS30RcMQ/Tkwq2I_aiSI/AAAAAAAACsE/MLYlixk1BPw/s1600/WebSpheretroubleshooting.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="412" src="http://1.bp.blogspot.com/-nTThS30RcMQ/Tkwq2I_aiSI/AAAAAAAACsE/MLYlixk1BPw/s640/WebSpheretroubleshooting.png" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt; &lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div style="text-align: left;"&gt;&lt;b class="strong"&gt; &lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2887303127965441075?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2887303127965441075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/diagnostic-tools-for-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2887303127965441075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2887303127965441075'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/diagnostic-tools-for-websphere.html' title='Diagnostic tools for WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-gBVkx1IE5jM/TkwqKY4PLlI/AAAAAAAACsA/nBsDyiXIxa4/s72-c/isa-tools.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5781240245998229745</id><published>2011-08-11T12:06:00.000-07:00</published><updated>2011-08-11T12:34:29.037-07:00</updated><title type='text'>Generating system dumps and thread dumps automatically</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-size: large;"&gt;Generating a system dump instead of a heap dump automatically on an OOM&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;To generate a system dump as default on an OOM error or when the JVM receives the SIGQUIT.&lt;br /&gt;Please set the following JVM generic custom property&lt;br /&gt;&lt;b style="color: blue;"&gt;-Xdump:java+system:events=systhrow,filter=java/lang/OutOfMemoryError,range=1..4,priority=999,request=exclusive+compact+prepwalk&lt;/b&gt;&lt;br /&gt;Please also ensure that there is adequate space for the system dump by following this &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21115658"&gt;technote &lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;span style="font-size: large;"&gt;Generating a thread dump automatically on a thread hang&lt;/span&gt;&lt;/u&gt;&lt;br /&gt;To configure a hang detection policy that dumps a javacore when a thread is hung by setting the following property&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;From the administrative console, click Servers &amp;gt; Application Servers &amp;gt; server_name OR&amp;nbsp; System Administration &amp;gt; Deployment Manager&amp;nbsp; or&amp;nbsp; System Administration &amp;gt; NodeAgent &amp;gt; node_agent_name&lt;/li&gt;&lt;li&gt;Under Server Infrastructure, click Administration &amp;gt; Custom Properties&lt;/li&gt;&lt;li&gt;Click New.&lt;/li&gt;&lt;li&gt;Add the following property:&lt;/li&gt;&lt;/ol&gt;Name &lt;b&gt;com.ibm.websphere.threadmonitor.dump.java &lt;/b&gt;&lt;br /&gt;Value &lt;b&gt;true&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This causes&amp;nbsp; a javacore to be created when a hung thread is detected and a WSVR0605W message is printed. The threads section of the javacore can be analyzed to determine what the reported thread and other related threads are doing.&lt;b style="color: blue;"&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="color: blue;"&gt;&amp;nbsp;Table of where to set a JVM Custom property&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;table border="1" cellpadding="4" cellspacing="0" class="simpletableborder"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td valign="top"&gt;Application server&lt;/td&gt;&lt;td valign="top"&gt;&lt;b&gt;Servers &amp;gt; Server Types &amp;gt; WebSphere application servers &amp;gt;&lt;/b&gt; &lt;i&gt;server_name&lt;/i&gt; &lt;b&gt; &amp;gt; Java and Process Management &amp;gt; Process Definition &amp;gt; Java Virtual Machine &amp;gt; Custom Properties &lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;Deployment manager&lt;/td&gt;&lt;td valign="top"&gt;&lt;b&gt;System Administration &amp;gt; DeploymentManager &amp;gt; Java and Process Management &amp;gt; Process definition &amp;gt;  &amp;gt; Java VirtualMachine &amp;gt; Custom Properties&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td valign="top"&gt;Node agent&lt;/td&gt;&lt;td valign="top"&gt;&lt;b&gt; System Administration &amp;gt;NodeAgent &amp;gt;&lt;/b&gt; &lt;i&gt;nodeagent&lt;/i&gt; &lt;b&gt;&amp;gt; Java and Process Management &amp;gt; Process definition&amp;gt; Java Virtual Machine &amp;gt; Custom Properties&lt;/b&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;References&lt;/b&gt;:&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.60%2Fdiag%2Ftools%2Fdiag_collector.html"&gt;http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.60%2Fdiag%2Ftools%2Fdiag_collector.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/javasdk/v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.60%2Fdiag%2Ftools%2Fdiag_collector.html%20"&gt;http:http//publib.boulder.ibm.com/infocenter/javasdk v6r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.60%2Fdiag%2Ftools%2Fdiag_collector.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-5781240245998229745?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5781240245998229745/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/generating-system-dump-instead-of-heap.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5781240245998229745'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5781240245998229745'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/generating-system-dump-instead-of-heap.html' title='Generating system dumps and thread dumps automatically'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4793296550150307513</id><published>2011-08-09T11:17:00.000-07:00</published><updated>2011-08-15T09:08:04.302-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JEE'/><title type='text'>JAX-RS implementations in WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;a href="http://jersey.java.net/"&gt;Jersey &lt;/a&gt;is the open source &lt;a href="http://jsr311.dev.java.net/nonav/releases/1.1/index.html"&gt;JAX-RS&lt;/a&gt; (JSR 311) Reference Implementation for building RESTful Web services.Jersey provides                    an &lt;a href="http://jersey.java.net/nonav/apidocs/latest/jersey/index.html"&gt;API&lt;/a&gt; so that developers may extend Jersey to suit their needs. See &lt;a href="http://mresetar.blogspot.com/2009/04/hello-world-rest-service-using-jersey.html"&gt;blog post &lt;/a&gt;on how to integrate Jersey with WebSphere Application Server 6.1. If the first suggestion does not work look at this &lt;a href="http://www.tmro.net/2009/08/jersey-and-websphere-6-1/"&gt;post&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="background-color: lime; font-family: Verdana,sans-serif;"&gt;Gotcha &lt;/span&gt;To get Jersey working with WAS &lt;b&gt;v7&lt;/b&gt; you will need to set the webcontainer custom property.&lt;br /&gt;Name:&amp;nbsp;&lt;b&gt;com.ibm.ws.webcontainer.invokeFiltersCompatibility&lt;/b&gt;&lt;br /&gt;Value:&amp;nbsp;&lt;b&gt;true&lt;/b&gt;&lt;br /&gt;This workaround is &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;NOT &lt;/b&gt;&lt;/span&gt;needed in WAS v8.&amp;nbsp;See APAR &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PK56247"&gt;PK56247 &amp;nbsp; &lt;/a&gt;for details on why you need to do this in WAS v7.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-0WDCZrk065k/TkL9LuhJ05I/AAAAAAAACro/gfwgNLjj37c/s1600/jersey.bmp" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="176" src="http://2.bp.blogspot.com/-0WDCZrk065k/TkL9LuhJ05I/AAAAAAAACro/gfwgNLjj37c/s400/jersey.bmp" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;If your application that leverages Jersey&amp;nbsp; throws the following error during deployment &lt;br /&gt;&lt;div style="background-color: #f4cccc;"&gt;&lt;i&gt;The URI scheme wsjar of the URI wsjar:file:/C:/rad802/workspace/myCompany/TestJerseyProvider/WebContent/WEB-INF/lib/Providers.jar!/com/mycompany/commons/web/rest/providers is not supported. Package scanning deployment is not supported for such URIs.&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;This occurs because your classes in web-inf/lib are not being recognized, because the Jersey URI Scheme scanner which scans WEB-INF/lib only works, when the protocol has 3 digits (like jar:) but WebSphere uses wsjar: as protocol.&lt;br /&gt;&lt;br /&gt;We ran into a similar issue when using Open Web Beans see &lt;a href="https://issues.apache.org/jira/browse/OWB-577"&gt;https://issues.apache.org/jira/browse/OWB-577&lt;/a&gt;&lt;br /&gt;You can also look at the&lt;a href="http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/corespi/scanner/AnnotationDB.java?p2=%2Fopenwebbeans%2Ftrunk%2Fwebbeans-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fwebbeans%2Fcorespi%2Fscanner%2FAnnotationDB.java&amp;amp;p1=%2Fopenwebbeans%2Ftrunk%2Fwebbeans-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fapache%2Fwebbeans%2Fcorespi%2Fscanner%2FAnnotationDB.java&amp;amp;r1=1129608&amp;amp;r2=1129607&amp;amp;view=diff&amp;amp;pathrev=1129608"&gt; svn change history&lt;/a&gt; to see how we fixed it in Open Web Beans.&lt;br /&gt;&lt;br /&gt;This is fixable in Jersey by adding your own com.sun.jersey.core.spi.scanning.uri.UriSchemeScanner&amp;nbsp; which is the interface for scanning URI-based resources and reporting those resources to a scanning listener. Jersey's code add's additional UriSchemeScanner's using the com.sun.jersey.spi.service.ServiceFinder. Looking at existing scanners like the the com.sun.jersey.core.spi.scanning.uri.JarZipSchemeScanner &amp;amp; com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner you will be able to write a scanner that is able to scan the jars in the WEB-INF/lib directory of your WAS application. &lt;br /&gt;&lt;br /&gt;Another option is to do what the warning says&amp;nbsp;&lt;i&gt; Try using a different deployment mechanism such as explicitly declaring root resource and provider classes using an extension of javax.ws.rs.core.Application&lt;/i&gt;.&lt;br /&gt;&lt;br /&gt;&lt;div style="color: #bf9000;"&gt;Please note that WAS ships with its own JAX-RS implementation based off the &lt;a href="http://incubator.apache.org/wink/documentation.html"&gt;Apache Wink Project&lt;/a&gt;. This is available by default in WAS version 8 and with the &lt;a href="http://www-01.ibm.com/software/webservers/appserv/was/featurepacks/web20-mobile/"&gt;Web 2.0 feature pack &lt;/a&gt;in WAS v7.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4793296550150307513?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4793296550150307513/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/jax-rs-implementations-in-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4793296550150307513'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4793296550150307513'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/jax-rs-implementations-in-websphere.html' title='JAX-RS implementations in WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-0WDCZrk065k/TkL9LuhJ05I/AAAAAAAACro/gfwgNLjj37c/s72-c/jersey.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7858924381105826477</id><published>2011-08-06T07:03:00.000-07:00</published><updated>2011-08-06T07:23:48.373-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='performance'/><title type='text'>Tune your WebSphere Application Server deployment for Production or Development</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Do you know that WebSphere Application Server install contains scripts to tune the performance of the server ? These can be found in &amp;nbsp; &lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$WAS_HOME/scriptLibraries/perfTuning/V70&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This wsadmin script can be run as follows ....&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;$WAS_HOME/bin/&lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wsadmin -f applyPerfTuningTemplate.py [-nodeName &amp;lt;node&amp;gt; -serverName &amp;lt;server&amp;gt;] [-clusterName &amp;lt;cluster&amp;gt;] -templateFile &amp;lt;file&amp;gt; &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;where templateFile &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;could be &lt;/span&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; one of "peak.props",&amp;nbsp; "development.props" or "default.props"&lt;/span&gt;&lt;/div&gt;&lt;div style="color: blue;"&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#-----------------------------------------------------------------------------&lt;/div&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;# File Name:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;b&gt; ApplyPerfTuning.py&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;# Purpose:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Apply pre-defined performance tuning templates to a specific&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application server instance or all instances in a cluster. Three&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; templates are pre-defined (&lt;b&gt;default&lt;/b&gt;, &lt;b&gt;peak&lt;/b&gt;, and &lt;b&gt;development&lt;/b&gt;);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; however, these files can easily be modified to create your own custom&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tuning template.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: Times,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;#-----------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You can tune WAS either for development (faster application restarts, smaller footprint, dynamic threadpool&amp;nbsp; sizes) or production (increased throughput, smaller garbage collection pauses, Fixed threadpool sizes). Correctly tuning WAS can vastly improve your developer and customer experience.&lt;br /&gt;&lt;br /&gt;For a complete case study in&amp;nbsp; basic and advanced tuning see &amp;nbsp; &lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html"&gt;http://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html&lt;/a&gt; . The article discussed this core set of tunables plus other option resulting in performance gains in excess of 100%.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7858924381105826477?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7858924381105826477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/tune-your-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7858924381105826477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7858924381105826477'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/tune-your-websphere-application-server.html' title='Tune your WebSphere Application Server deployment for Production or Development'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6246682718182642575</id><published>2011-08-05T13:05:00.000-07:00</published><updated>2011-08-05T13:09:34.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching'/><title type='text'>Configure WebSphere Application Server Dynacache and Session persistence to use WebSphere eXtreme Scale</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Dynacache&lt;/span&gt;&lt;br /&gt;Please see instructions below on how to configure Dynacache to leverage WXS instead of the default caching engine. I have also provided links for detailed instructions if you get confused or stuck/&lt;br /&gt;&lt;a href="http://www.devwebsphere.com/websphere_extreme_scale/2009/09/replacing-dynacache-disk-offload-with-dynacache-using-ibm-websphere-extreme-scale.html"&gt;Video&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;a href="https://www.ibm.com/developerworks/wikis/display/extremescale/Home"&gt;eXtreme Scale&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;a href="https://www.ibm.com/developerworks/wikis/display/extremescale/Home"&gt;Wiki&amp;nbsp;&lt;/a&gt;&amp;nbsp;&lt;a href="http://publib.boulder.ibm.com/infocenter/wxsinfo/v7r1/topic/com.ibm.websphere.extremescale.admin.doc/txsdyncache.html"&gt;Configuring cache integration&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.redbooks.ibm.com/redbooks/SG247926/wwhelp/wwhimpl/api.htm?href=ch6.htm"&gt;Redbook chapter&lt;/a&gt;&amp;nbsp;on integrating WXS with Dynacache in the context of WebSphere Commerce&lt;br /&gt;&lt;div&gt;&lt;a href="https://www.ibm.com/developerworks/wikis/display/extremescale/Configure+WebSphere+Commerce+to+use+WebSphere+eXtreme+Scale+for+dynamic+cache+to+improve+performance+and+scale"&gt;Configure WebSphere Commerce to use WebSphere eXtreme Scale for dynamic cache to improve performance and scale&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;HTTPSession&lt;/span&gt;&lt;br /&gt;You will also be interested in &lt;a href="http://www.redbooks.ibm.com/redbooks/SG247683/wwhelp/wwhimpl/api.htm?href=ch8.htm"&gt;configuring session persistence with WXS&lt;/a&gt;.&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wxsinfo/v7r1/topic/com.ibm.websphere.extremescale.admin.doc/txsconfighttpses.html"&gt;Infocenter&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;a href="http://publib.boulder.ibm.com/infocenter/wxsinfo/v7r1/topic/com.ibm.websphere.extremescale.admin.doc/txshttpwas.html"&gt;Configuring the HTTP session manager with WebSphere Application Server&lt;/a&gt;&lt;br /&gt;&lt;b&gt;Attention&lt;/b&gt;: With Version 7.1.0.3 and later, you can persist sessions that use URL rewriting or cookies as a session tracking mechanism. Before Version 7.1.0.3, you can save only sessions that use cookies as the session tracking mechanism to the data grid.&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="background-color: blue; color: white; font-family: Verdana, sans-serif;"&gt;Cheatsheet&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1. &lt;a href="http://www.redbooks.ibm.com/redbooks/SG247926/wwhelp/wwhimpl/api.htm?href=ch4.htm"&gt;Install &amp;amp; Set up an WXS 7&lt;/a&gt; grid (Catalog server and other XS containers that host the cache) . The latest WXS version has an admin console for monitoring. Please install the &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21457982"&gt;latest WXS 7 fix pack&lt;/a&gt; before proceeding.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2. Augment the WAS profile with the WXS client&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;3. &amp;nbsp;Configure the dmap to use extreme scale&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;Basically add the following properties to the map where we create the dmap&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;com.ibm.ws.cache.CacheConfig.enableCacheReplication &amp;nbsp;= true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;com.ibm.ws.cache.CacheConfig.cacheProviderName = com.ibm.ws.objectgrid.dynacache.CacheProviderImpl&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;com.ibm.websphere.xs.dynacache.topology = remote&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;com.ibm.websphere.xs.dynacache.num_initial_containers = 1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;4. [optional] XS does not place replica and primary shards on containers that have the same IP address (unless the configuration is in development mode). If ALL your XS containers are on one physical machine or node you will need to set development=true. In the deployment policy descriptor XML file after WXS client is installed &amp;nbsp;i.e. $WAS-HOME/optionalLibraries/ObjectGrid/dynacache/etc/dynacache-remote-deployment.xml set developmentMode to true&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;lt;mapSet name="DYNACACHE_REMOTE"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;numberOfPartitions="103"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;minSyncReplicas="0"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;maxSyncReplicas="0"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;maxAsyncReplicas="1"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;numInitialContainers="1"&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;developmentMode="false" --&amp;gt; true&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;replicaReadEnabled="false"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"&gt;&amp;nbsp;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;     &lt;/span&gt;&amp;lt;map ref="IBM_DC_PARTITIONED_.*" /&amp;gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;    &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&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/6741080397454890783-6246682718182642575?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6246682718182642575/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/configure-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6246682718182642575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6246682718182642575'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/configure-websphere-application-server.html' title='Configure WebSphere Application Server Dynacache and Session persistence to use WebSphere eXtreme Scale'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8832556257065996735</id><published>2011-08-03T09:46:00.000-07:00</published><updated>2011-08-03T09:46:54.940-07:00</updated><title type='text'>WebSphere Application Server Defibrillator for stalled software</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Food for thought&amp;nbsp; ... &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;I have a lot of interest in Java serviceability and JVM egregious condition&amp;nbsp; recovery. If you share the same interest, please check out the following research paper &lt;a href="http://groups.csail.mit.edu/pac/jolt/paper.pdf"&gt;http://groups.csail.mit.edu/pac/jolt/paper.pdf&lt;/a&gt; that talks about Detecting and Escaping In nite Loops with Java or the more easily digestible &lt;a href="http://web.mit.edu/newsoffice/2011/infinite-loops-interrupt-0802.html"&gt;http://web.mit.edu/newsoffice/2011/infinite-loops-interrupt-0802.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;One thought that did resonate in the article is from Westley Weimer, an assistant professor of computer science at the University of Virginia who says "The vast majority of software engineering or programming-language researchers are shackled to this notion of full correctness or full soundness: You can’t change anything in the program if there’s even the possibility of getting a slightly wrong answer,”&lt;br /&gt;&lt;br /&gt;The article goes on to say that&amp;nbsp; “One of the things that’s really characterized Martin’s research over the last 10 or 15 years is casting off the shackles of soundness in favor of approaches that are probably correct but dramatically more useful in real life.” &lt;br /&gt;&lt;br /&gt;This is true in order to achieve resiliency you will need to sacrifice some program consistency and correctness.&lt;br /&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/6741080397454890783-8832556257065996735?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8832556257065996735/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8832556257065996735'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8832556257065996735'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/websphere-application-server.html' title='WebSphere Application Server Defibrillator for stalled software'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2326333224516292158</id><published>2011-08-03T05:38:00.000-07:00</published><updated>2011-08-03T05:40:07.100-07:00</updated><title type='text'>WebSphere Application Server SWAT BLOG</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;For all those interested in WebSphere Application Server serviceability and problem determination please follow the WAS Swat blog run by Kevin Grigorenko WAS troubleshooting extraordinaire &lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/kevgrig/?lang=en"&gt;https://www.ibm.com/developerworks/mydeveloperworks/blogs/kevgrig/?lang=en&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-2326333224516292158?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2326333224516292158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/was-swat-blog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2326333224516292158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2326333224516292158'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/was-swat-blog.html' title='WebSphere Application Server SWAT BLOG'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4213890230908248074</id><published>2011-08-02T20:36:00.000-07:00</published><updated>2011-08-02T20:42:43.100-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>How to analyze IBM JVM core dumps</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today's blog post is advice, I provided to a customer for analyzing IBM JDK core dumps&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;Question ...&amp;nbsp; &lt;/i&gt;&lt;/div&gt;&lt;i&gt;We have a problem where our Linux-based build machines for the portal drivers, occasionally core dump in the middle of the build process. The only way I know of to invoke the Java team to shoot these, is to open a WAS PMR.&amp;nbsp; I'm not sure that's appropriate, given that it's unclear exactly what JRE is running at the time (it could be the one from the WAS or from ant)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;&lt;i&gt;Response&lt;/i&gt;&lt;/div&gt;In order to analyze a coredump you will need to run the Dump Analyzer plugin from &lt;a href="http://www-01.ibm.com/software/support/isa/download.html"&gt;IBM Support Assistant&lt;/a&gt; (ISA). The dump report will tell you the details of the JVM that dumped core, the heap contents and the javacore. This will help you determine the culprit component faster.&lt;br /&gt;&lt;br /&gt;First see these &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/fep/index.jsp?topic=/com.ibm.java.diagnostics.dbda.isav4.doc/docs/runOutside.html"&gt;instructions &lt;/a&gt;to run the dump analyzer outside the ISA &lt;br /&gt;&lt;br /&gt;cd&amp;nbsp; $ISA_HOME\applications\eclipse\plugins\com.ibm.java.diagnostics.dbda_2.2.2.20090926232659&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;java -Xmx1400M -cp dumpAnalyzer.jar;lib\dtfj.jar;..\com.ibm.java.diagnostics.dbda.was_2.1.3.20090427213613\wasAnalyzers.jar;..\com.ibm.java.diagnostics.dbda.core_2.2.2.20090926232659\coreAnalyzers.jar &lt;b&gt;com.ibm.dtfj.analyzer.base.DumpAnalyzer&lt;/b&gt; core1.sdff com.ibm.dtfj.analyzer.jvm.DefaultDumpReport_Extended &amp;gt; DumpAnalyzer_DefaultDumpReport_Extended.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;OR &lt;br /&gt;&lt;br /&gt;You basically need to&amp;nbsp; copy the 6 required jars from IBM Support Assistant and then run the command&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set CP="dumpAnalyzer.jar;coreAnalyzers.jar"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;set BCP="lib/j9/dtfj.jar;lib/j9/dtfj-interface.jar;lib/sov/dtfjsu.jar;lib/sov/dtfj.jar"&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;java -cp $CP -Xbootclasspath/p:$BCP &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;b&gt;com.ibm.dtfj.analyzer.base.DumpAnalyzer&lt;/b&gt; (dumpName) (options)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;/span&gt;You need to put this in a script and run it whenever a core dump is generated.&lt;i&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Happy Debugging!&lt;/i&gt;&lt;br /&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/6741080397454890783-4213890230908248074?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4213890230908248074/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/how-to-analyze-ibm-jvm-core-dumps.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4213890230908248074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4213890230908248074'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/how-to-analyze-ibm-jvm-core-dumps.html' title='How to analyze IBM JVM core dumps'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1676047232170224792</id><published>2011-08-01T14:37:00.000-07:00</published><updated>2011-08-09T05:12:05.730-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application performance'/><title type='text'>Solving an application performance slowdown or regression with WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently I had the chance to troubleshoot and fix a performance regression a component of the WebSphere Application Server. The objective was to determine performance and locking hotspots in our server code.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. &lt;/b&gt;Beg, borrow steal or write a benchmark. We already have a pretty good Dynacache performance benchmark. This is critical to draw a line in the sand and determine a before and after performance #s.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2.&lt;/b&gt; Enable &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp"&gt;IBM Health Center&lt;/a&gt; profiling. Using IBM Health Center which is baked into the WAS JVM, is the easiest and lightest way of doing profiling with WebSphere Application Server. &amp;nbsp;No expensive profiling tools and &amp;nbsp;no instrumentation of src. This is best thing since baked bread for performance in WAS.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3.&lt;/b&gt; So you need two things for this exercise. On the client side you need an IBM Health Center Client that comes as a free product plugin to the &lt;a href="http://www-01.ibm.com/software/support/isa/download.html"&gt;IBM Support Assistant&lt;/a&gt;. On the server side you need IBM Health Center server library which comes preinstalled with the JVM which is bundled with WAS. You will find one WAS_HOME/java/jre/lib/ext/healthcenter.jar&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;4. &amp;nbsp;&lt;/b&gt;Configure WAS to use the IBM Health Center. See details in &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp?topic=/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/enablingagent.html"&gt;Infocenter&lt;/a&gt;&amp;nbsp;&amp;nbsp;for older versions of java.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Servers&lt;/span&gt;&amp;nbsp;-&amp;gt;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Server Types&lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;WebSphere application servers&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 13px;"&gt;Select the server name and then select&amp;nbsp;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Java and Process Management&lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Process definition&lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Java Virtual Machine&lt;/span&gt;&amp;nbsp;-&amp;gt;&amp;nbsp;&lt;span class="ph uicontrol" style="font-weight: bold;"&gt;Generic JVM Arguments&lt;/span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;For Java 5 SR10 and later, or Java 6 SR5 and later, use:&lt;span class="Apple-style-span" style="white-space: pre;"&gt;&lt;b&gt;-Xhealthcenter&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;5.&lt;/b&gt; After restaring WAS, start the ISA and configure a connection to your WAS server. This connection is established typically on port 1872. If you want to control the server port see &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/index.jsp?topic=/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.gui/docs/enablingagent.html"&gt;infocenter&lt;/a&gt;.&amp;nbsp;After the JVM is started with the agent enabled, you see a message detailing the port for the Health Center agent. For example:&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace;"&gt;05-Mar-2009 09:49:57 com.ibm.java.diagnostics.healthcenter.agent.mbean.HCLaunchMBean startAgentINFO: Health Center agent started on port 1972.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;6.&lt;/b&gt; Run the benchmark or the test.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7.&lt;/b&gt; &amp;nbsp;After the test save the profile as a *.hcd file. You can then pass this profile around and analyze it offline. See &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21423006"&gt;technote&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8.&lt;/b&gt; &lt;a href="http://publib.boulder.ibm.com/infocenter/hctool/v1r0/topic/com.ibm.java.diagnostics.healthcenter.doc/com.ibm.java.diagnostics.healthcenter.profiling/docs/overview.html"&gt;Interpret the method profile&lt;/a&gt;. &amp;nbsp;The Method Profile table shows which methods are using the most processing resource.&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Methods with a higher Self (%) value are described as "hot", and are good candidates for optimization. Small improvements to the efficiency of these methods might have a large effect on performance. Methods near the bottom of the table are poor candidates for optimization. Even large improvements to their efficiency are unlikely to affect performance, because they do not use as much processing resource.&lt;/li&gt;&lt;li&gt;You can optimize methods by reducing the amount of work that they do or by reducing the number of times that they are called. Highlighting a method in the table populates the call hierarchy views.Filter the contents of the method profile table using the text box above the table. See the filtering help topic for more information.&lt;/li&gt;&lt;li&gt;Additionally, when you select the Hide low sample entries, the table does not list any entries that have a sample count of less than 2. Use this option if your table contains many entries that are not obvious candidates for optimization to improve the performance of the table.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div&gt;&lt;b&gt;9.&lt;/b&gt; Make java source code changes to improve performance. Scrub and repeat.&amp;nbsp;We used the process above to take before and after profiles to figure out the delta i.e .where the performance had slipped.&lt;/div&gt;&lt;br /&gt;&lt;i&gt;Happy profiling!&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1676047232170224792?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1676047232170224792/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/solving-performance-slowdown-or-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1676047232170224792'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1676047232170224792'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/08/solving-performance-slowdown-or-with.html' title='Solving an application performance slowdown or regression with WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5392633731602386298</id><published>2011-07-25T08:05:00.000-07:00</published><updated>2011-07-25T08:23:48.283-07:00</updated><title type='text'>Java Hung Thread Detection &amp; Handling</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Have you ever wondered how hung thread detection works ?&lt;/i&gt;&lt;br /&gt;See this article&amp;nbsp; for an excellent approach for hung thread detection in a Java application -&lt;br /&gt;&lt;a href="http://www.javaworld.com/community/print/8051"&gt;http://www.javaworld.com/community/print/8051&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;WebSphere Application Server is the &lt;b&gt;ONLY&lt;/b&gt; application server that offers hung thread detection (since version 6.1.0.19). The hang detection option for WebSphere Application Serveris turned on by default. You can configure a hang detection policyto accommodate your applications and environment so that potentialhangs can be reported, providing earlier detection of failing servers.When a hung thread is detected, WebSphere Application Server notifiesyou so that you can troubleshoot the problem. For details see &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/ttrb_confighangdet.html"&gt;Infocenter&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;WSVR0605W &lt;/b&gt;is the message when there is a hung thread.&lt;br /&gt;&lt;br /&gt;In WAS 7, WSVR0605W&amp;nbsp; is accompanied by a thread dump of hung thread:&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;[11/16/09 12:41:03:296 PST] 00000020 ThreadMonitor W WSVR0605W: Thread "WebContainer : 0" (00000021) has been active for 655546 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;at java.lang.Thread.sleep(Native Method)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;at java.lang.Thread.sleep(Thread.java:851)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;at com.ibm.Sleep.doSleep(Sleep.java:55)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;at com.ibm.Sleep.service(Sleep.java:35)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: small;"&gt;&amp;nbsp;&amp;nbsp;at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; ...&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;WSVR0606W &lt;/b&gt;is the message when a thread that was seen as hung is no longer hung.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;Hang detection only monitors managed threads, such as the WebContainer thread pool.&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Any native threads, or threads spawned by an application are not monitored.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Happy Debugging!&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-5392633731602386298?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5392633731602386298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/hung-thread-detection-handling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5392633731602386298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5392633731602386298'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/hung-thread-detection-handling.html' title='Java Hung Thread Detection &amp; Handling'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4859077059881534888</id><published>2011-07-22T14:40:00.000-07:00</published><updated>2011-07-22T14:40:09.274-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application performance'/><title type='text'>Java Serialization performance improvement</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If your application or application server spends a lot of time during serialization and deserialization of java objects say due to disk caching or replication then improving the performance of java serialization pays a lot of dividend in terms of reduced CPU% and improved performance. It is worth spending the time optimizing serialization performance.&lt;br /&gt;&lt;br /&gt;The best performance in serializing or deserializing data comes by owning the process by implementing Externalizable. Take control over writing and reading your own state. That will give the best performance.&lt;br /&gt;&lt;br /&gt;See these articles that expound on the topic: &lt;br /&gt;&lt;a href="http://www.javaperformancetuning.com/tips/rawtips.shtml%20"&gt;http://www.javaperformancetuning.com/tips/rawtips.shtml &lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.onjava.com/pub/a/onjava/excerpt/JavaRMI_10/index.html"&gt;http://www.onjava.com/pub/a/onjava/excerpt/JavaRMI_10/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Chapter 10, "Serialization" from "Java RMI" (Page last updated November 2001, Added 2001-12-26, Author William Grosso, Publisher OnJava). Tips:&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;Use transient to avoid sending data that doesn't need to be serialized.&lt;/li&gt;&lt;li&gt;Serialization is a generic marshalling mechanism, and generic mechanisms tend to be slow.&lt;/li&gt;&lt;li&gt;Serialization uses reflection extensively, and this also makes it slow.&lt;/li&gt;&lt;li&gt;Serialization tends to generate many bytes even for small amounts of data.&lt;/li&gt;&lt;li&gt;The Externalizable interface is provided to solve Serialization's performance problems.&lt;/li&gt;&lt;li&gt;Externalizable objects do not have their superclass state serialized, even if the superclass is Serializable. This can be used to reduce the data written out during serialization.&lt;/li&gt;&lt;li&gt;Use Serializable by default, then make classes Externalizable on a case-by-case basis to improve performance.&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: left;"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4859077059881534888?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4859077059881534888/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/java-serialization-performance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4859077059881534888'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4859077059881534888'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/java-serialization-performance.html' title='Java Serialization performance improvement'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8481814561329011658</id><published>2011-07-22T13:36:00.000-07:00</published><updated>2011-07-22T13:46:53.743-07:00</updated><title type='text'>Record Data Replication statistics in WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If any point you need to record the DRS activity in your WebSphere Applications Server cluster you can set the&amp;nbsp;JVM system property ENABLE_DRS_STATS_LOGGING &amp;nbsp;to 2 to record Data Replication Service (DRS) traffic statistics&lt;br /&gt;See technote &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PK23862&amp;amp;wv=1"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg1PK23862&amp;amp;wv=1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Please note, as the technote says Stats logging is enhanced by providing summary and detailed statistics on outgoing message transmission. Thesestatistics are used for servicability and are not generallycollected unless instructed by IBM service.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8481814561329011658?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8481814561329011658/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/record-data-replication-service.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8481814561329011658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8481814561329011658'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/record-data-replication-service.html' title='Record Data Replication statistics in WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8238707982816326449</id><published>2011-07-22T13:31:00.000-07:00</published><updated>2011-07-22T14:59:48.600-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='migration'/><title type='text'>Migrating WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If you are considering migrating to WebSphere Application Server or upgrading your current version of WAS&amp;nbsp;please take a look at the&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/websphere/downloads/migtoolkit/compmig.html"&gt;IBM® WebSphere® Application Server Migration Toolkit v3.0&lt;/a&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Quickly and cost-effectively migrate to WebSphere Application Server V8, whether from a previous version of WebSphere Application Server (5.1, 6.0, 6.1, 7.0) or competitive application servers including Oracle® Weblogic Server, Oracle Application Server, and JBoss Server.&lt;/li&gt;&lt;li&gt;Simple remediation tools utilize Rational® source code scanning technology to identify and resolve known application migration issues. &amp;nbsp;All while providing developers complete control over the process.&lt;/li&gt;&lt;li&gt;Simplified developer migration experience using Application Migration Tools&lt;/li&gt;&lt;li&gt;Support for migrating JEE applications to WebSphere Application Server Version 8.0&lt;/li&gt;&lt;li&gt;Improved rule sets which scan application source code for known migration problems. &amp;nbsp;New depreciated and removed APIs, Behavior changes and &amp;nbsp; enforcements for JRE and Java EE specifications&lt;/li&gt;&lt;li&gt;Enhanced platform support – Supports the latest versions of Rational Application Developer and Eclipse.&lt;/li&gt;&lt;/ul&gt;Detailed information&amp;nbsp;&lt;a href="http://public.dhe.ibm.com/software/dw/wes/migrationtoolkit/ApplicationMigrationTool_en_US.3.0.0_WebSphere_v2v.pdf"&gt;PDF Doc&lt;/a&gt;&lt;br /&gt;This toolkit will reduce the traditional cost associated with migration by 40%. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8238707982816326449?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8238707982816326449/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/migrating-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8238707982816326449'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8238707982816326449'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/migrating-websphere-application-server.html' title='Migrating WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4977447308969322306</id><published>2011-07-21T17:51:00.000-07:00</published><updated>2011-08-08T14:55:45.555-07:00</updated><title type='text'>Flushing classloader leaks in your application in WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;WebSphere Application Server has a hidden serviceability gem in JVM custom property &lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;com.ibm.ws.runtime.detectAppCLLeaks&lt;/b&gt; described in this &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PM39870"&gt;technote&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;So what does setting this custom property do ?&lt;/i&gt;&lt;br /&gt;This custom property enables the classloader leak detection feature in the application server.When the server is shutting down WAS determines the classloaders that have leaked and thereby held references to all their loaded classes and objects. If a classloader leak is detected a heapdump is triggered. You will also see a warning message in the SystemOut.log like so&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;[7/21/11 20:50:24:917 EDT] 00000017 ApplicationMg W&amp;nbsp;&amp;nbsp; Application class loader leak: &lt;br /&gt;com.ibm.ws.classloader.CompoundClassLoader@21b79f0[war:leak_war/leak.war]&lt;br /&gt;&amp;nbsp;&amp;nbsp; Local ClassPath: &lt;br /&gt;&amp;nbsp;&amp;nbsp; Parent: com.ibm.ws.classloader.CompoundClassLoader@218fc48[app:leak_war]&lt;br /&gt;&amp;nbsp;&amp;nbsp; Delegation Mode: PARENT_FIRST&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;This provides an excellent way to flush out all the classloader leaks in your application. I advise setting this property in development environments. Please note that not all suspect leaks are of concern particularly the ones that belong to WebSphere Application Server system applications.&lt;br /&gt;&lt;br /&gt;Happy Debugging!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;Classloader leak reference&lt;/div&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;a href="http://wasdynacache.blogspot.com/2011/05/how-to-detect-java-classloader-memory.html"&gt;http://wasdynacache.blogspot.com/2011/05/how-to-detect-java-classloader-memory.html &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/blog/rjc301/"&gt;http://www.zeroturnaround.com/blog/rjc301/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/blog/rjc201/%20"&gt;http://www.zeroturnaround.com/blog/rjc201/ &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.dynatrace.com/2009/08/13/java-memory-problems/"&gt;http://blog.dynatrace.com/2009/08/13/java-memory-problems/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://stackoverflow.com/questions/670791/common-java-memory-reference-leak-patterns"&gt;http://stackoverflow.com/questions/670791/common-java-memory-reference-leak-patterns&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://dennis-zane.iteye.com/blog/57512"&gt;http://dennis-zane.iteye.com/blog/57512&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.mhaller.de/archives/140-Memory-leaks-et-alii.html"&gt;http://www.mhaller.de/archives/140-Memory-leaks-et-alii.html&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4977447308969322306?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4977447308969322306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/flushing-classloader-leaks-in-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4977447308969322306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4977447308969322306'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/flushing-classloader-leaks-in-your.html' title='Flushing classloader leaks in your application in WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-71435785964881995</id><published>2011-07-17T18:02:00.000-07:00</published><updated>2011-07-17T18:08:26.083-07:00</updated><title type='text'>Windows style Task Manager  for WebSphere Application Server</title><content type='html'>Ever wondered what your application server was up to ? If you want to know what all the threads of the application server are doing or what an individual thread is upto take a look at the two JSPs provided below which simulate a windows task manager for all the threads of the Application Server&lt;br /&gt;&lt;br /&gt;These JSPs leverge the ThreadMXBean API in the JDK to display thread information. &lt;span style="color: red;"&gt;Caution: This may not work on zOS. &lt;span style="color: black;"&gt;These JSPs &lt;/span&gt;&lt;/span&gt;allow a user to see all threads&amp;nbsp; in a table view, and then click on one of the threads to get a detailed view. &lt;br /&gt;&lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/AllThreads.jsp"&gt;https://github.com/kelapure/dynacache/blob/master/scripts/AllThreads.jsp&lt;/a&gt;&lt;br /&gt;&lt;a href="https://github.com/kelapure/dynacache/blob/master/scripts/ViewThread.jsp"&gt;https://github.com/kelapure/dynacache/blob/master/scripts/ViewThread.jsp&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: yellow; text-align: center;"&gt;&lt;b&gt;All Thread Views&lt;/b&gt;&lt;/div&gt;&lt;b&gt; &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-ZkfZub0o3ME/TiOGzyYPMqI/AAAAAAAACks/SO-U_7R_fGs/s1600/Overview-threads-taskMgr.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-ZkfZub0o3ME/TiOGzyYPMqI/AAAAAAAACks/SO-U_7R_fGs/s1600/Overview-threads-taskMgr.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-ceNX3GafnzI/TiOF2AawjdI/AAAAAAAACkg/EGGdgjrz2cc/s1600/taskMgr.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="background-color: yellow; text-align: center;"&gt;&lt;b&gt;Thread Detail View&lt;/b&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-sCnaWHgyGJI/TiOGqM6f5uI/AAAAAAAACko/cDX5PhAN-eU/s1600/ThreadDetail.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-sCnaWHgyGJI/TiOGqM6f5uI/AAAAAAAACko/cDX5PhAN-eU/s1600/ThreadDetail.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-71435785964881995?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/71435785964881995/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/windows-style-task-manager-for.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/71435785964881995'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/71435785964881995'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/windows-style-task-manager-for.html' title='Windows style Task Manager  for WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-ZkfZub0o3ME/TiOGzyYPMqI/AAAAAAAACks/SO-U_7R_fGs/s72-c/Overview-threads-taskMgr.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5964763933091470381</id><published>2011-07-12T09:46:00.000-07:00</published><updated>2011-07-12T09:48:07.488-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>JVM -Xtrace the holy grail of WebSphere Application Server tracing</title><content type='html'>Today's objective is to generate -Xtrace for ALL methods on the WebSphere PMI interfaces that our PMI modules implement. These PMI interfaces are called by the WAS container to compute PMI statistics. To do this we use IBM JVM's method trace facility. &lt;br /&gt;&lt;br /&gt;&lt;div class="p"&gt;Method trace is a powerful tool for tracing methods inany Java code. Method trace provides a comprehensive and detailed diagnosis ofcode paths inside your application, and also inside the system classes.You do not have to add any hooks or calls to existing code. You canfocus on interesting code by using wild cards and filtering to controlmethod trace. Method trace can trace method entry, exit and parameters.&lt;/div&gt;&lt;div class="p"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="p"&gt;Use method trace to debug and trace application code and the systemclasses provided with the JVM.&lt;/div&gt;While method trace is powerful, it also has a cost. Applicationthroughput is affected by method trace. The impact is proportion tothe number of methods traced. Additionally, trace output is reasonablylarge and might require a large amount of drive space. For instance,a full method trace of a &lt;span class="q"&gt;"Hello World"&lt;/span&gt; application is over 10MB&lt;br /&gt;You can control method trace by using the command-line option &lt;span class="keyword parmname parmname"&gt;-Xtrace:&lt;/span&gt;&lt;var class="keyword varname"&gt;&lt;/var&gt;. This -Xtrace is set as a JVM generic argument in the WebSphere Application Server admin console. &lt;br /&gt;&lt;br /&gt;Please see below for the JVM generic argument for capturing all PMI Event points as JVM trace.&lt;br /&gt;&lt;b&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;-Xtrace:methods={com/ibm/ws/pmi/server/modules/*.*()},print=mt&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;This will put the output in native_stderr.log.&lt;br /&gt;You can then write post processors to process the trace or alternately you &lt;b&gt;may &lt;/b&gt;be able to suck the output in IBM Health Center to visualize it. I have not tried this yet.&lt;br /&gt;&lt;br /&gt;More details on -Xtrace here&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnostics.50/diag/tools/trace_options_method.html"&gt;http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/topic/com.ibm.java.doc.diagnostics.50/diag/tools/trace_options_method.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.50%2Fdiag%2Ftools%2Ftrace_options_output.html"&gt;http://publib.boulder.ibm.com/infocenter/javasdk/v5r0/index.jsp?topic=%2Fcom.ibm.java.doc.diagnostics.50%2Fdiag%2Ftools%2Ftrace_options_output.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Unfortunately this will generate the JVM trace for ALL methods of the PMI modules not just the ones on the PMI interface. This limitation we will need to live with for now.Thanks to WAS SWAT Team guru Kevin Grigorenko for sounding me out as we discussed options. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Happy Debugging!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-5964763933091470381?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5964763933091470381/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/jvm-xtrace-holy-grail-of-websphere.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5964763933091470381'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5964763933091470381'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/jvm-xtrace-holy-grail-of-websphere.html' title='JVM -Xtrace the holy grail of WebSphere Application Server tracing'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1779117953022883795</id><published>2011-07-09T07:56:00.000-07:00</published><updated>2011-07-11T11:38:24.312-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WebSphere Plugin'/><title type='text'>Uneven WebSphere Application Server Plugin load balancing and routing</title><content type='html'>&lt;br /&gt;If your WebSphere Application Server deployment is experiencing an imbalance in HTTP traffic routing from the WebSphere Plugin please take the following configuration and recommendations into consideration&lt;br /&gt;&lt;ol&gt;&lt;li&gt;RANDOM load balancing is better than ROUND_ROBIN for load balancing. With RANDOM for all non-affinity requests, the server is “picked” randomly.The affinity requests are sent to the matching clone id. LoadBalance “weight” is not used at all in the Random case.&lt;/li&gt;&lt;li&gt;&amp;nbsp;An affinity request is one where session affinity is established by the first request. All subsequent requests with the same sesssion ID are termed as "affinity requests". Plugin ALWAYS obeys session affinity when routing requests and routes to the appserver targeted on the first request that established affnity.&lt;/li&gt;&lt;li&gt;In Round Robin load balancing, the first request is routed randomly. After that, the plug-in will use the next server in the list and so on… (member1, member2, member3, member4). Each time a server is “picked”, the load balance weight is decremented by one. Any server with a weight below 0 will NO longer be used for new requests. But, affinity requests will still go through.When all servers have a weight of less than 0, the plug-in will “reset” the weights to the starting values. By default affinity requests do NOT cause the plugin to decrement the weight of the server. &lt;i&gt;This can lead to an uneven distribution when there are many affinity requests.&lt;/i&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;One options you have is to set the property &lt;b&gt;IgnoreAffinityRequests="false"&lt;/b&gt;.  If IgnoreAffinityRequests="false" then the weight IS lowered by each affinity request, leading to a more balanced routing in a Round Robin environment. This can have some adverse consequences if you get a burst of non-affinity requests, they could all be targeted to the servers with the lowest weight and can cause issues with that server. To protect against this, you can defined the maxconnection setting in conjunction, which would avoid having too many non-affinity requests sent to a single server at any one time.&lt;/li&gt;&lt;/ul&gt;&lt;/ol&gt;If you already have plugin traces or are willing to enable debug to triage this issue further WAS IBM HTTP Server guru and WebSphere plugin expert &lt;i&gt;Eric Covener &lt;/i&gt;has the following scripts that will help analyze your plugin trace and provide a summary of your plugin HTTP routing statistics&amp;nbsp;&lt;a href="https://github.com/covener/plugin-tools"&gt;https://github.com/covener/plugin-tools&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For recommended values of the plugin configuration please look at&amp;nbsp; &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21318463"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21318463&lt;/a&gt;&lt;br /&gt;To understand HTTP Plugin load balancing&amp;nbsp; see&lt;a href="http://www.blogger.com/goog_1171467150"&gt; http://www-01.ibm.com/support/docview.wss?uid=swg21219567&lt;/a&gt;&lt;br /&gt;Demystifying the WebSphere Plugin &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27014498&amp;amp;aid=1%20"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg27014498&amp;amp;aid=1 &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;How do you determine if this is an "affinity" request&lt;/b&gt;&lt;br /&gt;&amp;nbsp;) Check for SSLJSESSION cookie&lt;br /&gt;2) Check for JSESSIONID cookie&lt;br /&gt;3) Check for URL rewrite (jsessionid) in the URL&lt;br /&gt;4) Check partitionID against partition table if any&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: small;"&gt;TRACE: ws_common: websphereHandleSessionAffinity: Checking for session affinity&lt;br /&gt;TRACE: ws_common: websphereHandleSessionAffinity: Checking the SSL cookie affinity: SSLJSESSION&lt;br /&gt;TRACE: lib_htrequest: htrequestGetCookieValue: Looking for cookie: 'SSLJSESSION'&lt;br /&gt;TRACE: lib_htrequest: htrequestGetCookieValue: No cookie found for: 'SSLJSESSION'&lt;br /&gt;TRACE: ws_common: websphereHandleSessionAffinity: Checking the cookie affinity: JSESSIONID&lt;br /&gt;TRACE: lib_htrequest: htrequestGetCookieValue: &lt;b&gt;Looking for cookie: 'JSESSIONID'&lt;/b&gt;&lt;br /&gt;TRACE: lib_htrequest: htrequestGetCookieValue:&lt;b&gt; name='JSESSIONID',&lt;br /&gt;value='0000nFKj2sPjmtT6hh5QlWyQ1rU:12n7511dh'&lt;/b&gt;&lt;br /&gt;TRACE: ws_common: websphereHandleSessionAffinity: Checking the JSESSIONID in cookie:&lt;br /&gt;0000nFKj2sPjmtT6hh5QlWyQ1rU:12n7511dh&lt;br /&gt;DEBUG: ws_common: websphereParseCloneID: Parsing clone ids from&lt;br /&gt;'0000nFKj2sPjmtT6hh5QlWyQ1rU:12n7511dh'&lt;br /&gt;TRACE: ws_common: websphereParseCloneID: Adding clone id '12n7511dh'&lt;br /&gt;TRACE: ws_common: websphereParseCloneID: Returning list of clone ids&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;How do you know which server was picked by the WebSphere Plugin ?&lt;/b&gt;&lt;br /&gt;The trace shows which server was “picked”. Search the trace file (http_plugin.log) for the string “picked, weight” to quickly see which servers are being chosen in what order.&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;[Wed Sep 10 17:26:29 2008] 00001f18 00000cb0 - TRACE: ws_server_group:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;lockedServerGroupUseServer:&lt;/span&gt;&lt;b style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt; Server GAME3Node01_member4 picked&lt;/b&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;, weight 6.&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;[Wed Sep 10 17:26:29 2008] 00001f18 00000cb0 - TRACE: ws_server_group:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;serverGroupIncrementConnectionCount: Server GAME3Node01_member4 picked,&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;pendingConnectionCount 1 totalConnectionsCount 1.&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;[Wed Sep 10 17:26:29 2008] 00001f18 00000cb0 - DEBUG: ws_server_group:&lt;/span&gt;&lt;br style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;" /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace;"&gt;serverGroupNextRoundRobinServer: use server GAME3Node01_member4&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/6741080397454890783-1779117953022883795?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1779117953022883795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/uneven-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1779117953022883795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1779117953022883795'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/uneven-websphere-application-server.html' title='Uneven WebSphere Application Server Plugin load balancing and routing'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-9113462405219312010</id><published>2011-07-08T10:50:00.000-07:00</published><updated>2011-07-08T12:00:18.556-07:00</updated><title type='text'>First Failure Data Capture for your enterprise application with WebSphere Application Server</title><content type='html'>Since WebSphere Application Server version 7, we have exposed the First Failure Data Capture (FFDC) API to customer applications. Unfortunately we have not publicized this much in the Infocenter.&lt;br /&gt;&lt;br /&gt;One of the key points for FFDC that differentiates it from log and trace is that it is a snapshot and not&amp;nbsp; history.&amp;nbsp; Log and Trace tends to give a narrow view, but a history that can be highly valuable.&amp;nbsp; FFDC tries to provide a wider view at a point in time.&amp;nbsp; &lt;br /&gt;&lt;br /&gt;See &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.express.doc/info/exp/ae/welc_ref_adm_pi.html"&gt;Javadoc&amp;nbsp;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/ffdc/config/package-summary.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/ffdc/config/package-summary.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/ffdc/package-summary.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.javadoc.doc/web/apidocs/com/ibm/ffdc/package-summary.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What is FFDC and Why do I care ?&lt;/b&gt;&lt;br /&gt;FFDC is capturing the state of the application server and/or the application when an unexpected error or exception occurs the first time. All subsequent iterations of the same error/exception are ignored. This lightweight diagnostic collector of information is designed to be ALWAYS on in a production environment. WAS code leverages FFDC extensively to collect information and state for a component when an exception or catastrophic event occurs. You can now do the same for your enterprise application.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;What differentiates it from logging ? &lt;/b&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;An exception has already occurred.  This means that performance has been impacted and the code is in a failure path &lt;/li&gt;&lt;li&gt;FFDC is in the category of dump or snapshot type tools.  These tools aim to provide a broad view of the system at a particular point in time.  Logging keeps a narrow view, over a period of time &lt;/li&gt;&lt;li&gt;Each FFDC statement executes only once (some rare caveats).  If the statement is executed again, it will know that it has already been executed, and it will simply update summary information.  This means that FFDC processing can focus more on capturing all needed information, and less on performance. &lt;/li&gt;&lt;li&gt;The FFDC infrastructure provides many points where developers can plug in code that will be called when appropriate.  The class or method experiencing a failure rarely knows all of the needed context to resolve the problem.  FFDC provides extensions so that more focused serviceability code can take a more holistic view and gather a much broader context.&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;b&gt;How do I use it ?&lt;/b&gt;&lt;br /&gt;&lt;pre class="java" name="code"&gt;try { &lt;br /&gt;&lt;br /&gt;// Application code here &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;} catch (Exception e) { &lt;br /&gt;&lt;br /&gt;    Ffdc.log(e, myClass, myClassName+myMethodName, “lineNumber”, cde1, cde2, …) ; &lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;// Args:  Exception, reporting class, “sourceId”, “probeId”, context data elements&lt;br /&gt;// where sourceId and probeId are any strings, but this pattern is common &lt;br /&gt;&lt;/pre&gt;&lt;pre class="java" name="code"&gt;package howto_ffdc._1_simple;&lt;br /&gt;import static com.ibm.ffdc.Manager.Ffdc;&lt;br /&gt;// import com.ibm.ffdc.Ffdc; // Used if alternate call is done below&lt;br /&gt;public class SimpleTest extends TestCase {&lt;br /&gt; &lt;br /&gt;   protected void setUp() throws Exception {&lt;br /&gt;     System.setProperty("com.ibm.ffdc.log", “/opt/IBM/WebSphere/logs/ffdc/");&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    public void testWithoutFormatter(){&lt;br /&gt;  try {&lt;br /&gt;         // ... do work&lt;br /&gt;  } catch (Exception e) {&lt;br /&gt;         Ffdc.log(e, this, getClass().getName(),"24", customer);&lt;br /&gt;         /* alternate if generating the parms for the call is expensive */&lt;br /&gt;         // Ffdc ffdc = Ffdc.getFfdc(e, this, getClass().getName(),"24") ;&lt;br /&gt;         //if (ffdc.isLoggable())&lt;br /&gt;         //   MyData myData = expensiveCallToGetData() ;&lt;br /&gt;         //   ffdc.log(customer, myData) ;&lt;br /&gt;   }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;An excellent deep dive into FFDC by &lt;b&gt;Michael Casile&lt;/b&gt;, WebSphere Serviceability Team Lead shows how you can use FFDC in your Java Enterprise application with WebSphere Application Server.&lt;i&gt; &lt;a href="http://slidesha.re/pWODOZ"&gt;http://slidesha.re/pWODOZ&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;In summary FFDC is a simple WebSphere application server facility to improve the serviceability of you enterprise software. It is low cost to implement, extensible, can grow with you (Data Collectors, Formatters, Providers, and Incident Forwarders) and the extensions do not impact core code i.e. no change needed to Ffdc.log statements to affect improved information.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;... credits to Mike Casile and the WAS Serviceability team&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-9113462405219312010?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/9113462405219312010/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/first-failure-data-capture-for-your.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/9113462405219312010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/9113462405219312010'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/first-failure-data-capture-for-your.html' title='First Failure Data Capture for your enterprise application with WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-1428397507917488557</id><published>2011-07-08T09:09:00.000-07:00</published><updated>2011-07-08T09:13:33.249-07:00</updated><title type='text'>On an intel linux platform, what are the default java parameters that are used when starting WebSphere Application Server ? java -Xmx… etc ?</title><content type='html'>&lt;div&gt;You will find below ALL the user arguments used with the WAS 8 JVM.&amp;nbsp;&lt;/div&gt;&lt;div&gt;This was taken for a javacore triggered on WAS8 on a Windows 2003 Server 64 bit WAS install.&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; -Xms50m&lt;/b&gt;&lt;/div&gt;&lt;div&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b&gt; -Xmx256m&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;How to take a javacore&lt;/i&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wsadmin&amp;gt;set objectName [$AdminControl queryNames WebSphere:type=JVM,process=server1,*]&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl invoke $objectName dumpThreads&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;Look for Javacore filename:&amp;nbsp;&amp;nbsp; C:\WebSphere8\m1116.12\profiles\AppSrv01\javacore.20110708.115112.4824.0001.txt&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;i&gt;&lt;span style="color: blue;"&gt;Complete List &lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;1CIUSERARGS &amp;nbsp; &amp;nbsp;UserArgs:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xoptionsfile=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre\bin\&lt;wbr&gt;&lt;/wbr&gt;compressedrefs\options.default&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xlockword:mode=default,&lt;wbr&gt;&lt;/wbr&gt;noLockword=java/lang/String,&lt;wbr&gt;&lt;/wbr&gt;noLockword=java/util/MapEntry,&lt;wbr&gt;&lt;/wbr&gt;noLockword=java/util/HashMap$&lt;wbr&gt;&lt;/wbr&gt;Entry,noLockword=org/apache/&lt;wbr&gt;&lt;/wbr&gt;harmony/luni/util/ModifiedMap$&lt;wbr&gt;&lt;/wbr&gt;Entry,noLockword=java/util/&lt;wbr&gt;&lt;/wbr&gt;Hashtable$Entry&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -XXgc:numaCommonThreadClass=&lt;wbr&gt;&lt;/wbr&gt;java/lang/UNIXProcess$*&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xjcl:jclscar_26&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dcom.ibm.oti.vm.bootstrap.&lt;wbr&gt;&lt;/wbr&gt;library.path=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre\bin\&lt;wbr&gt;&lt;/wbr&gt;compressedrefs;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre\bin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dsun.boot.library.path=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\jre\&lt;wbr&gt;&lt;/wbr&gt;bin\compressedrefs;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\jre\&lt;wbr&gt;&lt;/wbr&gt;bin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.library.path=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\jre\&lt;wbr&gt;&lt;/wbr&gt;bin\compressedrefs;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\jre\&lt;wbr&gt;&lt;/wbr&gt;bin;.;C:\WebSphere8\m1116.12\&lt;wbr&gt;&lt;/wbr&gt;lib\native\win\x86_64;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\WebSphere8\m1116.12\java\&lt;wbr&gt;&lt;/wbr&gt;jre\bin;C:\WINNT\system32;C:\&lt;wbr&gt;&lt;/wbr&gt;WINNT;C:\WINNT\System32\Wbem;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;development\nt_java\java\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\apache-&lt;wbr&gt;&lt;/wbr&gt;maven-3.0.3\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;development\tools\SlikSvn\bin\&lt;wbr&gt;&lt;/wbr&gt;;%M2%;%JAVA_HOME%\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;cygwin\bin;c:\vslick\win;C:\&lt;wbr&gt;&lt;/wbr&gt;development\tools\apache-&lt;wbr&gt;&lt;/wbr&gt;maven-3.0.3\bin;C:\cygwin\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\bin;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.home=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.ext.dirs=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre\lib\ext&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Duser.dir=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\profiles\AppSrv01&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _j2se_j9=1119744 0x000007FFFF237160&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dconsole.encoding=Cp850&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.class.path=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01\properties;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\&lt;wbr&gt;&lt;/wbr&gt;properties;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\lib\startup.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\lib\&lt;wbr&gt;&lt;/wbr&gt;bootstrap.jar;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/lib/lmproxy.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/lib/&lt;wbr&gt;&lt;/wbr&gt;urlprotocols.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\lib\&lt;wbr&gt;&lt;/wbr&gt;tools.jar&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Declipse.security&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dwas.status.socket=2121&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dosgi.install.area=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dosgi.configuration.area=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01/servers/server1/&lt;wbr&gt;&lt;/wbr&gt;configuration&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dosgi.framework.extensions=&lt;wbr&gt;&lt;/wbr&gt;com.ibm.cds,com.ibm.ws.&lt;wbr&gt;&lt;/wbr&gt;eclipse.adaptors&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xshareclasses:name=&lt;wbr&gt;&lt;/wbr&gt;webspherev80,nonFatal&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dsun.reflect.&lt;wbr&gt;&lt;/wbr&gt;inflationThreshold=250&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xbootclasspath/p:C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/java/jre/&lt;wbr&gt;&lt;/wbr&gt;lib/ext/ibmorb.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/java/jre/&lt;wbr&gt;&lt;/wbr&gt;lib/ext/ibmext.jar&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.class.path=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01/properties;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;properties;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/lib/startup.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/lib/&lt;wbr&gt;&lt;/wbr&gt;bootstrap.jar;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/lib/jsf-nls.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/lib/&lt;wbr&gt;&lt;/wbr&gt;lmproxy.jar;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/lib/urlprotocols.jar;&lt;wbr&gt;&lt;/wbr&gt;C:\WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;deploytool/itp/batchboot.jar;&lt;wbr&gt;&lt;/wbr&gt;C:\WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;deploytool/itp/batch2.jar;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/java/lib/&lt;wbr&gt;&lt;/wbr&gt;tools.jar&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dibm.websphere.&lt;wbr&gt;&lt;/wbr&gt;internalClassAccessMode=allow&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xms50m&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xmx256m&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xcompressedrefs&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xscmaxaot4M&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Xscmx60M&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dws.ext.dirs=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/java/lib;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01/classes;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/classes;C:&lt;wbr&gt;&lt;/wbr&gt;\WebSphere8\m1116.12/lib;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;installedChannels;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/lib/ext;C:&lt;wbr&gt;&lt;/wbr&gt;\WebSphere8\m1116.12/web/help;&lt;wbr&gt;&lt;/wbr&gt;C:\WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;deploytool/itp/plugins/com.&lt;wbr&gt;&lt;/wbr&gt;ibm.etools.ejbdeploy/runtime&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dderby.system.home=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/derby&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dcom.ibm.itp.location=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/bin&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.util.logging.&lt;wbr&gt;&lt;/wbr&gt;configureByServer=true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Duser.install.root=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.ext.dirs=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12/tivoli/tam;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/java/jre/&lt;wbr&gt;&lt;/wbr&gt;lib/ext&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djavax.management.builder.&lt;wbr&gt;&lt;/wbr&gt;initial=com.ibm.ws.management.&lt;wbr&gt;&lt;/wbr&gt;PlatformMBeanServerBuilder&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dpython.cachedir=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01/temp/cachedir&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dwas.install.root=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.util.logging.manager=&lt;wbr&gt;&lt;/wbr&gt;com.ibm.ws.bootstrap.&lt;wbr&gt;&lt;/wbr&gt;WsLogManager&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dserver.root=C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\profiles\AppSrv01&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dcom.ibm.security.jgss.debug=&lt;wbr&gt;&lt;/wbr&gt;off&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dcom.ibm.security.krb5.&lt;wbr&gt;&lt;/wbr&gt;Krb5Debug=off&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.library.path=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/lib/&lt;wbr&gt;&lt;/wbr&gt;native/win/x86_64/;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\jre\&lt;wbr&gt;&lt;/wbr&gt;bin\default;C:\WebSphere8\&lt;wbr&gt;&lt;/wbr&gt;m1116.12\java\jre\bin;.;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\lib\&lt;wbr&gt;&lt;/wbr&gt;native\win\x86_64;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\java\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\WebSphere8\m1116.12\java\&lt;wbr&gt;&lt;/wbr&gt;jre\bin;C:\WINNT\system32;C:\&lt;wbr&gt;&lt;/wbr&gt;WINNT;C:\WINNT\System32\Wbem;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;development\nt_java\java\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\apache-&lt;wbr&gt;&lt;/wbr&gt;maven-3.0.3\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;development\tools\SlikSvn\bin\&lt;wbr&gt;&lt;/wbr&gt;;%M2%;%JAVA_HOME%\bin;C:\&lt;wbr&gt;&lt;/wbr&gt;cygwin\bin;c:\vslick\win;C:\&lt;wbr&gt;&lt;/wbr&gt;development\tools\apache-&lt;wbr&gt;&lt;/wbr&gt;maven-3.0.3\bin;C:\cygwin\bin;&lt;wbr&gt;&lt;/wbr&gt;C:\development\tools\bin;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.endorsed.dirs=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12/endorsed_&lt;wbr&gt;&lt;/wbr&gt;apis;C:\WebSphere8\m1116.12/&lt;wbr&gt;&lt;/wbr&gt;java/jre/lib/endorsed;C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\endorsed_&lt;wbr&gt;&lt;/wbr&gt;apis;C:\WebSphere8\m1116.12\&lt;wbr&gt;&lt;/wbr&gt;java\jre\lib\endorsed&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.security.auth.login.&lt;wbr&gt;&lt;/wbr&gt;config=C:\WebSphere8\m1116.12\&lt;wbr&gt;&lt;/wbr&gt;profiles\AppSrv01/properties/&lt;wbr&gt;&lt;/wbr&gt;wsjaas.conf&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Djava.security.policy=C:\&lt;wbr&gt;&lt;/wbr&gt;WebSphere8\m1116.12\profiles\&lt;wbr&gt;&lt;/wbr&gt;AppSrv01/properties/server.&lt;wbr&gt;&lt;/wbr&gt;policy&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dsun.java.command=com.ibm.&lt;wbr&gt;&lt;/wbr&gt;wsspi.bootstrap.WSPreLauncher -nosplash -application com.ibm.ws.bootstrap.&lt;wbr&gt;&lt;/wbr&gt;WSLauncher com.ibm.ws.runtime.WsServer C:\WebSphere8\m1116.12\&lt;wbr&gt;&lt;/wbr&gt;profiles\AppSrv01\config smitaNode03Cell smitaNode03 server1&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; -Dsun.java.launcher=SUN_&lt;wbr&gt;&lt;/wbr&gt;STANDARD&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _port_library 0x000007FFFF235F20&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _bfu_java 0x000007FFFF238230&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family: 'courier new',monospace; font-size: x-small;"&gt;2CIUSERARG &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; _org.apache.harmony.vmi.&lt;wbr&gt;&lt;/wbr&gt;portlib 0x0000000000151140&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-1428397507917488557?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/1428397507917488557/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/on-intel-linux-platform-what-are.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1428397507917488557'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/1428397507917488557'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/on-intel-linux-platform-what-are.html' title='On an intel linux platform, what are the default java parameters that are used when starting WebSphere Application Server ? java -Xmx… etc ?'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-720900747914135580</id><published>2011-07-06T10:14:00.000-07:00</published><updated>2011-07-22T12:06:18.128-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Tuning WebSphere Application Server Dynamic Cache Service (Dynacache) and Data Replication Service (DRS) for replication</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;If you want to improve the consistency &amp;amp; performance of your WebSphere Application Server DistributedMap replicated cache please follow these best practices&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Dynacache Tuning&lt;/b&gt;&lt;/div&gt;&lt;div&gt;1. Change replication type of the replication domain to either NOT_SHARED or PUSH depending on your replication needs. NOT_SHARED scales better than PUSH because it only replicates invalidations not cache data.&lt;/div&gt;&lt;div&gt;2. Ensure that the API calls that are putting objects in the cache are NOT overriding the sharing type of the replication domain&lt;/div&gt;&lt;div&gt;3.&amp;nbsp;Set the following as JVM custom properties or as properties on your servlet/object cache instance to reduce redundant DRS traffic, improve performance &amp;amp; force creation of cache instances&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.filterLRUInvalidation = true&lt;/li&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.filterTimeOutInvalidation = true &amp;nbsp;&amp;nbsp;&lt;/li&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.filterInactivityInvalidation= true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* requires a relatively recent APAR. check with support&lt;/li&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.ignoreValueInInvalidationEvent = true&lt;/li&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.useServerClassLoader = true&lt;/li&gt;&lt;li&gt;com.ibm.ws.cache.CacheConfig.&lt;a href="http://wasdynacache.blogspot.com/2011/05/dynacache-questions-and-answers-on-data.html"&gt;createCacheAtServerStartup&lt;/a&gt; = true &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;* since WAS v7&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;4. [Optional] In the PUSH replication mode to eliminate the bootstrap of cache data, &amp;nbsp;the application code that gets an instance of distributedMap should call distributedMap.setDRSBootstrap(false). Please note this will prevent the synchronization of cache instance across JVMs in the replication domain at server startup.&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Data Replication Service (DRS) Tuning&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Configure DRS to use its own threadpool &amp;nbsp; &amp;nbsp; *default since 7.0.0.15&lt;/div&gt;&lt;div&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PM16027"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg1PM16027&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;High Availability Manager (HAManager) &amp;amp; Data Consistency Services (DCS) Tuning&amp;nbsp;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21251873"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21251873&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;HAManager Protocol Versions&lt;/b&gt;&lt;br /&gt;Bump up the  lower level wire format (IBM_CS_WIRE_FORMAT_VERSIONcore group custom property) and the high availability manager (IBM_CS_HAM_PROTOCOL_VERSION core group custom property)&amp;nbsp; coregroup protocol versions to the latest one supported. See the following &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/crun_ha_protocol_ver.html"&gt;article &lt;/a&gt;in the Infocenter. New protocol versions are added to the product if new messages,or new algorithms are required to support new product features, orto improve core group performance. Please note that because the new messages, or newalgorithm might not be compatible with the existing messages or algorithm,a new protocol might not be able to interoperate with the old versionof the protocol. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Please also revisit my earlier &lt;a href="http://wasdynacache.blogspot.com/2011/05/dynacache-questions-and-answers-on-data.html"&gt;FAQ&lt;/a&gt;&amp;nbsp; and &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21313480"&gt;technote&lt;/a&gt; on cache replication&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;Please also read this olden goldie on &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg27006431"&gt;Dynacache and DRS Best Practices&lt;/a&gt;. &lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-720900747914135580?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/720900747914135580/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/tuning-dynacache-and-drs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/720900747914135580'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/720900747914135580'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/tuning-dynacache-and-drs.html' title='Tuning WebSphere Application Server Dynamic Cache Service (Dynacache) and Data Replication Service (DRS) for replication'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2985110010700397136</id><published>2011-07-05T14:59:00.000-07:00</published><updated>2011-07-06T07:11:48.342-07:00</updated><title type='text'>Network issues</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;If you are having consistent network disruption issues with the JVM like UnknownHostExceptions, hostname DNS lookup failures etc you can try setting the following JVM option on the IBM JREs&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace; font-size: large;"&gt;&lt;b&gt;-Xtrace:methods={java/net/*},print=mt&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;to print all the activities happening over the net package giving you sufficient information to find out what is happening.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;JVM networking APIs are a thin veneer over the OS APIs. There are a couple of flags that control network JVM settings &amp;nbsp;i.e.&amp;nbsp;preferring IPV4 or IPV6,&amp;nbsp;caching the result of a local host lookup to avoid trips to the DNS &amp;amp;&amp;nbsp;caching of lookup results.&amp;nbsp;Generally speaking, all the interesting stuff happens in the OS.&lt;br /&gt;&lt;br /&gt;If you are having network issues with HAManager and DCS WebSphere components you can configure the&amp;nbsp; &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/urun_ha_cg_custprop.html"&gt;&lt;b&gt;IBM_CS_IP_REFRESH_MINUTES&lt;/b&gt; &lt;/a&gt;custom property that controls how frequently the core group IP cache is cleared. By default the value is 60 seconds. &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-size: 19px; font-weight: bold;"&gt;Java Networking Custom Properties&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;blockquote&gt;&lt;dl&gt;&lt;dt&gt;&lt;b&gt;java.net.preferIPv4Stack&lt;/b&gt;&amp;nbsp;(default: false)&lt;/dt&gt;&lt;dd&gt;If IPv6 is available on the operating system the underlying native socket will be an IPv6 socket. This allows Java(tm) applications to connect too, and accept connections from, both IPv4 and IPv6 hosts.If an application has a preference to only use IPv4 sockets then this property can be set to true. The implication is that the application will not be able to communicate with IPv6 hosts.&lt;/dd&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;dt&gt;&lt;b&gt;java.net.preferIPv6Addresses&lt;/b&gt;&amp;nbsp;(default: false)&lt;/dt&gt;&lt;dd&gt;If IPv6 is available on the operating system the default preference is to prefer an IPv4-mapped address over an IPv6 address. This is for backward compatibility reasons - for example applications that depend on access to an IPv4 only service or applications that depend on the %d.%d.%d.%d representation of an IP address. This property can be set to try to change the preferences to use IPv6 addresses over IPv4 addresses. This allows applications to be tested and deployed in environments where the application is expected to connect to IPv6 services.&lt;/dd&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="nct"&gt;&lt;/a&gt;&lt;br /&gt;&lt;dt&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="nct"&gt;&lt;b&gt;networkaddress.cache.ttl&lt;/b&gt;&amp;nbsp;(default: -1)&lt;/a&gt;&lt;/dt&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="nct"&gt;&lt;/a&gt;&lt;dd&gt;Specified in java.security to indicate the caching policy for successful name lookups from the name service.. The value is specified as as integer to indicate the number of seconds to cache the successful lookup.A value of -1 indicates "cache forever".&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="ncnt"&gt;&lt;/a&gt;&lt;/dd&gt;&lt;dt&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="ncnt"&gt;&lt;b&gt;networkaddress.cache.negative.ttl&lt;/b&gt;&amp;nbsp;(default: 10)&lt;/a&gt;&lt;/dt&gt;&lt;a href="http://www.blogger.com/post-edit.g?blogID=6741080397454890783&amp;amp;postID=2985110010700397136&amp;amp;from=pencil" name="ncnt"&gt;&lt;/a&gt;&lt;dd&gt;Specified in java.security to indicate the caching policy for un-successful name lookups from the name service.. The value is specified as as integer to indicate the number of seconds to cache the failure for un-successful lookups.A value of 0 indicates "never cache". A value of -1 indicates "cache forever".&lt;/dd&gt;&lt;/dl&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2985110010700397136?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2985110010700397136/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/network-issues.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2985110010700397136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2985110010700397136'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/network-issues.html' title='Network issues'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2413747563859368282</id><published>2011-07-01T06:34:00.000-07:00</published><updated>2011-07-01T06:39:54.944-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>WebSphere Application Server stopped automatically after network cable was unplugged</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If you find that your application server stopped automatically after a network cable was unplugged or some sort of adverse network event, please look for the following stack trace in the SystemOut.log&lt;br /&gt;&lt;br /&gt;&lt;div style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;span style="font-size: x-small;"&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &lt;b style="color: red;"&gt;Panic:component requested panic from isAlive&lt;/b&gt;&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O java.lang.RuntimeException: emergencyShutdown called: &lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.runtime.component.ServerImpl.emergencyShutdown(ServerImpl.java:633)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.hamanager.runtime.RuntimeProviderImpl.panicJVM(RuntimeProviderImpl.java:92)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.hamanager.coordinator.impl.JVMControllerImpl.panicJVM(JVMControllerImpl.java:56)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.hamanager.impl.HAGroupImpl.doIsAlive(HAGroupImpl.java:866)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.hamanager.impl.HAGroupImpl$HAGroupUserCallback.doCallback(HAGroupImpl.java:1364)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.hamanager.impl.Worker.run(Worker.java:64)&lt;br /&gt;[6/30/11 9:50:19:339 EDT] 00000018 SystemOut&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; O &amp;nbsp;&amp;nbsp;&amp;nbsp; at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1604)&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Look for any&amp;nbsp; HMGR informational messages like &lt;a href="http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=/com.ibm.websphere.messages.doc/com.ibm.ws.hamanager.nls.HAManagerMessages.html"&gt;HMGR0130I &lt;/a&gt;that indicate why the JVM was terminated.&lt;br /&gt;If you using SIBus read this technote&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21496900"&gt; http://www-01.ibm.com/support/docview.wss?uid=swg21496900&lt;/a&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;From technote &lt;/i&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;"WebSphere Application Server uses database tables to store Java Message Service (JMS) messages. Anytime the messaging engine loses its connection to the data store, the JVM shuts down in an orderly fashion to prevent data loss. If the messaging engine were to continue to run and accept work, results might be unpredictable and your messaging engine might be in an inconsistent state when the data store connection is restored. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;If you continually see this problem, consider modifying the Retry Interval for your data source. This value specifies the length of time, in seconds, that the application server waits before retrying to make a connection if the initial attempt fails. By default, this value is 0. If you set the value to 3, the connection is retried instead of holding onto a bad connection. You can find more information on datasource properties in the WebSphere Application Server data source properties topic within the WebSphere Application Server Information Center. "&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;Happy Debugging :)&lt;/span&gt;&lt;br /&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/6741080397454890783-2413747563859368282?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2413747563859368282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/websphere-application-server-stopping.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2413747563859368282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2413747563859368282'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/websphere-application-server-stopping.html' title='WebSphere Application Server stopped automatically after network cable was unplugged'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-55372067776045946</id><published>2011-07-01T06:19:00.000-07:00</published><updated>2011-07-01T06:28:13.455-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application performance'/><title type='text'>Need a cheatsheat  or guide to setting up ITCAM with WebSphere Application Server (WAS) ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;If you wanted one place to review ALL easy to read documentation for setting up ITCAM with WebSphere Application Server please go to -&lt;br /&gt;&lt;br /&gt;The ITCAM for AD Deployment Guide is a wiki available at&amp;nbsp; &lt;a href="https://www.ibm.com/developerworks/wikis/display/tivolimonitoring/ITCAM+for+Application+Diagnostics+Deployment+Guide%20"&gt;https://www.ibm.com/developerworks/wikis/display/tivolimonitoring/ITCAM+for+Application+Diagnostics+Deployment+Guide &lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This wiki guides you through the process of successfully deploying and maintaining ITCAM for Application Diagnostics; it includes links to the Application Diagnostics InfoCenter, and to some product technotes.&lt;br /&gt;&lt;br /&gt;If you have time please go through this video for a deep-dive&amp;nbsp; into ITCAM for WAS &lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://1.gvt0.com/vi/cp6jCfZxrRk/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/cp6jCfZxrRk&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/cp6jCfZxrRk&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;Happy monitoring &amp;amp; debuggging !&lt;br /&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/6741080397454890783-55372067776045946?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/55372067776045946/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/need-cheatsheat-or-guide-to-setting-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/55372067776045946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/55372067776045946'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/07/need-cheatsheat-or-guide-to-setting-up.html' title='Need a cheatsheat  or guide to setting up ITCAM with WebSphere Application Server (WAS) ?'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4410832736937405164</id><published>2011-06-30T08:18:00.000-07:00</published><updated>2011-06-30T12:34:19.441-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='caching performance'/><title type='text'>How Mainframe customers can cut cost through FRCA caching in WebSphere Application Server for zOS</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-xKwzjcirnFU/TgyQULw0X3I/AAAAAAAACho/8yl4lYSSJLk/s1600/FRCA-1.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-xKwzjcirnFU/TgyQULw0X3I/AAAAAAAACho/8yl4lYSSJLk/s1600/FRCA-1.png" /&gt;&lt;/a&gt;&lt;/div&gt;If you&amp;nbsp; deploy WAS on zOS and serve static  (images, css files, static HTML) and dynamic content&amp;nbsp; (servlets, JSPs) from your application please stop and read this blog post.&lt;br /&gt;&lt;br /&gt;Starting WAS 7 WebSphere Application Server for z/OS can be configured to use the Fast Response Cache Accelerator facility of the z/OS Communications&lt;br /&gt;&lt;br /&gt;Server TCP/IP FRCA has been used for years inside the IBM HTTP Server to cache static contents like pictures or HTML files.&lt;br /&gt;&lt;br /&gt;The high speed-cache can now be used to cache &lt;b&gt;static and dynamic contents&lt;/b&gt;, such as servlets and JSP files, instead of using the WebSphere Application Server Dynamic Cache.&lt;br /&gt;&lt;br /&gt;ROI Benefits of using FRCA to cache static and dynamic content&amp;nbsp; in a customer retail application to zOS customers can be seen in the two charts below:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-cxFI1_V-PNI/TgySV0WbVtI/AAAAAAAAChs/4AHV__vg-e4/s1600/FRCA-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-cxFI1_V-PNI/TgySV0WbVtI/AAAAAAAAChs/4AHV__vg-e4/s1600/FRCA-2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Exploitation of FRCA is really as an extension to the existing Dynamic Cache (“DynaCache”) capability of each Application Server.FRCA is defined as an “External Cache Group,”and the “Adapter Bean”is what provides the function to access FRCA. &lt;b&gt;Application servers &amp;gt; [server] &amp;gt; Dynamic cache service &amp;gt; External cache group&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;In addition to enabling FRCA you will also need to write a cachespec.xml that tells Dynacache what to cache in the FRCA cache and drop it in the application's WEB-INF directory. A sample of this cachespec.xml&amp;nbsp; for caching ALL static content can be found &lt;a href="http://wasdynacache.blogspot.com/2011/06/dynacache-cache-policy-for-caching-all.html#links"&gt;here&lt;/a&gt;. &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BVwHyiYoGVM/TgyS-GoiG0I/AAAAAAAAChw/64HX4-1fMLY/s1600/FRCA-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://1.bp.blogspot.com/-BVwHyiYoGVM/TgyS-GoiG0I/AAAAAAAAChw/64HX4-1fMLY/s1600/FRCA-3.png" /&gt;&lt;/a&gt;&lt;/div&gt;Detailed description on HOW to configure FRCA for WAS can be found in the &lt;a href="javascript:x=unescape('http%3A//www.redbooks.ibm.com/redbooks/SG247615/wwhelp/wwhimpl/api.htm%3Fhref%3Dch7.htm');if(typeof(window.WWHFrame)!='undefined'){window.WWHFrame.WWHHelp.fSetContextDocument(x);}else{y=eval(%22document.open();document.writeln('&amp;lt;a%20href=\u0022%22+x+%22\u0022&amp;gt;%22+x+%22&amp;lt;/a&amp;gt;');document.close();%22);}"&gt;Chapter 7&lt;/a&gt; of WebSphere Application Server&lt;a href="http://www.redbooks.ibm.com/abstracts/sg247615.html"&gt; V7 Administration and Configuration Guide&lt;/a&gt;, SG24-7615.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4410832736937405164?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4410832736937405164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/how-mainframe-customers-can-cut-cost.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4410832736937405164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4410832736937405164'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/how-mainframe-customers-can-cut-cost.html' title='How Mainframe customers can cut cost through FRCA caching in WebSphere Application Server for zOS'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-xKwzjcirnFU/TgyQULw0X3I/AAAAAAAACho/8yl4lYSSJLk/s72-c/FRCA-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8366982916638984142</id><published>2011-06-30T05:48:00.000-07:00</published><updated>2011-07-01T06:25:54.830-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='debugging'/><title type='text'>Need to troubleshoot slow http requests ?</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Today's post is an answer from WebSphere Application Server SWAT Team member &lt;b&gt;&lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/0806_supauth/0806_supauth.html#author1"&gt;Kevin Grigorenko&lt;/a&gt; &lt;/b&gt;in response to the question &lt;i&gt;&amp;nbsp;&lt;/i&gt;&lt;br /&gt;&lt;div style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;i&gt;Given the problem of a slow HTTP interaction (as measured by a load generation client for example), how would you go about gathering more detail on where the time is being spent?&lt;/i&gt;&lt;/div&gt;&lt;br /&gt;1. Leverage the&amp;nbsp; &lt;a href="http://www.alphaworks.ibm.com/tech/tra"&gt;Trace Request Analyzer&lt;/a&gt; plugin from ISA with the detection gap set to 1ms. Trace and Request Analyzer for WebSphere Application Server allows you to find delays and possible hangs from WebSphere trace files and HTTP plug-in traces by parsing call trees of methods and traces and calculating delays in each method and trace.&lt;br /&gt;&lt;br /&gt;2. Take three or four javacores spread 20 seconds apart to see if threads are hanging in particular java operation or code paths. Javacores are the poor man's profiler to debug performance issues.&lt;br /&gt;&lt;br /&gt;3. Use Request Metrics (you can start off at Hops and then, if necessary, Performance_debug). This will print a line to SystemOut.log for each request, information like the URL and user IP, and how long it took (and if you do component level, how long each component took, e.g. a servlet forward, etc. -- I think Hops will show database times since it's a boundary). This functionality is essentially what monitoring tools use (just as an agent instead of SystemOut.log). Often, ARM to SystemOut.log has a huge overhead, so you can use a filter if you have some idea of what might be causing the slow request. &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/uprf_rrequestmetrics.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/uprf_rrequestmetrics.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;4. If IHS or an ODR or some other web server fronts WAS, then you can use something like LogFormat %D or %T to print the time each request takes to access.log and then dive into that slow URL from there. You can also use this to then filter ARM in #3.&lt;a href="http://www.blogger.com/%20http://publib.boulder.ibm.com/httpserv/manual70//mod/mod_log_config.html"&gt; http://publib.boulder.ibm.com/httpserv/manual70//mod/mod_log_config.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;5. Use a &lt;a href="http://w3.ibm.com/connections/blogs/swatblog/entry/custom_low_overhead_was_arm_agent_that_prints_slow_requests?lang=en_us"&gt;custom Request Metrics agent&lt;/a&gt;, that can do, for example, a javacore when a request takes over a threshold, like 1 second -- this can essentially be extended to do what a monitoring product does -- i.e. avoiding the overhead of SystemOut.log -- let me know if you need the code.&lt;br /&gt;&lt;br /&gt;6. Use a monitoring product like &lt;a href="http://wasdynacache.blogspot.com/2011/07/need-cheatsheat-or-guide-to-setting-up.html#links"&gt;ITCAM &lt;/a&gt;or Wily Introscope or HP Open View.&lt;br /&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&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/6741080397454890783-8366982916638984142?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8366982916638984142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/todays-post-is-answer-from-kevin.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8366982916638984142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8366982916638984142'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/todays-post-is-answer-from-kevin.html' title='Need to troubleshoot slow http requests ?'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total><georss:featurename>Morrisville, NC, USA</georss:featurename><georss:point>35.823483 -78.82556210000001</georss:point><georss:box>35.788166000000004 -78.86160310000001 35.8588 -78.78952110000002</georss:box></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-2269760826061439756</id><published>2011-06-20T14:10:00.000-07:00</published><updated>2011-06-20T14:11:03.181-07:00</updated><title type='text'>Dynacache cache policy for caching all static content in an Application</title><content type='html'>Copy this into a cachespec.xml file and put this in the WEB-INF directory of your application. Please enable servlet caching on the WebContainer. &lt;pre name="code" class="xml"&gt;&lt;br /&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; ?&amp;gt;&lt;br /&gt;&amp;lt;!DOCTYPE cache SYSTEM &amp;quot;cachespec.dtd&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;cache&amp;gt;&lt;br /&gt;       &amp;lt;!-- Cache Entry for the File Serving Servlet&lt;br /&gt;        Will cache all static content in the web application --&amp;gt;&lt;br /&gt; &amp;lt;cache-entry&amp;gt;&lt;br /&gt;  &amp;lt;class&amp;gt;static&amp;lt;/class&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;com.ibm.ws.webcontainer.servlet.SimpleFileServlet.class&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;cache-id&amp;gt;&lt;br /&gt;   &amp;lt;component id=&amp;quot;&amp;quot; type=&amp;quot;pathinfo&amp;quot;&amp;gt;&lt;br /&gt;    &amp;lt;required&amp;gt;true&amp;lt;/required&amp;gt;&lt;br /&gt;   &amp;lt;/component&amp;gt; &lt;br /&gt;   &amp;lt;timeout&amp;gt;300&amp;lt;/timeout&amp;gt;&lt;br /&gt;  &amp;lt;/cache-id&amp;gt;&lt;br /&gt; &amp;lt;/cache-entry&amp;gt;&lt;br /&gt;&amp;lt;/cache&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-2269760826061439756?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/2269760826061439756/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/dynacache-cache-policy-for-caching-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2269760826061439756'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/2269760826061439756'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/dynacache-cache-policy-for-caching-all.html' title='Dynacache cache policy for caching all static content in an Application'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7608796509921824685</id><published>2011-06-20T13:50:00.000-07:00</published><updated>2011-06-20T13:59:27.094-07:00</updated><title type='text'>Static HTTP Caching in relation to Dynacache</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;There are &lt;a href="http://www.mnot.net/cache_docs/#KINDS"&gt;different kinds of HTTP caches&lt;/a&gt; like browser caches, gateway caches and proxy caches.All these can be generically be termed as web caches. They are primarily used to reduce latency and network traffic.&lt;br /&gt;&lt;br /&gt;There are two models of managing these HTTP caches i.e. Expiration and Validation. In expiration you specify how long a response should be considered “fresh” by including either or both of the Cache-Control: max-age=N or Expires headers. Caches that understand expiration will not make the same request until the cached version reaches its expiration time and becomes “stale”. The Validation model is used for dynamic web apps where changes in resource state occur frequently and unpredictably. Validation is usedby servers and caches to communicate when an representation has changed. Byusing it, caches avoid having to download the entire representation when theyalready have a copy locally, but they’re not sure if it’s still fresh. This is done through the use of validators. The two most common validators are 1. the time that the document last changed, as communicated in Last-Modified header and 2. &lt;a href="http://www.mnot.net/cache_docs/"&gt;ETags &lt;/a&gt;which are unique identifiers that are generated by the server and changed every time the representation does. Because the server controls how the ETag is generated, caches can be surer that if the ETag matches when they make a If-None-Match request, the representation really is the same.&lt;br /&gt;&lt;br /&gt;Dynacache does NOT provide support for&amp;nbsp; HTTP Cache-Control headers. This support is provided by the webcontainer on the server side and the WebSphere Proxy Server, ODR and IHS on the edge tier. Dynacache has been build ground up for page fragment caching which does not fit well with the principles of HTTP caching. The Cache-Control headers that control HTTP Caches apply to the entire response and NOT fragments. Dynacache will not look in the cache and automatically set Cache-Control headers, nor do a conditional GET to return a 304. &lt;br /&gt;&lt;br /&gt;Static HTTP Cache-Control caching works really well for static resources like static HTML, jpg, gif, etc. These static resources can be cached in DynaCache using the &lt;i&gt;static&lt;/i&gt; caching policy class. On WAS7 zOS the FRCA cache is an excellent place to stash your static content.&amp;nbsp; The real advantage of caching using HTTP Cache-Control headers is that the cache is distributed across tiers i.e. between one or more Web servers; however the disadvantage is that the cache cannot be purged effectively on demand. &lt;br /&gt;&lt;br /&gt;&lt;div style="color: blue;"&gt;In summary, you can use DynaCache for caching both dynamic and static content; however Dynacache does NOT provide support for HTTP Cache-Control headers.  Caching of static content in Dynacache is done by configuring the right cachespec.xml and leveraging FRCA technology on zOS. It is better to cache static content (images, html, css, etc) on the edge tier. &lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7608796509921824685?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7608796509921824685/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/static-http-caching-in-relation-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7608796509921824685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7608796509921824685'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/static-http-caching-in-relation-to.html' title='Static HTTP Caching in relation to Dynacache'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6506061246576843418</id><published>2011-06-17T10:50:00.000-07:00</published><updated>2011-06-20T13:03:28.387-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='was'/><title type='text'>WebSphere Application Server Beta 8 has ENDED.</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: arial,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: arial,sans-serif;"&gt;WAS 8 Beta has ended and WAS 8.0 is now generally available for production and support.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: arial,sans-serif;"&gt;Thank you for your participation and support. &lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial,sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial,sans-serif;"&gt;&lt;span class="Apple-style-span"&gt;Today June 17 2011, we eGA three critical products containing key new function, innovation, and performance enhancements. WAS V8, Compute Grid V8, and the Web 2.0 and Mobile Feature Pack 1.1 all deliver key function at a critical time for customers seeking to transform their business models for increasing growth and agility.&lt;/span&gt;Please note that since &amp;nbsp;the IBM® WebSphere® Application Server Version 8.0 has now been officially released. You may obtain a trial version, free of charge, from&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/downloads/ws/was/?S_TACT=105AGX28&amp;amp;S_CMP=TRIALS" style="color: #4c6e94;"&gt;here&lt;/a&gt;. You will also find information on how to purchase this product, as well as free trial support.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;WAS V8 is the fastest, highest quality application server that is the easiest to migrate to, install&amp;nbsp; and service.&lt;br /&gt;See technical announcement on &lt;a href="http://webspherecommunity.blogspot.com/"&gt;http://webspherecommunity.blogspot.com/&lt;/a&gt;&lt;br /&gt;For production and support please see &lt;a href="http://www-01.ibm.com/software/webservers/appserv/was/features"&gt;http://www-01.ibm.com/software/webservers/appserv/was/features&lt;/a&gt;&lt;br /&gt;For a free developer version please see &lt;a href="http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/index.html"&gt;http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/index.html&lt;/a&gt;&lt;br /&gt;For a trial version please see &lt;a href="http://www.ibm.com/developerworks/downloads/ws/was/"&gt;http://www.ibm.com/developerworks/downloads/ws/was/&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-6506061246576843418?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6506061246576843418/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/websphere-application-server-beta-8-has.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6506061246576843418'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6506061246576843418'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/06/websphere-application-server-beta-8-has.html' title='WebSphere Application Server Beta 8 has ENDED.'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7269429560502733588</id><published>2011-05-30T06:19:00.000-07:00</published><updated>2011-05-30T06:22:40.029-07:00</updated><title type='text'>Reducing WebSphere Application Server I/O overhead</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;i&gt;Best practices for reducing I/O overhead of WebSphere Application Server:&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;If you applications on WAS are I/O intensive i.e do a lot of logging then following the best practices below will help reduce the stress on the OS I/O sub-system. If you run into issues with incomplete logging or with truncated javacores then reducing the amount of information logged to the system may help reduce the severity of the problem. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. Disable the WebSphere Application Server service log/activity log&lt;/b&gt;&lt;br /&gt;The service log is more commonly known as the activity.log and is found in the&lt;was_install_root&gt;/profiles/&lt;profile&gt;/logs directory. There is only oneactivity.log for each node. WebSphere Application Server runtime events arelogged to the activity.log. It is written in binary format, so it cannot be viewed in a text editor.&lt;/profile&gt;&lt;/was_install_root&gt;&lt;br /&gt;&lt;br /&gt;&lt;was_install_root&gt;&lt;profile&gt; The main purpose of the activity.log is that it can be viewed with theLog Analyzer tool, is a graphical user interface that displays the events from theactivity.log and uses a symptom database to analyze the events and diagnoseproblems.&lt;span style="color: red;"&gt;This service is not essential to WAS and very few system administrator make use of the activity / service log.&lt;/span&gt;&lt;/profile&gt;&lt;/was_install_root&gt;&lt;br /&gt;&lt;br /&gt;&lt;was_install_root&gt;&lt;profile&gt;You can configure properties of the activity.log in the administrative console:&amp;nbsp;&lt;/profile&gt;&lt;/was_install_root&gt;&lt;br /&gt;&lt;was_install_root&gt;&lt;profile&gt;1. Select Troubleshooting → Logs and Trace.&amp;nbsp;&lt;/profile&gt;&lt;/was_install_root&gt;&lt;br /&gt;&lt;was_install_root&gt;&lt;profile&gt;2. Select the WebSphere Application Server process.&amp;nbsp;&lt;/profile&gt;&lt;/was_install_root&gt;&lt;br /&gt;&lt;was_install_root&gt;&lt;profile&gt;3. Select IBM® Service Logs. Disable the activity.log.&lt;/profile&gt;&lt;/was_install_root&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7269429560502733588?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7269429560502733588/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/reducing-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7269429560502733588'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7269429560502733588'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/reducing-websphere-application-server.html' title='Reducing WebSphere Application Server I/O overhead'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6696083384591294999</id><published>2011-05-24T05:02:00.000-07:00</published><updated>2011-09-30T10:08:38.174-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dynacache'/><title type='text'>Dynacache vs Memcached</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;This is&amp;nbsp; a series of posts comparing caching technologies. The first in this series is Dynacache vs Memcached. &lt;br /&gt;&lt;br /&gt;&lt;div style="width:425px" id="__ss_9490168"&gt; &lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/kelapure/caching-technology-comparison-9490168" title="Caching technology comparison" target="_blank"&gt;Caching technology comparison&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/9490168" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"&gt;&lt;/iframe&gt; &lt;div style="padding:5px 0 12px"&gt; View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/kelapure" target="_blank"&gt;kelapure&lt;/a&gt; &lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-6696083384591294999?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6696083384591294999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-vs-memcached.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6696083384591294999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6696083384591294999'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-vs-memcached.html' title='Dynacache vs Memcached'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-3410732668901803409</id><published>2011-05-19T07:58:00.000-07:00</published><updated>2011-05-19T07:58:24.609-07:00</updated><title type='text'>WAS GenCon Garbage Collection Policy</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;In WebSphere Application Server v8 that will be available from June 17 the default garbage collection policy has been changed to &lt;b&gt;gencon. &lt;/b&gt;&lt;br /&gt;You may wonder why this policy is now the default&amp;nbsp; ?&lt;br /&gt;&lt;br /&gt;■ GenCon is good for transactional workloads: when the transaction is done, most of the objects are thrown away&lt;br /&gt;■ GenCon is good for interactive workloads: short GC pauses mean high responsiveness&lt;br /&gt;■ Many applications fit one of these models&lt;br /&gt;■ Many common Java idioms create short-lived helper objects:&lt;br /&gt;– e.g. StringBuffer / StringWriter,&lt;br /&gt;– e.g. Enumerator / Iterator&lt;br /&gt;■ A smaller collection area means a smaller working set, improving cache utilization&lt;br /&gt;■ The young generation collector compacts as it collects, reducing fragmentation&lt;br /&gt;■ It also tends to relocate objects so that related objects move closer together&lt;br /&gt;– For example: a String and its char[] array, or a HashTable$Entry and its key.&lt;br /&gt;– This can bring significant cache benefits&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Things to be aware of when using gencon&lt;/b&gt;&lt;br /&gt;■ Tenured objects are rarely collected (by design!) -- this can lead to objects living longer than&lt;br /&gt;expected. A common case of this is class unloading&lt;br /&gt;&amp;nbsp;■ Similar problems exist for finalization and reference objects that survive long enough to be&lt;br /&gt;tenured&lt;br /&gt;■ Newspace overhead: since the young generation is divided into semi-spaces, there is&lt;br /&gt;always a small amount of unusable heap&lt;br /&gt;&lt;br /&gt;Please look at this presentation on&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;&lt;a href="http://www.websphereusergroup.org.uk/wug/files/presentations/31/Chris_Bailey_-_Generational_GC.pdf"&gt;Generational Garbage Collection: Theory and Best Practices&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&amp;nbsp;on the UK WebSphere Users Group&amp;nbsp;http://www.websphereusergroup.org.uk/wug/files/presentations/31/Chris_Bailey_-_Generational_GC.pdf&lt;br /&gt;&lt;br /&gt;&lt;br /&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/6741080397454890783-3410732668901803409?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/3410732668901803409/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/was-gencon-garbage-collection-policy.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3410732668901803409'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3410732668901803409'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/was-gencon-garbage-collection-policy.html' title='WAS GenCon Garbage Collection Policy'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8957953593775248936</id><published>2011-05-18T05:38:00.000-07:00</published><updated>2011-05-18T15:28:07.929-07:00</updated><title type='text'>WebSphere Application Server Top 10 Tuning Recommendations</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-WcvZeQJt97k/TdPa0xDgfII/AAAAAAAACgE/Jt15nbGDvWk/s1600/multipleJVM_Throughput.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div style="font-family: Georgia,&amp;quot;Times New Roman&amp;quot;,serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;i&gt;This blog post is based on a talk given at IMPACT 2011 by WebSphere Chief Performance Architect&amp;nbsp; &lt;b&gt;Surya Duggirala&amp;nbsp; &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&amp;nbsp; &lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#10 - &lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/fep/topic/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tprf_tuneopsys.html"&gt;Properly Tune the Operating System&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Operating System is consistently overlooked for functional tuning as well as performance tuning. &lt;/li&gt;&lt;li&gt;Understand the hardware infrastructure backing your OS.  Processor counts, speed, shared/unshared, etc&lt;/li&gt;&lt;li&gt;ulimit values need to be set correctly. Main player here is the number of open file handles (ulimit –n). Other process size and memory ones may need to be set based on application&lt;/li&gt;&lt;li&gt;Make sure NICs are set to full duplex and correct speeds&lt;/li&gt;&lt;li&gt;Large pages need to be enabled to take advantage of –Xlp JDK parametes&lt;/li&gt;&lt;li&gt;If enabled by default check RAS settings on OS and tune them down&lt;/li&gt;&lt;li&gt;Configure TCP/IP timeouts correctly for your applications needs&lt;/li&gt;&lt;li&gt;Depending on the load being placed on the system look into advanced tuning techniques such as pinning WAS processes via RSET or TASKSET as well as pinning IRQ interrupts&lt;/li&gt;&lt;/ul&gt;&lt;span id="goog_2090971341"&gt;&lt;/span&gt;&lt;span id="goog_2090971342"&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&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://2.bp.blogspot.com/-WcvZeQJt97k/TdPa0xDgfII/AAAAAAAACgE/Jt15nbGDvWk/s1600/multipleJVM_Throughput.png" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="310" src="http://2.bp.blogspot.com/-WcvZeQJt97k/TdPa0xDgfII/AAAAAAAACgE/Jt15nbGDvWk/s400/multipleJVM_Throughput.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;WAS Throughput with processor pinning&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#9 – Keep Application Logging to a Minimum&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt; Never should there be information outside of error cases being written to SystemOut.log&lt;/li&gt;&lt;li&gt;If using logging build your log messages only when needed&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="color: #6aa84f;"&gt;Good&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul style="color: #38761d; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;"&gt;&lt;li&gt;&lt;span style="font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;if(loggingEnabled==true){ errorMsg = “This is a bad error” + “ “ + failingObject.printError();}&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;b&gt;&lt;span style="color: red;"&gt;Bad&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: red; font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace; font-size: small;"&gt;errorMsg = “This is a bad error” + “ “ + failingObject.printError();&lt;br /&gt;If(loggingEnabled==true){ System.out.println(errorMsg); }&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Keep error and log messages to the point and easy to debug&lt;/li&gt;&lt;li&gt;If using Apache Commons, Log4J, or other frameworks ensure performance on your system is as expected&lt;/li&gt;&lt;li&gt;Ensure if you must log information for audit purposes or other reasons that you are writing to a fast disk&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#8 – Understand and Tune Infrastructure (databases &amp;amp; other interactive server systems)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;WebSphere Application Server and the system it runs on is typically only one part of the datacenter infrastructure and it has a good deal of reliance on other areas performing properly.Think of your infrastructure as a plumbing system.  Optimal drain performance only occurs when no pipes are clogged.&amp;nbsp;&lt;/li&gt;&lt;li&gt;On the WAS system itself you need to be vary aware of&lt;/li&gt;&lt;ul&gt;&lt;li&gt;What other WAS instances (JVMs) are doing and their CPU / IO profiles&lt;/li&gt;&lt;li&gt;How much memory other WAS instance (or other OS’s in a virtualized case) are using&lt;/li&gt;&lt;li&gt;Network utilization of other applications coexisting on the same hardware&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;In the supporting infrastructure&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Varying Network Latency can drastically effect split cell topologies, cross site data replication and database query latency&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Ensure network infrastructure is repeatable and robust&lt;/li&gt;&lt;li&gt;Don’t take for granted bandwidth or latency before going into production always test as labs vary&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Firewalls can cause issues with data transfer latencies between systems&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;On the database system&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Ensure that proper indexes and tuning is done for the applications request patterns&lt;/li&gt;&lt;li&gt;Ensure that the database supports the number of connected clients your WAS runtime will have&lt;/li&gt;&lt;li&gt;Understand the CPU load and impacts of other applications (batch, OLTP, etc all competing with your applications)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;On the database system&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Ensure that proper indexes and tuning is done for the applications request patterns&lt;/li&gt;&lt;li&gt;Ensure that the database supports the number of connected clients your WAS runtime will have&lt;/li&gt;&lt;li&gt;Understand the CPU load and impacts of other applications (batch, OLTP, etc all competing with your applications)&lt;/li&gt;&lt;/ul&gt;&lt;li&gt; On other application server systems or interactive server systems&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Ensure performance of connected applications is up for the load being requested of it by the WAS system&lt;/li&gt;&lt;li&gt;Verify that developers have coded specific handling mechanisms for when connected applications go down (You need to avoid storm drain scenarios)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#7 – Minimize HTTP Session Content&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;High performance data replication for application availability depends on correctly sized session data&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Keep it under 1MB in all cases if possible&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Only should be storing information critical to that users specific interaction with the server&lt;/li&gt;&lt;li&gt;If composite data is required build it progressively as the interaction occurs&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Configure Session Replication in WAS to meet your needs&lt;/li&gt;&lt;li&gt;Use different configuration options (async vs. synch) to give you the availability your application needs without compromising response time.&lt;/li&gt;&lt;li&gt;Select the replication topology that works best for you (DB, M2M, M2M Server)&amp;nbsp;&lt;/li&gt;&lt;li&gt;Keep replication domains small and/or partition where possible&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&amp;nbsp;#6 – Correctly Tune Thread Pools&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Thread pools and their corresponding threads control all execution on the hardware threads.&lt;/li&gt;&lt;li&gt;Understand which thread pools your application uses and size all of them appropriately based on utilization you see in tuning exercises&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Thread dumps, PMI metrics, etc will give you this data&amp;nbsp;&lt;/li&gt;&lt;li&gt;Thread Dump Memory Analyzer and Tivoli Performance viewer (TPV) will help in viewing this data. &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Think of the thread pool as a queuing mechanism to throttle how many active requests you will have running at any one time in your application.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Apply the funnel based approach to sizing these pools&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Example IHS (1000) -&amp;gt; WAS ( 50) -&amp;gt; WAS DB connection pool (30) -&amp;gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Thread numbers above vary based on application characteristics&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Since you can throttle active threads you can control concurrency through your codebase&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Thread pools needs to be sized with the total number of hardware processor cores in mind&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If sharing a hardware system with other WAS instances thread pools have to be tuned with that in mind.&lt;/li&gt;&lt;li&gt;You need to more than likely cut back on the number of threads active in the system to ensure good performance for all applications due to context switching at OS layer for each thread in the system&lt;/li&gt;&lt;li&gt;Sizing or restricting the max number of threads a application can have can sometimes be used to prevent rouge applications for impacting others.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Default sizes for WAS thread pools on v6.1 and above are actually a little to high for best performance&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Two to one ratio (threads to cores) typically yields the best performance but this varies drastically between applications and access patterns&lt;/li&gt;&lt;/ul&gt;&lt;/ul&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://2.bp.blogspot.com/-xiWsnvNwD_E/TdPbXvswH0I/AAAAAAAACgI/SnmrJniSimE/s1600/tune_tpool.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="160" src="http://2.bp.blogspot.com/-xiWsnvNwD_E/TdPbXvswH0I/AAAAAAAACgI/SnmrJniSimE/s400/tune_tpool.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;TPV &amp;amp; TDMA tool snapshots&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&amp;nbsp;#5 –Tune JDBC Data Sources&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Correct database connection pool tuning can yield significant gains in performance&lt;/li&gt;&lt;li&gt;This pool is highly contended in heavily multithreaded applications so ensuring significant available connections are in the pool leads to superior performance.&lt;/li&gt;&lt;li&gt;Monitor PMI metrics via TPV or others tools to watch for threads waiting on connections to the database as well as their wait time.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;If threads are waiting increase the number of pooled connections in conjunction with your DBA OR decrease the number of active threads in the system&lt;/li&gt;&lt;li&gt;In some cases, a one-to-one mapping between DB connections and threads may be ideal&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Frequently database deadlocks or bottlenecks first manifest themselves as a large number of threads from your thread pool waiting for connections&lt;/li&gt;&lt;li&gt;Always use the latest database driver for the database you are running as performance optimization in this space between versions are significant&lt;/li&gt;&lt;li&gt;Tune the Prepared Statement Cache Size for each JDBC data source&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Can also be monitored via PMI/TPV to determine ideal value&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#4 –Create Cells To Group Like Applications&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Create Cells and Clusters of application servers with an express purpose that groups them in some manner&lt;/li&gt;&lt;li&gt;Large Cells (400-500-1000 members) for the most part while supported don’t make sense&lt;/li&gt;&lt;li&gt;Group applications that need to replicate data to each other or talk to each other via RMI, etc and create cells and clusters around those commonalities.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Keeping cell size smaller leads to more efficient resource utilization due to less network traffic for configuration changes, DRS, HAManager, etc.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;For example, core groups should be limited to no more than 40 to 50 instances&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Smaller cells and logic grouping make migration forward to newer versions of products easier and more compartmentalized.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#3 – Ensure Uniform Configuration Across Like Servers&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Uniform configuration of software parameters and even operating systems is a common stumbling block &lt;/li&gt;&lt;li&gt;Most times manifests itself as a single machine or process that is burning more CPU, Memory or garbage collecting more frequently&lt;/li&gt;&lt;li&gt;Easiest way to manage this is to have a “dump configuration” script that runs periodically&lt;/li&gt;&lt;li&gt;Store the scripts results off and after each configuration change or application upgrade track differences &lt;/li&gt;&lt;li&gt;Leverage the &lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/0710_supauth/0710_supauth.html"&gt;Visual Configuration Explorer (VCE)&lt;/a&gt; tool available within ISA&lt;/li&gt;&lt;/ul&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://4.bp.blogspot.com/-BMEms8k4LsM/TdPb4dfql5I/AAAAAAAACgQ/Vqh3xPNJHQQ/s1600/vce.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="303" src="http://4.bp.blogspot.com/-BMEms8k4LsM/TdPb4dfql5I/AAAAAAAACgQ/Vqh3xPNJHQQ/s400/vce.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Visual Configuration Explorer (VCE)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;#2 – Correctly Tune The JVM &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Correctly tuning the JVM in most cases will get you nearly 80% of the possible max performance of your application &amp;nbsp;&lt;/li&gt;&lt;li&gt;The big area to focus on for JVM tuning is heap size &lt;/li&gt;&lt;ul&gt;&lt;li&gt;Monitor verbose:gc and target GCing no more than once every 10 seconds with a max GC pause of a second or less. &lt;/li&gt;&lt;li&gt;Incremental testing is required to get this area right running with expected customer load on the system &lt;/li&gt;&lt;li&gt;Only after you have the above boundary layers met for GC do you want to start to experiment with differing garbage collection policies &lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Beyond the Heap Size settings most other parameters are to extract out max possible performance OR ensure that the JVM cooperates nicely on the system it is running on with other JVMs&amp;nbsp;&lt;/li&gt;&lt;li&gt;The Garbage Collector Memory Visualizer is an excellent tool tool for diagnosing GC issues or refining JVM performance tuning.&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Provided as a downloadable plug-in within the IBM Support Assistant&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/div&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://1.bp.blogspot.com/-JGfBt2RgMhs/TdPb-bcWwAI/AAAAAAAACgU/zxAW_TK_bRg/s1600/gcmv.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="271" src="http://1.bp.blogspot.com/-JGfBt2RgMhs/TdPb-bcWwAI/AAAAAAAACgU/zxAW_TK_bRg/s400/gcmv.png" width="400" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;Garbage Collection Memory Visualizer (GCMV)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&amp;nbsp;#1 – Perform Proper Load Testing&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Properly load testing your application is the most critical thing you can do to ensure a rock solid runtime in production.&lt;/li&gt;&lt;li&gt;Replicating your production environment isn’t always 100% necessary as most times you can get the same bang for your buck with a single representative machine in the environment&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Calculate expected load across the cluster and divide down to single machine load&lt;/li&gt;&lt;li&gt;Drive load and perform the usual tuning loop to resolve the parameter set you need to tweak and tune.  &lt;/li&gt;&lt;li&gt;Look at load on the database system, network, etc and extrapolate if it will support the full systems load and if not of if there are questions test&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Performance testing needs to be representative of patterns that your application will actually be executing&lt;/li&gt;&lt;li&gt;Proper performance testing keeps track of and records key system level metrics as well as throughput metrics for reference later when changes to hardware or application are needed.&lt;/li&gt;&lt;li&gt;Always over stress your system.&amp;nbsp; Push the hardware and software to the max and find the breaking points.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Only once you have done real world performance testing can you accurately size the complete set of hardware required to execute your application to meet your demand.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #583b91; font-family: Arial; font-weight: bold;"&gt;&lt;i&gt;Additional Links &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;&lt;a href="http://www-01.ibm.com/software/webservers/appserv/was/performance.html"&gt; WebSphere Application Server Performance site &lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/%0Bhttp://www.ibm.com/developerworks/websphere/techjournal/0909_blythe/0909_blythe.html"&gt; DeveloperWorks Article: Performance Tuning Case Study based on DayTrader&lt;/a&gt; - Step-by-step approach to tuning the application server based on a sample application&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.blogger.com/s%0Bftp://ftp.software.ibm.com/software/webservers/appserv/WASv7_Tuning_Script_Templates_v1.0.pdf%20"&gt;WebSphere Application Server Sample Performance Tuning Script&lt;/a&gt; - Can be used to adjust common tuning parameters based on predefined templates or customized to support additional fine tuning. Now available within v7.0.0&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8957953593775248936?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8957953593775248936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/websphere-application-server-top-10.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8957953593775248936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8957953593775248936'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/websphere-application-server-top-10.html' title='WebSphere Application Server Top 10 Tuning Recommendations'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-WcvZeQJt97k/TdPa0xDgfII/AAAAAAAACgE/Jt15nbGDvWk/s72-c/multipleJVM_Throughput.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4635989069797252982</id><published>2011-05-12T05:50:00.000-07:00</published><updated>2011-05-13T13:28:01.688-07:00</updated><title type='text'>Dynacache cache entry priority questions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="color: black;"&gt;&lt;i style="color: blue;"&gt;&amp;nbsp;&lt;/i&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div style="color: black;"&gt;&lt;span style="font-size: large;"&gt;&amp;nbsp;Smaller the size of the cache and more tuned to your working set, the better performance you will get.&amp;nbsp; (Smaller footprint, better concurrency etc ... )&lt;/span&gt;&lt;/div&gt;&lt;i style="color: blue;"&gt; &lt;/i&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q Should we still avoid timeouts as our invalidation policy if at all possible?&lt;/i&gt;&lt;br /&gt;Absolutely. Explicitly invalidating the cache-entries brings down the cache size immediately and prevents LRU activity.&lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q Our application's usage is currently assigning a fixed default "Priority" for each-and-every item placed in the Cache using the DynaCache API (using timeouts as our invalidation policy).&lt;/i&gt;&lt;br /&gt;This is fairly normal.&amp;nbsp; Priorities are typically used when there are different classes of cached items some more important than others. Lower priority cache entries are considered first when it comes to making room in the cache. &lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q Default priority for each Cache item.&amp;nbsp; Admin versus API... what wins?&lt;/i&gt;&lt;br /&gt;Dynacache API priority overrides priority set on the admin console. Priority determines how many cycles in the clock algorithm&amp;nbsp; must pass before an unused entry is chosen as a victim. Each entry's clock starts with the default or value set programatically/cachespec,xml and is decremented each clock cycle.&amp;nbsp; A clock value of &amp;lt;= 0 implies&amp;nbsp; a victim candidate.&amp;nbsp; The default is 1.&lt;br /&gt;I would keep the default priority of entries as 1 and only set higher priority for those entries that are more important than the rest. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4635989069797252982?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4635989069797252982/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-cache-entry-priority.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4635989069797252982'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4635989069797252982'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-cache-entry-priority.html' title='Dynacache cache entry priority questions'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8791300341120790555</id><published>2011-05-10T14:25:00.001-07:00</published><updated>2011-05-10T14:25:17.507-07:00</updated><title type='text'>Dynacache Questions and Answers on Data Replication Service (DRS) replication  best practices</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="color: purple;"&gt;&lt;i&gt;&lt;span style="font-size: large;"&gt;Questions on Dynacache best practices vis a vis replication ...&lt;/span&gt;&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;i style="color: blue;"&gt; &lt;/i&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q We plan to use one or more replication domains that span a large number of servers with a number of object cache instances, and to use sharing policy PUSH. &lt;/i&gt;&lt;br /&gt;Unfortunately PUSH does not scale. Go with NOT_SHARED.&lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q We have observed that it takes a little more than one second for the replication to begin after a cache is being looked up the first time. We want to lookup all cache instances early at the server start up process, in order to fill the caches with existing data in the cluster, making it available to the application as soon as the data is requested. &lt;/i&gt;&lt;br /&gt;In WAS v7 Dynacache has a JVM generic customer property called "com.ibm.ws.cache.CacheConfig.createCacheAtServerStartup" which when set to "true" will create cache instances automatically at server startup instead of the default on-demand behavior. This definitely should be set if deploying to WAS7. If on an earlier version of WAS look at&amp;nbsp; technote&amp;nbsp; http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg21313480 .&lt;br /&gt;See http://wasdynacache.blogspot.com/2010/04/dynacache-and-drs-replication-faq.html .&lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q We are concerned about the push mechanism and whether the initial push of say 100-150 Mb existing data distributed over perhaps 30-40 cache instances into a new-started JVM could have (temporary) performance implications on one or multiple JVM:s that are up and running.&lt;/i&gt;&lt;br /&gt;Your concern is warranted and that is why I said PUSH does not scale. When a new JVM starts up *ALL* the other JVMs send it cached data.&amp;nbsp; So the same cached data is sent by ALL the running JVMs to the new one.&amp;nbsp; If this is a lot of cache data, I have often seen the older JVMs that are pushing the data die due to OOMs. If you so desire you can completely disable bootstrap by calling DistributedMap.setDRSBootstrap(false). This will prevent any JVM from sending data to the upcoming JVM. &lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;Q When data is pushed into a newborn cache, will all cached element come from the same JVM, or could some elements be pushed from JVM 1 and others from JVM 2 &lt;/i&gt;&lt;br /&gt;Unfortunately there is no workload distribution when sending data by the existing JVMs to the new one. We don't even optimize and have one JVM send the data, instead ALL the JVMs send all the cache data in that object cache instance to the new JVM.&lt;br /&gt;Some customers write cache population scripts to populate the cache for each JVM after it comes up and configure the cache in the NOT_SHARED mode which only replicates invalidations to keep the cache consistent. Other option is to use PUSH with drs bootstrap disabled.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-8791300341120790555?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8791300341120790555/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-questions-and-answers-on-data.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8791300341120790555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8791300341120790555'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/dynacache-questions-and-answers-on-data.html' title='Dynacache Questions and Answers on Data Replication Service (DRS) replication  best practices'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5871162996105607799</id><published>2011-05-10T13:40:00.001-07:00</published><updated>2011-05-19T08:06:59.569-07:00</updated><title type='text'>How to detect a  WebSphere Java classloader memory leak via the Eclipse Memory Analyzer tool</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;A presentation on&amp;nbsp;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;&lt;a href="http://www.websphereusergroup.org.uk/wug/files/presentations/31/Ian_Partridge_-_WUG_classloader_leaks.pdf"&gt;Class Loading and debugging Class Loader memory leaks in WebSphere Application Server&lt;/a&gt; &lt;/strong&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;by Ian is an excellent treatise on this topic. Short summary follows:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;1.&amp;nbsp; Run "classloader explorer" query&lt;br /&gt;2.&amp;nbsp; Sort classloaders by name - identify the WAS CompoundClassLoaders&lt;br /&gt;3.&amp;nbsp; Examine each CompoundClassLoader object - according to WAS, those whose localClassPath field is set to the empty string should be eligible for collection.&lt;br /&gt;4.&amp;nbsp; For each CompoundClassloader whose localClassPath is the empty, string, run "Classloader-&amp;gt;Path to GC roots-&amp;gt;Exclude all weak/soft/phantom etc. references."&lt;br /&gt;5.&amp;nbsp; Review the reference chains for each classloader and analyse for possible culprits/owners.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;Debugging WAS from Dumps:&lt;/span&gt;&lt;strong style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt; &lt;a href="http://www.websphereusergroup.org.uk/wug/files/presentations/31/Chris_Bailey_-_Debugging_from_Dumps.pdf"&gt;Diagnose more than leaks with Memory Analyzer and its IBM Extensions pleas&lt;/a&gt; &lt;/strong&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;is another great presentation to understand how to do JVM debugging&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;&lt;span style="border-bottom-width: 0px; border-color: initial; border-left-width: 0px; border-right-width: 0px; border-style: initial; border-top-width: 0px; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px; padding-bottom: 0px; padding-left: 0px; padding-right: 0px; padding-top: 0px; z-index: 0;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;For bonus you can also look at &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;On the Move? WebSphere JDK Migrations, Past, Present and Future... and Beyond&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif; font-size: 12px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;These links and presentations are from the WebSphere UK User Group&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Verdana, Arial, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: 12px;"&gt;&lt;a href="http://www.websphereusergroup.org.uk/wug/downloads/31/"&gt;http://www.websphereusergroup.org.uk/wug/downloads/31/&lt;/a&gt;&lt;/span&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/6741080397454890783-5871162996105607799?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5871162996105607799/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/how-to-detect-java-classloader-memory.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5871162996105607799'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5871162996105607799'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/how-to-detect-java-classloader-memory.html' title='How to detect a  WebSphere Java classloader memory leak via the Eclipse Memory Analyzer tool'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4299671086064449771</id><published>2011-05-10T07:15:00.000-07:00</published><updated>2011-05-10T07:26:50.155-07:00</updated><title type='text'>WebSphere Application Server - Performance considerations for deploying very large Java Enterprise Edition  (JEE) applications</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Please consider the following when developing and deploying very large applications (&amp;gt; 30,000 classes) bundled in one ear file.&lt;br /&gt;&lt;br /&gt;The cost of having a large number of classes depends strongly on details of how the classes are present in the application, and whether Java EE5 features are enabled, and whether scanning is left enabled on all of the classes. &lt;br /&gt;&lt;br /&gt;1) If the classes are exposed in a web module archive "WEB-INF/classes" directory, that will cause very large slowdowns.&amp;nbsp; The converse is for the classes to be in a JAR, either in a simple utility JAR directly contained by the application archive (EAR file), or for the classes to be contained within an EJBJar, or for the classes to be contained in a JAR beneath a web module archive "WEB-INF/lib" directory.&lt;br /&gt;&lt;br /&gt;2) If javaEE5 processing is enabled for the classes, either because the classes are present in a javaEE5 enabled EJBJar or WAR, that will cause large slowdowns. The converse is for the classes to be present in a location which will not be scanned, for example, if there is a "META-INF/application.xml" for the EAR, and if all of the modules use a pre-javaEE5 version, or if all of the modules are marked as metadata-complete.&lt;br /&gt;&lt;br /&gt;3) Even if javaEE5 processing is enabled, if a large subset of the classes do not require annotation scanning, that can be disabled using special properties in the application and module "META-INF/MANIFEST.MF" manifest files.&lt;br /&gt;&lt;br /&gt;4) If using WAS version 7, please upgrade to fixpack 7.0.0.13 or later.&amp;nbsp; We put in some optimizations in 7.0.0.13 to make the reading and writing to disk of applications much more efficient.&amp;nbsp; Large apps (like Commerce) that are over 100 MB in size deployed 30-40% faster.&lt;br /&gt;&lt;br /&gt;5) Check if the application is EE5 (in the application.xml, look for the version= tag).&amp;nbsp; If so, check if there are any WAR files inside the EAR that contain numerous JARs under WEB-INF/lib.&amp;nbsp; If those are present they can increase deployment time significantly.&amp;nbsp; There is a tuning option available to help, and it's documented here &lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg1PK87053"&gt;PK87053: JAVA ENTERPRISE EDITION VERSION 5 APPLICATIONS TAKE A LONG TIME TO DEPLOY&lt;/a&gt; http://www-01.ibm.com/support/docview.wss?uid=swg1PK87053&lt;br /&gt;&lt;br /&gt;When deploying the application, there will be an unavoidable cost of copying the application files during deployment, which will be proportional to the total size of the classes (but not proportional to the number of classes, unless these are exposed in a WEB-INF/classes directory).&amp;nbsp; If the average class size is, say, 3K, and if there are 30K classes, then that will put the application size at at least 90M, which will take time to expand and to copy into the deployment location.&amp;nbsp; However, that cost is only during deployment.&lt;br /&gt;&lt;br /&gt;&lt;i style="color: blue;"&gt;&amp;nbsp;&lt;b&gt;&lt;span style="color: purple;"&gt;Note of thanks to Thomas Bitonti and David W. Hare for providing this information&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4299671086064449771?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4299671086064449771/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4299671086064449771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4299671086064449771'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/05/websphere-application-server.html' title='WebSphere Application Server - Performance considerations for deploying very large Java Enterprise Edition  (JEE) applications'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4846531773013358724</id><published>2011-04-28T14:55:00.000-07:00</published><updated>2011-04-29T09:02:42.434-07:00</updated><title type='text'>IMPACT 2011 Sessions</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Recently I had an opportunity to present at IMPACT 2011 WebSphere Software group conference on various Java EE6 specifications that we have been working on in WebSphere Application Server 8. I also threw in my WebSphere eXtreme Scale pitch for free :).&amp;nbsp; All session slides are available &lt;a href="http://www.websphereusergroup.org/kelapure/blog/documents.one"&gt;here&lt;/a&gt; &lt;a href="http://www.websphereusergroup.org/kelapure/blog/documents.one"&gt;http://www.websphereusergroup.org/kelapure/blog/documents.one&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="documentList"&gt;&lt;a class="documentLink" href="http://www.websphereusergroup.org/kelapure/go/document/view/30939"&gt;Integrating WebSphere eXtreme Scale to Boost the Value of...&lt;/a&gt;&lt;br /&gt;&lt;div class="docPublished"&gt;&lt;div class="arArticlePublishedDate"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="docSummary"&gt;This session presents the process, challenges, benefits and best practicesin integrating WebSphere eXtreme Scale (WXS) and the WebSphere DataPower XC10appliance with WebSphere stack middleware products includingWebSphere Application Server, WebSphere Commerce, WebSphere PortalServer, WebSphere Business Events and Rational Jazz-based products. WXS provides a powerful, elastic, high-performance solution for scalability issues through caching and grid technology. The session will also provide in-depth coverage of WXS infrastructure concepts including grid clients and servers, the grid catalog service, zone support, and scalability sizing considerations. &lt;/div&gt;&lt;/div&gt;&lt;div class="documentList"&gt;&lt;br /&gt;&lt;a class="documentLink" href="http://www.websphereusergroup.org/kelapure/go/document/view/30929"&gt;Getting started with Java Contexts and Dependency...&lt;/a&gt;&lt;br /&gt;&lt;div class="docPublished"&gt;&lt;div class="arArticlePublishedDate"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="docSummary"&gt;Contexts and Dependency Injection for the Java EE Platform (CDI) is one of key Java EE 6 features that help to knit together the web tier and the transactional tier of the Java EE platform. It is a set of services that, used together, makes it easy for developers to use enterprise beans along with JSF technology in web applications. This session will introduce you to fundamental concepts of CDI and explain how to leverage CDI in your application. The session is targeted to Java EE application developers, administrators and architects. The audience will walk away with an understanding of how to leverage CDI in a Java EE application, how to write a portable extension to CDI, and how to enable third party frameworks for CDI. &lt;/div&gt;&lt;/div&gt;&lt;div class="documentList"&gt;&lt;br /&gt;&lt;a class="documentLink" href="http://www.websphereusergroup.org/kelapure/go/document/view/30919"&gt;All things JSF 2.0: Features, Tooling, JSF-Dojo...&lt;/a&gt;&lt;br /&gt;&lt;div class="docPublished"&gt;&lt;div class="arArticlePublishedDate"&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="docSummary"&gt;JSF 2.0 is a new specification that is part of the Java EE 6 technologies. This session will introduce you to the new features of JSF 2.0 and explain how you can leverage JSF in your Java EE and Portlet applications. The session will focus on three major themes: ease of development, performance improvements, and open source technology adoption. You will learn how the tools provided by Rational Application Developer make developing UI easier, as well as the JSF-Dojo component library that IBM is working on. This session is intended for Java EE developers, administrators, and architects. &lt;/div&gt;&lt;/div&gt;&lt;div class="documentList"&gt;&lt;br /&gt;&lt;a href="http://www.websphereusergroup.org/kelapure/go/document/view/30909"&gt;Servlet 3.0: What's New&lt;/a&gt;&lt;/div&gt;Servlet 3.0 is a new specification that is part of the Java EE 6 technologies. This session will introduce you to the new features of Servlet 3.0 and explain how you can leverage them in your applications. The session will focus on two major themes: ease of development, and improving application scalability. This session is intended for Java EE developers, administrators, and architects.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4846531773013358724?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4846531773013358724/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/impact-2011-sessions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4846531773013358724'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4846531773013358724'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/impact-2011-sessions.html' title='IMPACT 2011 Sessions'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8779015223013880421</id><published>2011-04-28T09:14:00.000-07:00</published><updated>2011-10-09T09:16:15.357-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tuning'/><title type='text'>WebSphere Application Server  A walk in the clouds</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Now that cloud and its enabling technologies like application, platform, software virtualization are hot and sexy, I am jumping on the bandwagon too :-) with some specific advice regarding WAS deployments in the cloud.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;In order to leverage the full awesomeness of&amp;nbsp; your WAS virtualized deployment, it is critical to do the following &lt;/i&gt;:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tuning WAS for idleness&lt;/b&gt;: WAS system components can sometimes be more chatty than teenagers aka in corporate speak WebSphere schedules timed events to check for system updates and the availability of other servers; keeping the entire infrastructure up-to-date and running flawlessly. There are several configurable timers and options which affect the amount of background processing during idle windows. It is critical to tune these timer threads and system daemons to reduce background processing within the application server. This helps the hypevervisor technology manage the guests better. It allows virtual images to swap in and out, thereby leading to better resource utilization and less over-commit. Follow the recommendations in the document below for tuning WAS, for idleness in dense virtual environments:&amp;nbsp; &lt;a class="twitter-timeline-link" data-expanded-url="http://www-03.ibm.com/support/techdocs/atsmastr.nsf/5cb5ed706d254a8186256c71006d2e0a/aca4f4ca60627d0b862578680008c257/$FILE/WP101894%20-%20WAS%20Idle%20Server%20Tuning.pdf/" href="http://bitly.com/lC0YQe" rel="nofollow" target="_blank" title="http://www-03.ibm.com/support/techdocs/atsmastr.nsf/5cb5ed706d254a8186256c71006d2e0a/aca4f4ca60627d0b862578680008c257/$FILE/WP101894%20-%20WAS%20Idle%20Server%20Tuning.pdf/"&gt;http://bitly.com/lC0YQe&lt;/a&gt;&lt;br /&gt;&lt;a href="http://webspherecommunity.blogspot.com/2011/05/tuning-for-idleness-service.html"&gt;http://webspherecommunity.blogspot.com/2011/05/tuning-for-idleness-service.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tune the JVM&lt;/b&gt;: In order to use Java effectively in the cloud you should avoid over commit, use less and share more.&lt;br /&gt;– &lt;b&gt;Avoid over-commit&lt;/b&gt;&lt;br /&gt;&amp;nbsp; •&amp;nbsp; Matching scenarios: sandbox, legacy systems&lt;br /&gt;&amp;nbsp; •&amp;nbsp; Limits cost savings&lt;br /&gt;– &lt;b&gt;Use Less&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; •&amp;nbsp; Trade off some performance for memory&lt;br /&gt;&amp;nbsp;&amp;nbsp; •&amp;nbsp; Classic speed/space trade-off&lt;br /&gt;&amp;nbsp;&amp;nbsp; •&amp;nbsp; Easy - Just some Java command line tuning&lt;br /&gt;– &lt;b&gt;Share More&lt;/b&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; •&amp;nbsp; Requires multiple JVMs per Guest OS&lt;br /&gt;&amp;nbsp;&amp;nbsp; •&amp;nbsp; Easy – one additional Java command line option&amp;nbsp; &lt;span style="font-size: large;"&gt;&lt;b&gt;-Xshareclasses&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Enable class sharing&lt;/span&gt; between JVMs using the -Xshareclasses JVM argument. This reduces the physical RAM usage when running multiple JVMs and improved start-up time. This option is ONLY available on the IBM JDKs. The shared cache contains Application classes, Metadata (JIT data, class file locations, debug, ...) and Ahead-of-time (AOT) compiled code which is shared across JVMs on the same guest OS. &lt;a href="http://dl.dropbox.com/u/12872475/tuning/Tuning%20Shared%20Classes%20mini-guide.pdf"&gt;Tuning the shared class cache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: blue;"&gt;Select the right garbage collection policy&lt;/span&gt; i.e. optimize for throughput, pause time or short lived objects/web. &lt;span style="background-color: blue;"&gt;Correctly set the heap sizes&lt;/span&gt; for your JVMs. Remember the maximum heap size setting should be 43% larger than the maximum occupancy of the application. Generally speaking, tune and restrict the JVM heap size to as small a value you can live with.&lt;br /&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/6741080397454890783-8779015223013880421?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8779015223013880421/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/websphere-application-server-walk-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8779015223013880421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8779015223013880421'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/websphere-application-server-walk-in.html' title='WebSphere Application Server  A walk in the clouds'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-6722692504967761847</id><published>2011-04-27T10:30:00.000-07:00</published><updated>2011-04-27T10:33:49.338-07:00</updated><title type='text'>Problem Determination tools for WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;The five recommended tools that every WebSphere Application Server sysadmin and developer should have in his arsenal to debug and resolve problems are &lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;IBM Monitoring and Diagnostic Tools for Java&amp;nbsp;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Dump Analyzer&amp;nbsp;&lt;/li&gt;&lt;li&gt;Garbage Collection and Memory Visualizer (GCMV)&amp;nbsp;&lt;/li&gt;&lt;li&gt;Memory Analyzer (MAT)&lt;/li&gt;&lt;li&gt;Health Center&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;IBM Thread and Monitor Dump Analyzer for Java (TMDA) [Tech Preview]&lt;/li&gt;&lt;/ul&gt;When to apply these tools is summarized by the table below: &lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-zBA3Jp4Z6hg/TbhSibF9YDI/AAAAAAAACfQ/d6Mn63mEmPc/s1600/Problem+Scenarios+and+Tools.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://2.bp.blogspot.com/-zBA3Jp4Z6hg/TbhSibF9YDI/AAAAAAAACfQ/d6Mn63mEmPc/s1600/Problem+Scenarios+and+Tools.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;These tools can be obtained as free and fully supported add-ons to the IBM Support Assistant&lt;/span&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: &amp;quot;Helvetica Neue&amp;quot;,Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: large;"&gt;See complete list of IBM Support Assistant tools: &lt;a class="twitter-timeline-link" data-expanded-url="http://www-01.ibm.com/support/docview.wss/?cd=2011-04-10&amp;amp;cm=S&amp;amp;cmp=101AM&amp;amp;cn=Impact2011_ISA&amp;amp;co=On&amp;amp;cot=A&amp;amp;cpg=CIOP&amp;amp;cr=01_Net&amp;amp;csr=Websphere&amp;amp;ct=101AMES3&amp;amp;uid=swg27013116" href="http://ibm.co/eVZa68" rel="nofollow" target="_blank" title="http://www-01.ibm.com/support/docview.wss/?cd=2011-04-10&amp;amp;cm=S&amp;amp;cmp=101AM&amp;amp;cn=Impact2011_ISA&amp;amp;co=On&amp;amp;cot=A&amp;amp;cpg=CIOP&amp;amp;cr=01_Net&amp;amp;csr=Websphere&amp;amp;ct=101AMES3&amp;amp;uid=swg27013116"&gt;http://ibm.co/eVZa68&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&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/6741080397454890783-6722692504967761847?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/6722692504967761847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/problem-determination-tools-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6722692504967761847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/6722692504967761847'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/problem-determination-tools-for.html' title='Problem Determination tools for WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-zBA3Jp4Z6hg/TbhSibF9YDI/AAAAAAAACfQ/d6Mn63mEmPc/s72-c/Problem+Scenarios+and+Tools.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7559694798408802985</id><published>2011-04-26T12:25:00.001-07:00</published><updated>2011-04-29T09:03:38.146-07:00</updated><title type='text'>How to determine the version of WebSphere Application Server programatically</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;span class="Apple-style-span" style="font-family: Times,'Times New Roman',serif;"&gt;Often times it becomes critical in operational scripting or even in your application code to determine the current runtime version of WAS. The &lt;b&gt;Server &lt;/b&gt;mbean provides exactly this facility.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: Times,'Times New Roman',serif;"&gt;Below is a set of wsadmin script commands using AdminControl that you can use to query the Server mbean.&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: 'Courier New',Courier,monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;set server [$AdminControl completeObjectName cell=smitaNode02Cell,node=smitaNode02,name=server1,type=Server,*]&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;WebSphere:name=server1,process=server1,platform=proxy,node=smitaNode02,j2eeType=J2EEServer,version=8.0.0.0,type=Server,mbeanIdentifier=cells/smitaNode02Cell/nodes/smitaNode02/servers/server1/server.xml#Server_1183122130078,cell=smitaNode02Cell,spec=1.0,processType=UnManagedProcess&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl getAttribute $server state&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;STARTED&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl getAttribute $server platformName&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;ND&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl getAttribute $server platformVersion&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;8.0.0.0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl getAttribute $server serverVersion&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;IBM WebSphere Product Installation Status Report&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Report at date and time April 26, 2011 3:09:10 PM EDT&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Installation&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Product Directory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C:\WebSphere8\f1116.06&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Version Directory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C:\WebSphere8\f1116.06\properties\version&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;DTD Directory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C:\WebSphere8\f1116.06\properties\version\dtd&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Log Directory &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;C:\Documents and Settings\All Users\Application Data\IBM\Installation Manager\logs&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Product List&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;NDTRIAL &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;installed&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Installed Product&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Name &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;IBM WebSphere Application Server Network Deployment&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Version &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 8.0.0.0&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;ID &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;NDTRIAL&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Build Level &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; f1116.06&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Build Date &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;4/19/11&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Architecture &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;x86-64 (64 bit)&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;Installed Features &amp;nbsp; &amp;nbsp;IBM 64-bit SDK for Java, Version 6&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;End Installation Status Report&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;--------------------------------------------------------------------------------&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;$AdminControl getAttribute $server processType&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;UnManagedProcess&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: blue; font-family: 'Courier New',Courier,monospace;"&gt;wsadmin&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;This exact same code can be written in java as well using the AdminClient interface&lt;br /&gt;See&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/0302_cundiff/cundiff.html"&gt;http://www.ibm.com/developerworks/websphere/techjournal/0302_cundiff/cundiff.html&lt;/a&gt;&lt;br /&gt;also&amp;nbsp;&lt;a href="http://alvinabad.wordpress.com/2009/02/15/automating-websphere-using-jmx/"&gt;http://alvinabad.wordpress.com/2009/02/15/automating-websphere-using-jmx/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;With these tools in hand you can interrogate all the characteristics of your current WAS server :&lt;br /&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/mbeandocs/index.html"&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.javadoc.doc/public_html/mbeandocs/index.html&lt;/a&gt;&lt;br /&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/6741080397454890783-7559694798408802985?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7559694798408802985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/how-to-determine-version-of-websphere.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7559694798408802985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7559694798408802985'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/how-to-determine-version-of-websphere.html' title='How to determine the version of WebSphere Application Server programatically'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-3632123160460564199</id><published>2011-04-21T05:35:00.000-07:00</published><updated>2011-04-29T09:04:08.699-07:00</updated><title type='text'>Free WebSphere Application Server for Developers</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Today I want to highlight a&lt;span style="font-size: large;"&gt; &lt;span style="background-color: orange;"&gt;free&lt;/span&gt;&lt;/span&gt; edition of WebSphere Application Server for Developers i.e. WAS4D&lt;br /&gt;&lt;br /&gt;WAS4D is a standalone WebSphere Application Server development runtime which is &lt;br /&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Free offering for projects that don't warrant the expense of a priced and supported runtime on the developer desktop.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Same as the WAS server type provided in Rational Application Developer for test and debug.&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Identical to the production runtime environment your applications will eventually run on.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="text-align: left;"&gt;&lt;li&gt;Licensing restricted to development use only.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/index.html"&gt;http://www.ibm.com/developerworks/downloads/ws/wasdevelopers/index.html&lt;/a&gt;&lt;br /&gt;Please use WAS4D to develop your JEE applications for free :-)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-3632123160460564199?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/3632123160460564199/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/free-websphere-application-server-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3632123160460564199'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/3632123160460564199'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/free-websphere-application-server-for.html' title='Free WebSphere Application Server for Developers'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7330862786706134767</id><published>2011-04-19T09:55:00.000-07:00</published><updated>2011-04-19T10:57:20.542-07:00</updated><title type='text'>WebSphere Application Server HAManager Settings</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;Sometimes customers get conflicting advice on the WebSphere Application Server HAManager component like so ...&lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;I would enable HA on everything........ Even if applications aren't using it or don't need it, there are components/functions of WAS that rely on it&amp;nbsp;&lt;/li&gt;&lt;li&gt;You can disable the HA Manager if the applications do not require it&amp;nbsp; &lt;/li&gt;&lt;/ol&gt;The two statements are less conflicting than they may appear. The points to consider when enabling or disabling HAManager with WebSphere are as follows: &lt;br /&gt;&lt;ol style="text-align: left;"&gt;&lt;li&gt;The HA Manager will use a certain amount of resources (CPU and memory).&lt;/li&gt;&lt;li&gt;There are a number of WebSphere components (&lt;span style="color: blue;"&gt;Memory-to-memory cache replication, Session memory persistence, Stateful Session Bean failover, Singleton failover, Workload management routing, On-demand configuration routing &amp;amp; transaction log failover&lt;/span&gt;) that use the HA Manager. These components will add their own resource usage on top of what the HA Manager uses by itself. Depending on the topology, that resource usage may be significant.&lt;/li&gt;&lt;li&gt;New dependencies can be created on the HA Manager at any time. These dependencies may be added in the service streams (Feature in Service). While we strive to keep the list of dependencies (in the Info Center or Large Topology White Paper) up-to-date, new dependencies can be added without our knowledge.&lt;/li&gt;&lt;li&gt;Customers may consider disabling the HA Manager to save resource.&lt;/li&gt;&lt;/ol&gt;Generally speaking, we don't recommend that customers disable the HA Manager. We do recommend applying the most current&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21251873"&gt; tuning&lt;/a&gt;. A number of customers have disabled the HA Manager and caused themselves problems. The most common symptom will be an application routing issue. If a customer decides to disable the HA Manager, proceed with caution. Realize that you may need to re-enable it in the future.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7330862786706134767?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7330862786706134767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/websphre-hamanager-settings.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7330862786706134767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7330862786706134767'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/websphre-hamanager-settings.html' title='WebSphere Application Server HAManager Settings'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7015296365774321737</id><published>2011-04-18T09:26:00.001-07:00</published><updated>2011-04-18T09:26:50.787-07:00</updated><title type='text'>Updated version of "Best Practices for a Large WebSphere Topology"</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&amp;nbsp;&lt;a href="http://www.ibm.com/developerworks/websphere/library/techarticles/0710_largetopologies/0710_largetopologies.html"&gt;http://www.ibm.com/developerworks/websphere/library/techarticles/0710_largetopologies/0710_largetopologies.html&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-7015296365774321737?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7015296365774321737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/updated-version-of-best-practices-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7015296365774321737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7015296365774321737'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/updated-version-of-best-practices-for.html' title='Updated version of &quot;Best Practices for a Large WebSphere Topology&quot;'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-8239716892257883696</id><published>2011-04-18T09:22:00.000-07:00</published><updated>2011-04-18T09:25:15.270-07:00</updated><title type='text'>JSF 1.2 Sun Reference Implementation eats too much memory in WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;&lt;br /&gt;The &lt;b&gt;com.sun.faces.util.LRUMap&lt;/b&gt; object can hold on to a lot of memory as this is used to hold the various JSF views in the session. There are two types of JSF Views stored in the session. Logical Views in session and Number of views in session: A logical view is a top level view that may have one or more actual views inside of it. This will be the case when you have a frameset, or an application that has multiple windows operating at the same time. The LOGICAL_VIEW_MAP map is an LRU Map which contains an entry for each logical view, up to the limit specified by the com.sun.faces.numberOfViewsInSession parameter. Each entry in the LOGICAL_VIEW_MAP is an LRU Map, configured with the com.sun.faces.numberOfLogicalViews parameter.&lt;br /&gt;&lt;br /&gt;By default the number of views stored for each of these maps is 15. Therefore you can see how it could end up using a lot of memory. The value of &lt;b&gt;com.sun.faces.numberOfViewsInSession&lt;/b&gt; and c&lt;b&gt;om.sun.faces.numberOfLogicalViews&lt;/b&gt; does not have to be "4", it can whatever you feel is adequate for your application.If either of these parameters are not in the application then it will store up to 15 view in the LRU Maps. Setting these values to something lower will result in lower memory usage by JSF.&lt;br /&gt;&lt;br /&gt;The actual number depends on your application. Basically, if we can't find a JSF view in the session to restore we will create new one. In general, a complex application is one that would allow a user to move back and forth to pages (think something like a wizard), or an application that contains framesets or a lot of pop up windows. For example, if a pop up window is used to fill out some information and then click submit to go back to the original page... that would require storing more views in session.&lt;br /&gt;&lt;br /&gt;But I've always found 15 to be a high number, especially if the views are large (contains quite a lot of JSF components and their state). One thing to remember is each LogicalView can contain the set number of Actual views. That is where the idea of a frameset comes in -- one logical view for the parent page, and the actual views are the different frames.&lt;br /&gt;&lt;br /&gt;You can find more information at the following&amp;nbsp;&lt;a href="http://wikis.sun.com/display/GlassFish/JavaServerFacesRI#JavaServerFacesRI-WhatarethedifferencesbetweenServerandClientsidestatesavingandwhatarethebenefits%2Fdrawbacksofeach%3F"&gt; link&lt;/a&gt;, starting with, "A comment on the numberOfXXX parameters."&lt;br /&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/6741080397454890783-8239716892257883696?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/8239716892257883696/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/jsf-12-sun-reference-implementation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8239716892257883696'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/8239716892257883696'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/04/jsf-12-sun-reference-implementation.html' title='JSF 1.2 Sun Reference Implementation eats too much memory in WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4876764063669234079</id><published>2011-02-16T09:44:00.000-08:00</published><updated>2011-02-16T09:50:42.568-08:00</updated><title type='text'>WebSphere Critical Security Vulnerability - Denial of Service Security Exposure with Java JRE/JDK</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;Dear WebSphere Administrators, &lt;br /&gt;&lt;br /&gt;Please patch your WAS deployments ASAP to fix a Denial of Service Security Exposure with Java JRE/JDK hanging when converting 2.2250738585072012e-308 number (CVE-2010-4476) (PM32387)&lt;br /&gt;See&amp;nbsp;&lt;a href="http://www-01.ibm.com/support/docview.wss?uid=swg21462019#solution_dist"&gt;http://www-01.ibm.com/support/docview.wss?uid=swg21462019#solution_dist&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;This vulnerability can cause the Java Runtime Environment to go into a hang, infinite loop, and/or crash resulting in a denial of service exposure. This same hang will occur if the number is written without scientific notation (324 decimal places). In addition to the Application Server being exposed to this attack, any Java program using the Double.parseDouble method is also at risk of this exposure including any customer written application or 3rd party written application.&lt;br /&gt;&lt;br /&gt;The security vulnerability is generic and specifically its a bug in sun.misc.FloatingDecimal.doubleValue&lt;br /&gt;&amp;nbsp;See&amp;nbsp;&lt;a href="http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/"&gt;http://www.exploringbinary.com/java-hangs-when-converting-2-2250738585072012e-308/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This can be used as a denial of service attack against app servers, by sending the server an HTTP request containing this value in a field - if the server parses the value with parseDouble(), the thread doing the parsing will go into an infinite loop.&lt;br /&gt;&lt;br /&gt;A hacker looks up a website and submits the string value "2.2250738585072012e-308" for a form field that expects double and parses it on the server side.&amp;nbsp;&amp;nbsp;Other instances could &amp;nbsp;include an web service hosted on WAS &amp;nbsp;that take a string input from a form or a URL, and tries to convert said string to a floating point variable &amp;nbsp;Any code on the server side that does parseDouble is now compromised if hacker figures out how to trigger the parsing.&lt;br /&gt;&lt;br /&gt;And remember ...&lt;br /&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp;** &lt;b&gt;JDK fixes are NOT dependent on the version/release of WSAS&lt;/b&gt; **&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Oracle recently released a fix for the same&lt;br /&gt;&lt;a href="http://blogs.oracle.com/security/2011/02/security_alert_for_cve-2010-44.html"&gt;http://blogs.oracle.com/security/2011/02/security_alert_for_cve-2010-44.html&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html"&gt;http://www.oracle.com/technetwork/topics/security/alert-cve-2010-4476-305811.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;Reference:&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;http://www.reddit.com/r/programming/comments/fczjc/next_language_java_hangs_when_converting/&lt;/div&gt;&lt;div style="margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;http://news.ycombinator.com/item?id=2164863&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-4876764063669234079?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4876764063669234079/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/websphere-critical-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4876764063669234079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4876764063669234079'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/websphere-critical-security.html' title='WebSphere Critical Security Vulnerability - Denial of Service Security Exposure with Java JRE/JDK'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-4606883586365945211</id><published>2011-02-02T19:37:00.000-08:00</published><updated>2011-02-02T19:42:01.598-08:00</updated><title type='text'>Should I use a database or memory-to-memory replication for session failover  in WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div style="text-align: right;"&gt;&lt;i&gt;credit Tom Alcott&amp;nbsp;&lt;/i&gt;&lt;/div&gt;&lt;i&gt; &lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;/i&gt;&lt;br /&gt;A:&amp;nbsp;Performance does not differ significantly between database persistence and memory-to-memory replication. This is because 95% of the cost of replicating or persisting sessions is incurred in the serialization/deserialization of the session object -- which must occur regardless of how the session is distributed. Also, as the size of the session object increases, performance degrades -- again, about equally for both session distribution options.&lt;br /&gt;&lt;br /&gt;Instead, the decision will be based partially on how the two technologies differ: With a database, you actually persist the data (to disk), so a highly available database server can survive a cascading failure, while using application servers as session stores and replicators for this purpose may not. In the case of a "gold standard" (two identical cells/domains), a highly available database can pretty much assure session failover between domains, while with memory to memory, there can only be a single replicator common to the two cells; hence, it becomes a single point of failure (SPOF).&lt;br /&gt;&lt;br /&gt;Thus, for configurations where cross-cell session failover is a requirement, a highly available database is the only option for eliminating a SPOF. Note that while sharing sessions across cells is supported, this is not generally recommended. By sharing state between cells, it makes it significantly more difficult to independently upgrade components (application and WAS) in the two cells. In the end, the decision then becomes based on what technology you are most comfortable with and which delivers the required quality of service for your availability requirements.&lt;br /&gt;&lt;br /&gt;With memory-to-memory replication, the amount of session information you can store is bounded by the JVM heap size of your application server(s). Even with the advent of 64-bit JVM support in WebSphere Application Server V6.01, the maximum application server heap size is going to be significantly smaller than the amount of disk space you have available on a database server that is serving as a session store. Therefore, I am still of the opinion that database persistence remains the best option, although I know that in many organizations it is more expedient to use memory-to-memory replication to avoid conflicts over roles and responsibilities between system and database administrators.&lt;br /&gt;&lt;br /&gt;A common cause of serious problems is the use/abuse of the HTTP session for all kinds of garbage. It all starts when one programmer decides to throw a little something in there, then another, and another, until your poor session looks like one of those polluted ponds filled with old tires and washing machines.&lt;br /&gt;Stuffing something into the session is a very common shortcut taken under duress of an impending deadline. The effect on JVM heap sizes and performance (particularly when using persistent sessions) is dramatic. Doing code reviews (see&amp;nbsp;#3) can help to prevent this. Session sizes should be from 2-4K, and there are several ways to measure them; the Tivoli® Performance Monitor that comes with WebSphere Application Server, for example, will show you session sizes.&lt;br /&gt;&lt;br /&gt;Also read &lt;br /&gt;&lt;span style="font-size: x-small;"&gt;1. Comment lines: Erik Burckart: &lt;a href="http://www.ibm.com/developerworks/websphere/techjournal/0809_col_burckart/0809_col_burckart.html"&gt;What you want to know about HTTP session persistence&lt;/a&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;2.&lt;a href="http://www.redbooks.ibm.com/redpapers/pdfs/redp4580.pdf"&gt; Chapter 12 of WebSphere Application Server V7 Administration and Configuration Guide&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size: x-small;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &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/6741080397454890783-4606883586365945211?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/4606883586365945211/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/websphere-session-persistance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4606883586365945211'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/4606883586365945211'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/websphere-session-persistance.html' title='Should I use a database or memory-to-memory replication for session failover  in WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-7701445556666141993</id><published>2011-02-01T05:34:00.000-08:00</published><updated>2011-02-01T05:35:03.173-08:00</updated><title type='text'>Eclipse Memory analyzer</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;From John Pape : &amp;nbsp;&lt;span class="Apple-style-span" style="color: #222222; font-family: Arial, Helvetica; font-size: 12px; font-weight: bold; line-height: 18px;"&gt;&lt;a href="https://www.ibm.com/developerworks/mydeveloperworks/blogs/johnsrandommusings/entry/use_the_memory_analyer_tool_mat_to_diagnose_problems_in_your_java_applications1?lang=en"&gt;Use the Memory Analyer Tool (MAT) to diagnose problems in your Java applications&lt;/a&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/6741080397454890783-7701445556666141993?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/7701445556666141993/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/eclipse-memory-analyzer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7701445556666141993'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/7701445556666141993'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/02/eclipse-memory-analyzer.html' title='Eclipse Memory analyzer'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-5213723353013774038</id><published>2011-01-31T19:08:00.000-08:00</published><updated>2011-02-01T05:32:12.634-08:00</updated><title type='text'>Simplifying configuration of IBM WebSphere Application Server</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;div id="__ss_6769265" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;span class="Apple-style-span" style="font-family: arial, helvetica, sans-serif; font-size: 12px; font-weight: normal;"&gt;&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;&lt;div class="documentSectionContents" style="float: left; margin-bottom: 4px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;Credit to&lt;span class="Apple-style-span" style="font-size: large;"&gt; Andy Dingsor&lt;/span&gt;&lt;/strong&gt;&lt;span style="display: block; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;Here is the presentation from January 25, 2011, presented by my friend &amp;amp; colleague &amp;nbsp;Andy Dingsor to the RTP WebSphere User Group.&amp;nbsp;&lt;/span&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;strong style="display: inline !important; margin-bottom: 4px; margin-left: 0px; margin-right: 0px; margin-top: 12px;"&gt;&lt;a href="http://www.slideshare.net/kelapure/wsadminlibwasug2011-01250726" title="Wsadminlib.wasug.2011 0125-0726"&gt;Wsadminlib.wasug.2011 0125-0726&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/div&gt;&lt;object height="355" id="__sse6769265" width="425"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wsadminlib-wasug-2011-0125-0726-110131210612-phpapp02&amp;stripped_title=wsadminlibwasug2011-01250726&amp;userName=kelapure" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed name="__sse6769265" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=wsadminlib-wasug-2011-0125-0726-110131210612-phpapp02&amp;stripped_title=wsadminlibwasug2011-01250726&amp;userName=kelapure" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/kelapure"&gt;kelapure&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;&lt;a href="http://wsadminlib.blogspot.com/"&gt;http://wsadminlib.blogspot.com/&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://websphereusergroup.org/go/document/index"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;http://websphereusergroup.org/go/document/index&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-5213723353013774038?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/5213723353013774038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/01/simplifying-configuration-of-ibm.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5213723353013774038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/5213723353013774038'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/01/simplifying-configuration-of-ibm.html' title='Simplifying configuration of IBM WebSphere Application Server'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-44217049419012971</id><published>2011-01-31T18:47:00.001-08:00</published><updated>2011-01-31T19:11:44.541-08:00</updated><title type='text'>Java plug-in for WebSphere Application Server that allows a user to interrupt a hung thread</title><content type='html'>&lt;div dir="ltr" style="text-align: left;" trbidi="on"&gt;&lt;br /&gt;IBM WebSphere Application Server Utilities &lt;a href="http://www.ibm.com/developerworks/websphere/downloads/hungthread.html"&gt;Hung Thread Interrupter&lt;/a&gt; is now externally available from developerWorks WebSphere downloads.&lt;br /&gt;&lt;br /&gt;This tool is a pure-Java plug-in for WebSphere Application Server and allows a user to interrupt a hung thread separately. Attached below is the link to the download page:&lt;br /&gt;&lt;br /&gt;http://www.ibm.com/developerworks/websphere/downloads/hungthread.html&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-44217049419012971?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/44217049419012971/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2011/01/ibm-websphere-application-server.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/44217049419012971'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/44217049419012971'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2011/01/ibm-websphere-application-server.html' title='Java plug-in for WebSphere Application Server that allows a user to interrupt a hung thread'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-9048008175183991556</id><published>2010-10-18T18:23:00.000-07:00</published><updated>2010-10-18T18:26:34.193-07:00</updated><title type='text'>WebSphere OutOfMemory Errors</title><content type='html'>If your WAS deployment is experiencing OOM issues you can setup the JVM to produce a system dump when the OOM event occurs. This system dump can later be jextracted and sucked into &lt;a href="http://www.eclipse.org/mat/"&gt;Eclipse Memory Analyzer &lt;/a&gt;to do offline analysis.&lt;br /&gt;There are a variety of ways to obtain a dump from the IBM software development kit and various formats for the dump produced. It important to understand the content of each of the dumps so that the correct one can be selected for analysis of a given problem. In essence there are three forms of dump:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A system dump which is a complete dump of all the information in a process. The Dump Analyzer requires this form of dump to perform analysis.&amp;nbsp;&lt;/li&gt;&lt;li&gt;A heap dump which gives a more terse view of the objects in the heap but does not include thread and monitor information. This form of dump is of use to other tools for heap analysis.&amp;nbsp;&lt;/li&gt;&lt;li&gt;A summary dump sometimes called a javacore file. This is a human readable dump designed to summarise the state of the process in high level terms; the threads, monitors etc.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;Dumps are produced by the JVM either on demand (a signal from the user) or on event (something happening within the VM). When the JVM starts it registers a number of event handlers which cause dumps to be generated for a default set of events. In the case of an Out of Memory event a heap dump is generated, for a user signal a javacore is generated and for a JVM crash a system dump is generated. For detailed information on setting the JVM options that control dump production.&lt;br /&gt;&lt;br /&gt;To generate a system dump automatically on an OOM you will need to set the following &amp;nbsp;JVM generic argument:-&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Xdump:system:events=systhrow,filter=java/lang/OutOfMemoryError,request=nodumps+exclusive+prepwalk&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;In order to generate java core dump, system core dump, heap dump and a snap dump at user signal, the dump agents must be configured through JVM options as follows.-&lt;b&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Xdump:java+heap+system+snap:events=user&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;You can have multiple -Xdump options on the command line.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;div style="display: inline !important; margin-bottom: 0px; margin-left: 0px; margin-right: 0px; margin-top: 0px;"&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;-Xdump agents are always merged internally by the JVM, as long as none of the agent settings conflict with each other.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;-Xdump:java+heap+system+snap:events=user -Xdump:system:events=systhrow,filter=java/lang/OutOfMemoryError,request=nodumps+exclusive+prepwalk&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;-X options are specified as generic JVM arguments on WebSphere Application Server 6.1 as follows:&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In the Administration Console select Servers&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Select Application Servers&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Click on the name of your server&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;In the Server Infrastructure section, expand Java and Process Management and select Process Definition &amp;gt; Java Virtual Machine&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Scroll down and locate the textbox for Generic JVM arguments.&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Please also see &lt;/span&gt;&lt;a href="http://www-01.ibm.com/support/docview.wss?rs=180&amp;amp;uid=swg21052642"&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Crash on AIX produces no core or a truncated core&lt;/span&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt; &amp;nbsp; to prevent a truncated core from being generated on AIX.&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;b&gt;&lt;b&gt;&lt;div style="display: inline !important;"&gt;&lt;div style="display: inline !important;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;Please note these events ONLY work for IBM Java5 and Java6 JVMs.&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/b&gt;&lt;/b&gt;&lt;/b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;Happy debugging :-)&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;/b&gt;&lt;/b&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6741080397454890783-9048008175183991556?l=wasdynacache.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://wasdynacache.blogspot.com/feeds/9048008175183991556/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://wasdynacache.blogspot.com/2010/10/websphere-outofmemory-errors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/9048008175183991556'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6741080397454890783/posts/default/9048008175183991556'/><link rel='alternate' type='text/html' href='http://wasdynacache.blogspot.com/2010/10/websphere-outofmemory-errors.html' title='WebSphere OutOfMemory Errors'/><author><name>Rohit Kelapure</name><uri>http://www.blogger.com/profile/12988550581111360779</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_JFh5H2SEwp4/SNPSfrozquI/AAAAAAAAANs/3p24sULhDEA/S220/rohitBlue.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6741080397454890783.post-3928946156839193288</id><published>2010-10-17T10:12:00.000-07:00</published><updated>2010-10-17T15:33:43.494-07:00</updated><title type='text'>WebSphere Memory leak Detection and Protection</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;Tomcat provides excellent memory &lt;a href="http://wiki.apache.org/tomcat/MemoryLeakProtection"&gt;leak protection and detection&lt;/a&gt; features.&amp;nbsp;Starting with tomcat 6.0.25, the manager webapp has a new "Find Leaks" button. When triggered, it displays a list of webapps (their context path) that have been stopped (this includes undeployed and redeployed ones) but whose classloader failed to be GCed.There are two parts to the new memory leak features*-&lt;br /&gt;&lt;div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;The first part handles memory leak prevention and is implemented as a life-cycle listener, the &lt;a href="http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/core/JreMemoryLeakPreventionListener.html"&gt;JreMemoryLeakPreventionListener&lt;/a&gt;. This listener prevents memory leaks by calling various parts of the Java API that are known to retain a reference to the current context class loader. If a web application is the first code to call one of these standard Java APIs, the web application class loader will be pinned in memory which will cause a memory leak. By making sure that Tomcat code makes the calls first, the memory leaks are prevented. If you want to know the gritty details of what this listener actually does, the&lt;a href="http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/JreMemoryLeakPreventionListener.java?view=annotate"&gt; src &lt;/a&gt;&amp;nbsp;is pretty well commented.&lt;/li&gt;&lt;li&gt;The second part of the new features handles detection. This code executes when a web application is stopped, un-deployed or reloaded. It checks, via a combination of standard API calls and some reflection tricks, for known causes of memory leaks and - where it can - fixes them. These checks are implemented in the WebappClassLoader. As always with Tomcat, if you want the details you can look at the &lt;a href="http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappClassLoader.java?view=annotate"&gt;WebappClassLoader.java&lt;/a&gt;. Start with the clearReferences() method.&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;i&gt;All JEE application servers will benefit greatly from these features. If your JEE application and application server suffers from these memory leaks consider implementing this leak prevention and detection function following the steps below -&lt;/i&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;For&lt;b&gt; leak prevention&lt;/b&gt; modify the JreMemoryLeakPreventionListener to implement javax.servlet.ServletContextListener and leverage the servlet spec. mandated ServletContainer lifecycle events instead of the proprietary&amp;nbsp;org.apache.catalina.LifecycleEvent events passed to the&amp;nbsp;LifecycleListener interface.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;Leak detection&lt;/b&gt; is more complicated. &amp;nbsp;You can take two approaches to skinning this cat.&lt;/li&gt;&lt;/ol&gt;&lt;ul&gt;&lt;li&gt;You will need first encapsulate and later port the code in&amp;nbsp;org.apache.catalina.loader.WebappClassLoader.clearReferences() to a simple delegation classloader that plugs in after the webappclassloader i.e. all classes will first be loaded from the custom classloader that will delegate up to the webappclassloader. This way you do bookkeeping on the classes loaded in the custom classloader. Later when the application stops call the clearReferences method that operates on the loaded classes.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Alternately you will need to figure out a way to access/list ALL the classes (Class objects) loaded by your web application's classloader. With this list in hand you will call clearReferences*&amp;nbsp;methods on those classes once the application stops.&lt;textarea name="code" class="java" cols="30" rows="30"&gt;    //org.apache.catalina.loader.WebappClassLoader.clearReferences(    protected void clearReferences()    {        clearReferencesJdbc();        clearReferencesThreads();        clearReferencesThreadLocals();        clearReferencesRmiTargets();        if(ENABLE_CLEAR_REFERENCES)            clearReferencesStaticFinal();        IntrospectionUtils.clear();        if(clearReferencesLogFactoryRelease)            LogFactory.release(this);        clearReferencesResourceBundles();        Introspector.flushCaches();    }        //Custom Leak Detection Classloader to extend the abstract C
