<?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-1799903564490404469</id><updated>2012-02-16T04:34:46.917-08:00</updated><category term='Nikto'/><category term='hibernate'/><category term='tnslistener'/><category term='Dekoh'/><category term='jdbc'/><category term='webgate'/><category term='HQLToken'/><category term='java'/><category term='security'/><category term='HP Serviceguard'/><category term='blackle'/><category term='reverse proxy'/><category term='analog'/><category term='preferweb-inf classes'/><category term='classloading'/><category term='flock'/><category term='jvm'/><category term='session invalidation'/><category term='oc4j'/><category term='itanium'/><category term='ORA-12505'/><category term='Verna'/><category term='troubleshooting'/><category term='IIS plugin'/><category term='webserver'/><category term='ORA-12519'/><category term='j2sdk'/><category term='JVMCrash'/><category term='session stealing'/><category term='websphere'/><category term='test drive'/><category term='app server'/><category term='browser'/><category term='pollution'/><category term='antlr'/><category term='Pramati'/><category term='log'/><category term='jboss'/><category term='IIIS'/><category term='weblogic'/><category term='trivia'/><category term='Apache'/><category term='hp'/><title type='text'>zephyr</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-3623110331582718099</id><published>2008-09-24T06:00:00.000-07:00</published><updated>2008-09-24T06:19:33.010-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='webgate'/><category scheme='http://www.blogger.com/atom/ns#' term='reverse proxy'/><category scheme='http://www.blogger.com/atom/ns#' term='Pramati'/><category scheme='http://www.blogger.com/atom/ns#' term='IIIS'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='IIS plugin'/><title type='text'>Pramati IIS Webgate plugin</title><content type='html'>Most of the times the Application servers are hidden beyond the Webserver/Load Balancers/Reverse Proxy servers, such as Apache and IIS. One of my previous posts talk about Reverse Proxy &lt;a href="http://naveenkanth.blogspot.com/2007/06/reverse-proxy-so-what-is-it-all-about.html"&gt;here&lt;/a&gt; In case you are running an apache server, it provides a nice Mod_proxy module to reverse proxy to back end nodes which happen to be Application servers. However, when running IIS, then we are in a fix if you are running the back end nodes as J2EE Application servers . Pramati Server has a nice plugin that helps you to dispatch requests from IIS to Pramati Server. Documentation for the same can be refered &lt;a href="http://www.pramati.com/docstore/1230035/wwhelp/wwhimpl/common/html/wwhelp.htm?context=serveronline&amp;amp;file=ad_webgateforiis.htm"&gt;here&lt;/a&gt;. &lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I have seen some issues where the IIS plugin installation shows up red in the IIS configuration window. Restarts of the IIS service/admin service does not seem to fix the problem. Here are 2 quick things that you might need to check if you are seeing this problem.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1. The version of the IIS Webgate plugin and the version of IIS being used. Pramati Server ships various versions of IIS Webgate plugin with different versions of Pramati Server. The ones shipped with 4.1 are compatible only with IIS 4 or IIS5. May be you are trying to use a wrong combination!! For Webgate plugin that works with IIS 5 and above, I recommend that you pick up the latest version of Pramati Server and use its plugin. The latest version of Pramati Server can be downloaded from the site &lt;a href="http://server.pramati.com"&gt;here&lt;/a&gt;. &lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;2. Sometimes, the issue could be with the log file location that you have specified for the Webgate log. The log location tag is present in the iisplugin.props file located in the ${Pramati_install}/add_ons/webgate/iis folder. Change the value to a valid location on the system&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;LogFileName E:\\fubar.log&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;These 2 checks should be able to get you running with IIS Webgate plugin in Pramati Server. Inc case you still have problems, you can talk to your designated support contact at Pramati or drop a message in one of their forums &lt;a href="http://forum.pramati.com/"&gt;here&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/1799903564490404469-3623110331582718099?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/3623110331582718099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=3623110331582718099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3623110331582718099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3623110331582718099'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2008/09/pramati-iis-webgate-plugin.html' title='Pramati IIS Webgate plugin'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-5163596193751472156</id><published>2008-07-25T22:22:00.000-07:00</published><updated>2008-07-31T11:55:03.990-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='session invalidation'/><category scheme='http://www.blogger.com/atom/ns#' term='session stealing'/><title type='text'>Session Invalidation</title><content type='html'>Session is the user's key to the application. Once the user logs out of the application, it is very vital to invalidate the session.&lt;br /&gt;&lt;br /&gt;I have come across a situation where the session was not invalidated even when I clicked on the Logout button.&lt;br /&gt;&lt;br /&gt;This happened to me with the NetGear Wireless router that I use. I logged into the Router Management page and clicked on the logout button present. I was presented with the logged out screen. All was well till I wanted to visit the Management console again. When I accessed the pages, I was presented with the console without prompting for username/password.&lt;br /&gt;&lt;br /&gt;Did I do something wrong? May be. Retry again. But it still shows the same. I use Firefox as the default browser. Then I tried with Internet Explorer. This is where the magic came up.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RkWBWkyvYqg/SJIJwMpaMzI/AAAAAAAAABs/QNm0R1nwzb0/s1600-h/IE_logout.JPG"&gt;&lt;img style="cursor: pointer;" src="http://3.bp.blogspot.com/_RkWBWkyvYqg/SJIJwMpaMzI/AAAAAAAAABs/QNm0R1nwzb0/s320/IE_logout.JPG" alt="" id="BLOGGER_PHOTO_ID_5229252840963846962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The logout button sends back to logged out confirmation page and this relies on the java script to close the browser. But that javascript fails in Firefox. There are 2 trivial things here:&lt;br /&gt;&lt;br /&gt;1. To rely on the javascript to close the browser and not verifying the cross browser functionality.&lt;br /&gt;2. Not invalidating the session once you click on the Logout button.&lt;br /&gt;&lt;br /&gt;Now talking about why it is important to invalidate the session once the user clicks on the logout button:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1. Memory utilization: Most of the times, username is not the only data stored in the Session object. There could be some user specific cache that can be put into the sessions as well.  The cache could account to good amount of memory. Imagine thousands of sessions created on the server which are waiting to be cleaned up and the memory they could could be hogging.&lt;br /&gt;&lt;br /&gt;2. Security Vulnerability: Well, this is kind of tricky. Lets say the user has clicked on the logout button but the application has not invalidated the session. Now, there is some window between the user clicking on the logout and the session invalidated on the server side due to timeout. Now, lets take a &lt;a href="http://www.owasp.org/index.php/Session_hijacking_attack"&gt;session stealing&lt;/a&gt; case. This scenario leads to an extra time window which will help the other guy to use the stolen session and change the system. Invalidating the session once the user has logged out would reduce that security risk.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-5163596193751472156?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/5163596193751472156/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=5163596193751472156' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5163596193751472156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5163596193751472156'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2008/07/session-invalidation.html' title='Session Invalidation'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RkWBWkyvYqg/SJIJwMpaMzI/AAAAAAAAABs/QNm0R1nwzb0/s72-c/IE_logout.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-3705069300554293264</id><published>2008-07-22T09:36:00.000-07:00</published><updated>2008-07-22T12:56:40.666-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ORA-12505'/><category scheme='http://www.blogger.com/atom/ns#' term='tnslistener'/><category scheme='http://www.blogger.com/atom/ns#' term='ORA-12519'/><category scheme='http://www.blogger.com/atom/ns#' term='jdbc'/><title type='text'>ORA-12519 &amp;  ORA-12505</title><content type='html'>&lt;span style="font-style: italic;"&gt;java.sql.SQLException: Listener refused the connection with the following error:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ORA-12519, TNS:no appropriate service handler found The Connection descriptor &lt;/span&gt; &lt;span style="font-style: italic;"&gt;used by the client was: localhost:1521:XE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Alright, another Oracle Exception.  It says "Listener refused the connection".  Is hostname correct? Yes, port? Yes, SID? Yes. Damn me. Must have forgot to start the TNSListener. But wait, if it is saying Listener refused the connection, doesn't it mean that the Listener is working and has refused the connection? Oh, yes. A quick check in the services shows that the Listener is already up and running. Why would Listener refuse the connection.? Wouldn't it refuse if the Oracle service is not running? Yes!! But the Oracle Server is running. Run a quick check and see what it says when the Oracle Service is not running.&lt;br /&gt;&lt;br /&gt;Well, it says&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;java.sql.SQLException: Listener refused the connection with the following error:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ORA-12505, TNS:listener does not currently know of SID given in connect descriptor&lt;/span&gt; &lt;span style="font-style: italic;"&gt;The Connection descriptor used by the client was: localhost:1521:XE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This clearly states that the SID is not recognized as the service is not running. So the earlier problem was not due to Oracle service not running.  Back to square one. Okay, let me see if listener recognizes the Oracle services... What was the command? Oh, Yes. "LSNRCTL.EXE". Do a &lt;span style="font-style: italic;"&gt;lsnrctl.exe services&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Service "xe" has 1 instance(s).&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Instance "xe", status READY, has 1 handler(s) for this service...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;    Handler(s):&lt;/span&gt; &lt;span style="font-style: italic;"&gt;      "DEDICATED" established:243 refused:0&lt;br /&gt;state:ready&lt;/span&gt; &lt;span style="font-style: italic;"&gt;         LOCAL SERVER&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The listener is able to identify that there is a service running. Hmmm. Now why does the listener refuse the connection? Let me do a quick restart on both the Oracle Service and Listener service. No use...&lt;br /&gt;&lt;br /&gt;Hmmm. Does it have have anything to do with the username/pwd that I am using. Given the fact that the username/pwd has been created just now...It might be.&lt;br /&gt;&lt;br /&gt;Now rerun with the root username/pwd. :-) It still fails. Thank God, I have not misconfigured the  username/pwd. Wait, I see that there are some connections already established in the Application Server. Well, if its failing, it should fail for all the connections. Do a restart on the AppServer and check. Its the same thing again.&lt;br /&gt;&lt;br /&gt;Okay, lets put up a simple java client which will try to create connections and see.  Alright, it gets the connection. Let me try to check how many connections it can establish.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection :0&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;3&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;5&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;7&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;8&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;9&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;10&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;11&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;12&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;13&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;14&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;15&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;16&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;17&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;18&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Connection &lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;span style="font-style: italic;"&gt;19&lt;/span&gt; &lt;span style="font-style: italic;"&gt;&lt;br /&gt;Exception in thread "main" java.sql.SQLException: Listener refused the connection with the following error:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;ORA-12519, TNS:no appropriate service handler found&lt;/span&gt; &lt;span style="font-style: italic;"&gt;The Connection descriptor used by the client was:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;localhost:1521:XE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Aha!!!! Trying to establish more than 20 connections is causing the problem.&lt;br /&gt;&lt;br /&gt;Alright, its out of my control now. Googling, finally I land up at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://forums.oracle.com/forums/thread.jspa?messageID=1145120"&gt;http://forums.oracle.com/forums/thread.jspa?messageID=1145120&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It says, the problem is with the number of process count defined in the init.ora file. Let me check. There is no process count defined. WTH, let me define the process count in init.ora file  and restart Oracle&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;processes=200&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;It still stays the same. So adding the process count is not recognized. Let me try what was suggested.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;ALTER SYSTEM SET PROCESSES=150 SCOPE=SPFILE&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Now with this change and restarting the Oracle service, it is able to create upto 409 connections now.  Great!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-3705069300554293264?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/3705069300554293264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=3705069300554293264' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3705069300554293264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3705069300554293264'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2008/07/ora-12519-ora-12505.html' title='ORA-12519 &amp;  ORA-12505'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-535029006125527454</id><published>2008-04-08T09:39:00.001-07:00</published><updated>2008-04-08T09:40:47.208-07:00</updated><title type='text'>No blogging!</title><content type='html'>One more reason why I do not blog (being lazy is the first one) :-)&lt;br /&gt;&lt;br /&gt;http://blogs.pcworld.com/staffblog/archives/006764.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-535029006125527454?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/535029006125527454/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=535029006125527454' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/535029006125527454'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/535029006125527454'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2008/04/no-blogging.html' title='No blogging!'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-5178945419329668180</id><published>2007-10-07T11:53:00.001-07:00</published><updated>2007-10-07T11:57:16.237-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='trivia'/><title type='text'>What makes me happy</title><content type='html'>What a satisfying day it was. Its been nice, I felt good all through the day. Strangely, I cannot attribute any of the activities that I did today for the Feel Good factor I am experiencing.&lt;br /&gt;&lt;br /&gt;Which one out of these made me happy?&lt;br /&gt;&lt;br /&gt;1. Getting up early in the day,about 5:30 AM which I rarely do.&lt;br /&gt;2. Stepping into Gym, which I hardly ever visited.&lt;br /&gt;3. Mom inaugurating Reliance Fresh store in our building&lt;br /&gt;4. Zipping on the roads in maruti 800, which belongs to my friend.  I should confess that I really loved doing this. A small car which happens to listen to you and to just creep into those li'l places and make others go crazy!!&lt;br /&gt;5. Visiting old school friend of mine. I got sucked into Happy days movie which I watched couple of days back. This brought back few memories of my school days and raked the old telephone directory of mine to check if any of the numbers are still working. Given that I finished my schooling 11 years back, hit 30% success with the contact numbers which is not bad.&lt;br /&gt;6. Visiting few stores to buy a bicycle(Believe me! Its True). I seemed to got sucked into this thing seeing Deepak and Surya (Both my colleagues and are avid runners). Unfortunately, I wasn't clear on the kind of one I am looking for so nothing fruitful happened there.&lt;br /&gt;7. Visiting a good friend of mine who is ill and  taking him  to a hospital. Well, we forced him to go for an injection which he furiously resisted. But we prevailed over him( Those li'l sadistic pleasures).&lt;br /&gt;8. Watching Racing Stripes movie. I just liked the concept that right friends help to do something really nice.&lt;br /&gt;&lt;br /&gt;I think I will isolate all these activities and try to replicate them one in a day(one of them cannot, but I will  know that it is the one if all others fail). Then I can narrow it down and I will know what made me happy.. Well, Support Guys are always Support Guys. You cannot change the way they think..Sigh&lt;br /&gt;&lt;br /&gt;I have resolved to workout more. I have reasons for this. Well, if you are thinking that I am trying to get into shape, then you are wrong. &lt;span style="font-weight: bold;"&gt;Who said Round is not a shape&lt;/span&gt;?? The excuses I have in my mind right now are:&lt;br /&gt;&lt;br /&gt;1. This will help me cut down the amount of nicotine I consume. Seriously, good work out always helps  you to cut down the amount you smoke.&lt;br /&gt;2. Help me to buy a Royal Enfield.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-5178945419329668180?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/5178945419329668180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=5178945419329668180' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5178945419329668180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5178945419329668180'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/10/what-makes-me-happy.html' title='What makes me happy'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-7302832558461203822</id><published>2007-09-24T11:39:00.001-07:00</published><updated>2007-09-24T11:39:26.140-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='classloading'/><category scheme='http://www.blogger.com/atom/ns#' term='app server'/><category scheme='http://www.blogger.com/atom/ns#' term='websphere'/><category scheme='http://www.blogger.com/atom/ns#' term='hibernate'/><category scheme='http://www.blogger.com/atom/ns#' term='HQLToken'/><category scheme='http://www.blogger.com/atom/ns#' term='Pramati'/><category scheme='http://www.blogger.com/atom/ns#' term='oc4j'/><category scheme='http://www.blogger.com/atom/ns#' term='antlr'/><category scheme='http://www.blogger.com/atom/ns#' term='weblogic'/><category scheme='http://www.blogger.com/atom/ns#' term='preferweb-inf classes'/><category scheme='http://www.blogger.com/atom/ns#' term='jboss'/><title type='text'>Hibernate, antlr and Class loading issues</title><content type='html'>Hibernate uses HQL(Hibernate Query Language) for generating Object-Oriented queries.&amp;nbsp; Hence for this purposes ships a specific version of antlr.jar along with the Hibernate. Most of the App servers use antlr to generate the Query Language for the CMP beans. In this case, it is quite possible that the two versions of antlr are different. The difference in versions kicks in some of the exception messages when you try to access the application. Most of the time, the exception is reported in the HQLToken class. &lt;br /&gt;&lt;br /&gt;In some cases, ClassNotFound/NoClassDef exceptions are also reported as the global library file is trying to access the Applications WEB-INF/classes or WEB-INF/lib folders.&lt;br /&gt;&lt;br /&gt;To resolve it, the easiest option is to remove the version shipped with App Server(Please note that most of the App Server support personnel refuse to assist if the folder structure/folders are altered in the server installation).&amp;nbsp; In case you are not using any components that use Container Managed Persistence, the above work around works fine.&amp;nbsp; The problems kick in when any of your component tries to use Container Managed Persistence. Also, to make sure that you get proper support from your App Server vendor, &lt;span style="font-weight: bold;"&gt;the above approach should not be followed&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So what should be done?&lt;br /&gt;&lt;br /&gt;To fix the issues, the class load/search/scope functionalty of the App server needs to be modified. The classes in the WEB-INF/classes or WEB-INF/lib folders should be loaded/searched prior to the global ones. &lt;br /&gt;&lt;br /&gt;Fortunately most of the Application servers provide a way to change to such classloading functionality. Following is the consolidated list for the App Servers:&lt;br /&gt;&lt;br /&gt;Pramati Server: &lt;br /&gt;&lt;br /&gt;Add the following tag after &amp;lt;module-name&amp;gt;&amp;nbsp; in the generated pramati-j2ee-server.xml file for the application under the &amp;lt;web-module&amp;gt; element:&lt;br /&gt;&lt;br /&gt;&amp;lt;prefer-deployed-web-classes&amp;gt;true&amp;lt;/prefer-deployed-web-classes&amp;gt;&lt;br /&gt;&lt;br /&gt;OC4J:&lt;br /&gt;http://download.oracle.com/docs/cd/B25221_04/web.1013/b14433/classload.htm#CIHFABFI&lt;br /&gt;&lt;br /&gt;WebLogic:&lt;br /&gt;http://edocs.bea.com/wls/docs81/programming/classloading.html#1082452&lt;br /&gt;&lt;br /&gt;Websphere:&lt;br /&gt;http://publib.boulder.ibm.com/infocenter/wasinfo/v5r0/topic/com.ibm.websphere.base.doc/info/aes/ae/crun_classload.html&lt;br /&gt;&lt;br /&gt;JBoss:&lt;br /&gt;http://wiki.jboss.org/wiki/Wiki.jsp?page=ClassLoadingConfiguration&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-7302832558461203822?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/7302832558461203822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=7302832558461203822' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/7302832558461203822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/7302832558461203822'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/09/hibernate-antlr-and-class-loading.html' title='Hibernate, antlr and Class loading issues'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-1569924532009573654</id><published>2007-09-13T15:14:00.001-07:00</published><updated>2007-09-13T15:17:35.946-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='flock'/><category scheme='http://www.blogger.com/atom/ns#' term='Dekoh'/><category scheme='http://www.blogger.com/atom/ns#' term='browser'/><title type='text'>Flock</title><content type='html'>&lt;span style="font-family:Arial;"&gt;Are you one of those people who spend good amount of time publishing lot of posts and transferring photographs to one of your sites such as Flickr? Then you should check out &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://www.flock.com/"&gt;Flock&lt;/a&gt;&lt;span style="font-family:Arial;"&gt;. This is very nice little browser(Of course a free one!). This remembers your account details and would post it to your blog/site for you. More details are &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://www.flock.com/about"&gt;here&lt;/a&gt;  &lt;span style="font-family:Arial;"&gt;&lt;br /&gt;&lt;br /&gt;If you are trying to upload Pics of yours to share it with your friends, then you are wasting your time and bandwidth in uploading the pics. Just download &lt;/span&gt;&lt;a style="font-family: Arial;" href="http://dekoh.com/index.jsp"&gt;Dekoh&lt;/a&gt;&lt;span style="font-family:Arial;"&gt; and start sharing the content from your desktop with fine grained control over what you share..&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-1569924532009573654?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/1569924532009573654/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=1569924532009573654' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1569924532009573654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1569924532009573654'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/09/flock.html' title='Flock'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-3846410039725792549</id><published>2007-09-13T10:40:00.000-07:00</published><updated>2007-09-13T10:57:57.285-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='troubleshooting'/><title type='text'>Want to know where your class is picked up from?</title><content type='html'>I safely assume that every one working on Java/J2EE platform must have come across class loading issues. Some (like &lt;a href="http://www.jroller.com/talonx/"&gt;Hrish&lt;/a&gt;) have the knack to crack them very efficiently. Some, like me, grope when trying to figure out the problem.  Java says the first class it encounters in the classpath is picked up and the other versions of the same class later in the classpath are ignored. That sounds pretty simple. However, in some cases, jars contain manifest files pointing to various other jar files/locations. In such cases, it becomes very difficult to check where the class is being loaded from, unless you have good amount of patience to perform a search in TextPad and go through all the results for possible class loading issues. There have been few annoying situations because of the wrong class files picked up from the class path.&lt;br /&gt;&lt;br /&gt;Here is the best way I use to figure out from which jar the class is being picked up. Start the java program with -verbose switch and it will print out the class being loaded and the jar/location from where it is being picked up. Sounds simple right? Yeah, but one caveat is, this would work only with Tiger(JDK5) version onwards. Good luck in your classloading issues, if any.&lt;br /&gt;&lt;br /&gt;PS: Want to know the fancy names for various Java versions? Click &lt;a href="http://java.sun.com/j2se/codenames.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-3846410039725792549?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/3846410039725792549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=3846410039725792549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3846410039725792549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3846410039725792549'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/09/want-to-know-where-your-class-is-picked.html' title='Want to know where your class is picked up from?'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-2002519836627732332</id><published>2007-09-12T11:19:00.000-07:00</published><updated>2007-09-13T10:23:15.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hp'/><category scheme='http://www.blogger.com/atom/ns#' term='itanium'/><category scheme='http://www.blogger.com/atom/ns#' term='jvm'/><category scheme='http://www.blogger.com/atom/ns#' term='j2sdk'/><title type='text'>JVM options for HP Java SDK</title><content type='html'>Its been long time that I actually worked with HP Java(even though for very short duration).  Had one installation running on HP-Itanium machine which uses HP-Java. We wanted to turn on few JVM options for some analysis. &lt;a href="http://www.hp.com/products1/unix/java/infolibrary/prog_guide/hotspot.html#options"&gt;Here&lt;/a&gt; is complete list of JVM options that are supported on HP Java. Its good to see HP-Java supporting few of the Sun non Standard JVM options as such.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-2002519836627732332?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/2002519836627732332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=2002519836627732332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/2002519836627732332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/2002519836627732332'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/09/jvm-options-for-hp-java-sdk.html' title='JVM options for HP Java SDK'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-3477743741770692298</id><published>2007-09-12T10:52:00.000-07:00</published><updated>2007-09-13T10:52:20.428-07:00</updated><title type='text'>Going Dutch</title><content type='html'>Any one who goes out to lunch with colleagues might have heard about this term. Today, I was having lunch with one of my good friend &lt;a href="http://straightfrommyeyes.blogspot.com/"&gt;Bharani&lt;/a&gt; and suddenly this word popped up in our conversation. We both being avid fans of word origin stories, couldn't figure out how this was coined. Given by the name, could guess that it was something related to Dutch but could make no progress. You can check out the phrase on Wikipedia &lt;a href="http://en.wikipedia.org/wiki/Going_Dutch"&gt;here&lt;/a&gt;. Well.. do not be disappointed that this has a negative meaning. As long as it does not hurt your pocket, it is good.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-3477743741770692298?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/3477743741770692298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=3477743741770692298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3477743741770692298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3477743741770692298'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/09/going-dutch.html' title='Going Dutch'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-3372017601232577297</id><published>2007-07-20T13:48:00.000-07:00</published><updated>2007-07-20T14:24:18.395-07:00</updated><title type='text'>Adiós, amigo</title><content type='html'>It was last day for Anil at our office. I am really going to miss this guy. I think I complemented this guy very well. It's very important to have such a partner specially when working in Product support environment.&lt;br /&gt;&lt;br /&gt;Anil, Thank you very much for all the things you did for me and for all the times we have worked together. I will always miss you.&lt;br /&gt;&lt;br /&gt;All the best in your next endeavors.&lt;br /&gt;&lt;br /&gt;PS: I will learn to play snookers and lets play someday when I visit your place.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-3372017601232577297?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/3372017601232577297/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=3372017601232577297' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3372017601232577297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/3372017601232577297'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/07/adis-amigo.html' title='Adiós, amigo'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-5263464374499427024</id><published>2007-07-20T13:33:00.000-07:00</published><updated>2007-07-20T14:35:25.536-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JVMCrash'/><title type='text'>JVM Crash</title><content type='html'>In my view JVM crash is the most dreaded problem that could ever happen to an App server on  production machine. Unfortunately, one of our clients production machine has been crashing regularly with a certain version of JDK at high concurrency, We have looked at few crash reports and determined that the crash appears to be happening in one particular piece of code.&lt;br /&gt;&lt;br /&gt;Our client being Premium partner with Sun was able to take it up with Sun Support Team. They needed some info from our team as well. So a conference call was setup.&lt;br /&gt;&lt;br /&gt;This is how it went on&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun: We have looked into the crash reports. But would like to know if there is any more info you could provide.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me: Sure( I ended up saying the changes that we made).&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun: Anything else?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me: We might have lot of things to say. But what is that you are looking for? &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun: I am just trying to get more info on the problem as there seems to be nothing in the logs. How did you determine that it was a problem with JDK?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me: It crashed and produced a crash report which we shared with you, You being the developers for this JDK should be able to say more about the crash and why t happened&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun: I do not see any specific info from the logs that you have sent&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me: But we see that there is this crash that always happens in a compiler thread.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sun: Oh okay, that is good info. Let me forward this to my analysis team. But can you tell me where you got this info from?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Me: Did you happen to have a look at the crash logs? It says so in the logs.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;After a day Sun team has come up with the outcome of the analysis. I thought it was impressive. The outcome was that there was a StackOverFlow during class-native compilation(Thanks to Rajiv for taking pains to explain me about this compilation).&lt;br /&gt;&lt;br /&gt;There were few params that were suggested. One of them was to increase the compilerthreadstacksize. We have tried with few options 1024,2048 but to no avail. We had to go back to Sun team to report about our unsuccessful attempts. So there was one more angle that was brought into the picture. There might be some recursion in the code due to which the stackoverflow  was happening. Well that sounded logical to me. But where was this happening? Since the current stacktrace in the jvm crash reported at jvm.dll, I am convinced to believe that it was happening somewhere in the native code of JVM. But the Sun team had to differ here. We wanted to know how we can check where this is happening.(All these were through email correspondenses).&lt;br /&gt;&lt;br /&gt;Next day there was an email from the Sun team in which they have provided one way to check where the StackOverFlow was happening.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;"We would like you to capture a thread dump before the crash so that we can analyze the issue. For accuracy, it would be really good if you can capture at least 3-4 thread dumps."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Whoa!!! How do I capture a thread dump before the JVM crash? I need some real Oracle to help me out in predicting the time of crash so that I can capture the thread dump before the crash!!&lt;br /&gt;&lt;br /&gt;Well said SUN!!!!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-5263464374499427024?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/5263464374499427024/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=5263464374499427024' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5263464374499427024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5263464374499427024'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/07/jvm-crash.html' title='JVM Crash'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-5420918432124904659</id><published>2007-07-19T12:07:00.000-07:00</published><updated>2007-07-20T13:38:25.924-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Pramati'/><category scheme='http://www.blogger.com/atom/ns#' term='HP Serviceguard'/><title type='text'>HP ServiceGuard</title><content type='html'>&lt;p class="MsoNormal"&gt;Been busy last couple of weeks. Some really nice things happened during these weeks. We had an opportunity of integrating Pramati Server with HP Serviceguard. We had one of our customer who was looking for clustering solutions. We have offered Pramati Cluster, which offers fail over, and load balancing. The End User had HP machines for production enviroment. With these HP machines he happened to purchase the Serviceguard framework which manages the fail over mechanism and manages switching of IP address( virtual IP address). We had setups with OS level clustering such as Windows Clustering, Sun Clustering. However, these happened to manage the things at a machine level. Well it really depended on how you are trying to configure it. Generally these run with Active-Active or Active-Passive configurations. Active-Active means that both the machines are in active state and the data replication happens on both machines and the load is balanced between the two machines. This is achieved by using a Virtual&lt;span style=""&gt;  &lt;/span&gt;IP address that forwards the traffic to back end machines. In Active-Passive configuration, only one machine is active at any time and all the traffic that hits virtual IP address is routed to the active machine. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;However, the HP Serviceguard was managing the thing at package level. For this service any application registered with it is a package and it manages the package between the cluster nodes. That is to say App server can be running on one cluster machine and Database on the other. These two are independent and could be running anywhere on the cluster machines. With this background, I assume it is now safe to go into the details of what happened during this integration. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The End User has called up asking for few queries on how Pramati Server can be fit into the picture. Pramati Server has clustering solution which works independent of OS level clustering. We have proposed the same. However since there is no single point of entry for the traffic for cluster nodes, we were left with either using a loadbalancer or leveraging on the HP Serviceguard framework to manage the traffic routing. The Application vendor was in favor of leveraging on the existing HP Serviceguard framework. Hence, there were series of conference calls setup with HP implementation team, the Application vendor and us. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;This is where the real fun has begun. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;The following is the snapshot of the conversation that took place between the HP implementation guy at the clients place&lt;span style=""&gt;  &lt;/span&gt;and me:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;With all introductions done…&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: How does this HP Serviceguard thing work? ( Though I have done some ground work on the HP Serviceguard thing, couldnot find any relevant docs on how the applications should interact with it).&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: The HP Serviceguard has to register your application and a virtual IP address configured for your application.&lt;span style=""&gt;  &lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Okay, how do we register the application with HP Service?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: You will have to provide us with few scripts using which we would register your app into HP Service.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: (I was happy to hear this. Good just few scripts and its all done). Okay, what would these scripts be and what is the desired functionality of the scripts.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: I am not really sure, but all I know is that you will have to provide me few scripts.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: ( What the !!!!). Okay, if you can tell us what these scripts should be doing, we might quickly put up few scripts for the desired functionality.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: ( He repeats the same thing). I am not really sure, but all I know is that you will have to provide me few scripts.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: ( Now I am beginning to worry. This is not going to end soon). Okay, then who would know about what kind of scripts are required?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: The HP Serviceguard team would know.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Are you from the HP team or a reseller of the product?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: I am from HP team, but from implementation team. So I do not know what kind of scripts. All I know that is few scripts are supposed to be provided by you.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: (Does any shell script do? Such as the one to display simple helloworld on the Console?) Okay, can you give me numbers of your HP Service team so that&lt;span style=""&gt;  &lt;/span&gt;I can talk to them?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: You wouldn’t be able to talk to them directly without any case id. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Okay, can we create a case for this and then talk to them. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: Sure, we should be able to do that. Shoot across an email on the info required and I will get back to you.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;So I shot across an email to this guy and waited for a day. Nothing happened on it. So decided to call up and check what’s happening:&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Looks like we haven’t got a reply from your team. Since we have logged a case, can we call them up and check with them?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: Yes, but I do not have the numbers for the HP Serviceguard team. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Okay, how do we get this? &lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP: Can you call up HP Sales team and check with them?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: (Sigh….) Okay, I will call them up and check.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now I call up HP sales team.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Hi, this is ….. We have one customer who is interested in integrating our App server with one of your product. HP Serviceguard. We have few clarifications. Can you help us?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HPSales: I can provide you with HP Support number who should be able to help you&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Great.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I call up this number&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: ( I ended up speaking few minutes about the current situation and what we are looking for).&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP Support: Sure Mr Naveen. Before we can start with any of your queries, can I have the serial number of the machines?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Sure, we have few HP machines at our place. So will the number from any of them do?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Here comes the ace..&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HP Support: No, the serial numbers should be of the machines on which HP Serviceguard framework was purchased.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Me: Okay I will get back with these numbers&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now&lt;span style=""&gt;  &lt;/span&gt;I call up this HP guy at the clients place and ask him for the numbers. I asked him if he can give me the serial numbers. For some strange reasons he was reluctant to give me these numbers. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Finally with some intervention from Application Vendor and End User, we could get a sample script that was used to integrate MySql with HP Serviceguard. So we just mimicked these scripts and provided them to this HP implementation guy. After a day we got a call from our App Vendor saying all went well and Pramati Server has been registered with the scripts provided by us. One more happy customer.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;But I really feel that HP Serviceguard is the one that provides clustering solution, they are supposed to have some documentation on what is required from applications such as App servers, database etc. It should have published its API if any and should be a part of the software that they sell. I wonder why it is not the case.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-5420918432124904659?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/5420918432124904659/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=5420918432124904659' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5420918432124904659'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5420918432124904659'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/07/hp-serviceguard.html' title='HP ServiceGuard'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-6508444714302627944</id><published>2007-06-30T09:33:00.000-07:00</published><updated>2007-06-30T21:17:58.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='blackle'/><title type='text'>Blackle</title><content type='html'>Do you know that Google has a black version of its famous search engine to save power?&lt;br /&gt;&lt;br /&gt;&lt;a href="http://blackle.com/"&gt;blackle&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;http://blackle.com/about/&lt;br /&gt;&lt;br /&gt;I appreciate that. Thnx Google&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-6508444714302627944?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/6508444714302627944/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=6508444714302627944' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/6508444714302627944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/6508444714302627944'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/blackle.html' title='Blackle'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-5694309282193065874</id><published>2007-06-27T01:57:00.000-07:00</published><updated>2007-06-30T09:35:47.955-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='session stealing'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Session Stealing-2</title><content type='html'>Contnuation of the previous posting..&lt;br /&gt;&lt;br /&gt;My apologies for the abrupt ending of my previous post. Something important came up due to which I had to end it abruptly.&lt;br /&gt;&lt;br /&gt;Session hijacking is generally crafted using the following methodologies:&lt;br /&gt;&lt;br /&gt;1. Request-Response Sniffing&lt;br /&gt;2. Cross site scripting&lt;br /&gt;&lt;br /&gt;Well, the first one can be prevented when the whole session is handled through https. However, if part of the session is handled through http and is switched over to https, then the sniffer would be able to pick up the session id transferred in the http session. To avoid this &lt;a href="http://www.pramati.com/"&gt;Pramati Server&lt;/a&gt; uses a special cookie in addition to the sessionid cookie. This pair is validated when trying to access the https pages. As the second cookie is set via https, the sniffer would not be able to view it easily. When the sniffer/hijacker sends a https session without the secret cookie, the server would understand that this is not from the authenticated user and hence will deny the response.&lt;br /&gt;&lt;br /&gt;Regarding second, you should check if the server is immune to XSS (cross site scripting) vulnerabilities.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-5694309282193065874?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/5694309282193065874/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=5694309282193065874' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5694309282193065874'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/5694309282193065874'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/session-stealing-2.html' title='Session Stealing-2'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-4907444253492050523</id><published>2007-06-27T01:55:00.000-07:00</published><updated>2007-06-27T03:25:43.929-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='session stealing'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Session stealing</title><content type='html'>&lt;p class="MsoNormal"&gt;You have heard about username/password, identity stealing. Did you ever hear about session stealing/hijacking? Session stealing is the act of taking control of the user session&lt;span style=""&gt;  &lt;/span&gt;after having obtained/generated authenticated session id. Following is a bit intro on session and session id.&lt;br /&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;HTTP is stateless protocol. To maintain the state of the logged in users and identify them, the servers depend on the session ids. Session is a series of interactions between two end points( in this case server and client) that happens during the span of single connection. Session ID is a random alphanumeric string that a web server assigns a specific user for the duration of that visit. Once the user is logged into the web site/application a session is created for that user and the server hands out the session id to the browser when sending the first response. The browser would send this Session ID to the server on all the subsequent requests. As long as the user makes the requests from the same browser without closing and reopening it, the web site would not ask for the login information. This is coz,the server/application validates the session id received from the browser and would check if the user with that session id is logged in. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;Now that we know what session and session id is let us move on to how it is transmitted between the server and the browser. One of the most used method is to set the session id as cookie on the browser JSESSIONID in case of J2EE and ASPSESSIONID for .NET servers. If you have any tool such as &lt;a href="http://www.blunck.se/iehttpheaders/iehttpheaders.html"&gt;IEHttpHeaders &lt;/a&gt;for IE or &lt;a href="http://livehttpheaders.mozdev.org/"&gt;LiveHttpHeaders &lt;/a&gt;for Firefox, you would be able to see something similar to this in the response from the server. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Status=OK - 200&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Date=Wed, 27 Jun 2007 11:13:45 GMT&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Content-Type=text/html&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Set-Cookie=&lt;span style="font-weight: bold;"&gt;JSESSIONID=978704440835854248&lt;/span&gt;; Path=/&lt;/p&gt;  &lt;p class="MsoNormal"&gt;X-Cache=MISS from HYD-MDU-CACHE2&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Via=1.0 HYD-MDU-CACHE2:515 (squid/2.6.STABLE12)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Connection=close&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;What you are seeing here is the Session ID Cookie and the value of the session ID. Anyone sniffing on the network packets between your server and you would be able to easily flick this info. Now once he has that session id, he would send the request to the server with the session id along with the request (You can use &lt;a href="http://tamperdata.mozdev.org/"&gt;Tamperdata &lt;/a&gt;extenstion of Firefox to do this)&lt;/p&gt;    &lt;p class="MsoNormal"&gt;Now you would start thinking. This guy has some random number generated by the server and that is passed between my browser and server. So what? Just to remind you, this session id is not just another alphanumeric string, as far as the application is considered, this your passport to the application unfortunately a passport without photo on it. Any one who has this session id can get the server tricked into believe that it is YOU who is talking to the server. It is equivalent to some one flicking off your passport and presenting himself as you(Remember no photo on it). Now when application believes that some one else is you, then it would allow that person to do what you would be able to do! Let me put it in few steps&lt;/p&gt;    &lt;p class="MsoNormal"&gt;1.&lt;span style=""&gt;         &lt;/span&gt;You open your bank site and go to the login page and login. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;2.&lt;span style=""&gt;         &lt;/span&gt;Once you are successfully logged in, the server would redirect you to your account details and setting a session id cookie in your browser. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;3.&lt;span style=""&gt;         &lt;/span&gt;When you make any request in any of the bank site, the intelligent browser would send the session id to server along with the new request. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;4.&lt;span style=""&gt;         &lt;/span&gt;The server would verify this id and see that you are already logged on. Hence no more login requests.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;5.&lt;span style=""&gt;         &lt;/span&gt;Now lets say there is a guy in the middle who has been sniffing the requests and responses between your machine and the server. He would be able to see the Session ID cookie that’s shared with you. Now he would pick up the same session id and send it over to the server. Since the id is shared between server and only you, the server would be under the impression that you are the one who is talking to server but it is actually not!&lt;/p&gt;  &lt;p class="MsoNormal"&gt;6.&lt;span style=""&gt;         &lt;/span&gt;Now the guy in the middle would make a request for harmless page with your session id sent along to the server. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;7.&lt;span style=""&gt;         &lt;/span&gt;Server would verify the session id and see that you are already logged in and hence would present the harmless page to the guy in between. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;8.&lt;span style=""&gt;         &lt;/span&gt;From here, he would be able to navigate to your account page effortlessly and view details or do what fancies him at that time.&lt;/p&gt;&lt;p class="MsoNormal"&gt;More about this in my next blog.&lt;br /&gt;&lt;/p&gt;&lt;span style=""&gt; &lt;!--[if !supportLineBreakNewLine]--&gt;&lt;br /&gt;&lt;!--[endif]--&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-4907444253492050523?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/4907444253492050523/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=4907444253492050523' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/4907444253492050523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/4907444253492050523'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/session-stealing.html' title='Session stealing'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-7158181166283450558</id><published>2007-06-17T03:31:00.000-07:00</published><updated>2007-06-17T03:42:19.885-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='pollution'/><title type='text'>Look who's doing it!!</title><content type='html'>&lt;div style="margin: 0px auto 10px; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/_RkWBWkyvYqg/RnUNd-QY49I/AAAAAAAAAA8/-BONXNmBtFo/s1600-h/26052007427.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_" alt="" src="http://3.bp.blogspot.com/_RkWBWkyvYqg/RnUNd-QY49I/AAAAAAAAAA8/-BONXNmBtFo/s320/26052007427.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;What if govt flouts pollution control rules? In the pic is one of the waste dumping yards used by GMCH( Greater Muncipal Corporation of Hyderabad). Every day hundreds of trucks dump the garbage collected from all over the city and it is burnt in the evening. Look at the rising smoke.  If something goes wrong we have govt to complain to. Now where do we go??&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/1799903564490404469-7158181166283450558?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/7158181166283450558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=7158181166283450558' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/7158181166283450558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/7158181166283450558'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/look-whos-doing-it.html' title='Look who&apos;s doing it!!'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RkWBWkyvYqg/RnUNd-QY49I/AAAAAAAAAA8/-BONXNmBtFo/s72-c/26052007427.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-6337076297292517547</id><published>2007-06-15T11:28:00.000-07:00</published><updated>2007-06-15T11:49:22.123-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='log'/><category scheme='http://www.blogger.com/atom/ns#' term='analog'/><title type='text'>Analog</title><content type='html'>How do Business Developers take decisions on what should they be targeting at? Well, I think they too need data. But, data like what? Lets say you have a web site then they would like to know what interests people the most in your site. How do they figure out this? They are not oracles that would look at the crystal ball and say “Look these are the most visited site on our site and hence developing these products/pages further would increase the traffic and your revenue”. Obviously they would like that kind of data from the person who manages the web site.&lt;br /&gt;&lt;br /&gt;Whenever there is a hit to your website, the web server that you use silently logs the request and the response it has sent. But what use is it of? I thought you would never ask this question after reading the first paragraph above. Okay, since you have asked this anyway, let me answer that. This would help that poor guy who has to give the demographics of the site to the enthusiast business developers. But any decent web site would have hits to a volume of few thousands a day. How do we get demographics from thousands of requests? This is where web log analyzers come to our rescue. I have been looking at few web log analyzers recently. Being strong supporter of open source software, I have tried to search for few and I came across this tool named &lt;a href="http://www.analog.cx/"&gt;Analog&lt;/a&gt;. An open source product, you can download from &lt;a href="http://www.analog.cx/download.html"&gt;here&lt;/a&gt;. What was impressive was that it took me less than 5 minutes to get the whole stats from my web logs. Just under 5 minutes!!&lt;br /&gt;&lt;br /&gt;This is what I did:&lt;br /&gt;&lt;br /&gt;Downloaded the package from &lt;a href="http://www.analog.cx/download.html"&gt;here &lt;/a&gt;&lt;br /&gt;Unzipped it to my disk&lt;br /&gt;Got into unzipped directory located analog.cfg fle, opened it and pointed the web log file.&lt;br /&gt;Saved the config file, and ran the analog executable.&lt;br /&gt;That’s it. This created the Report.html file that contained the stats.&lt;br /&gt;&lt;br /&gt;Sounds good. But if you have a web site, which has huge traffic, there would whole lot of web logs created in a single day. How do we deal with this? Simple.. Zip up all the logs, point Analog to the zipped up file and run it. Analog will take care of reading the requests from archive file and present the stats for you.&lt;br /&gt;&lt;br /&gt;More documentation is available &lt;a href="http://www.analog.cx/how-to/index.html"&gt;here&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-6337076297292517547?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/6337076297292517547/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=6337076297292517547' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/6337076297292517547'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/6337076297292517547'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/analog.html' title='Analog'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-907454472488006145</id><published>2007-06-13T10:54:00.000-07:00</published><updated>2007-06-15T11:48:45.014-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Server name in response headers</title><content type='html'>Was looking through some of the web server vulnerability problems again. Most of the servers do send the server name in the http response. In case you have any livehttpheaders or IEhttpheaders, the response from any of the Application servers can be checked and most of them would contain the server name and probably version as well.&lt;br /&gt;&lt;br /&gt;Here is how you can turn it off in some app servers&lt;br /&gt;&lt;br /&gt;In &lt;a href="http://www.pramati.com/"&gt;Pramati&lt;/a&gt; Server, changing value of display-server-name in-header tag to false in web-config.xml would do the trick.&lt;br /&gt;&lt;br /&gt;To prevent a WebLogic Server instance from sending its name and version number, disable the Send Server Header attribute in the Administration Console. The attribute is located on the Server —&gt;ServerName —&gt;Configuration —&gt;Protocols —&gt;HTTP tab.&lt;br /&gt;&lt;br /&gt;A new environment variable, SERVER_TOKEN_OFF, has been added to&lt;br /&gt;WebSphere Application Server for z/OS v4.0.1 that suppresses Server header in the response&lt;br /&gt;&lt;br /&gt;Apache webserver you can turn this off by setting ServerTokens option to prod. This does not eliminate the server name just removes the version of the Apache server.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-907454472488006145?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/907454472488006145/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=907454472488006145' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/907454472488006145'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/907454472488006145'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/server-name-in-response-headers.html' title='Server name in response headers'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-4178014948165953733</id><published>2007-06-01T21:51:00.000-07:00</published><updated>2007-06-13T11:35:25.546-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reverse proxy'/><title type='text'>Reverse  Proxy</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RkWBWkyvYqg/RnAuf-QY48I/AAAAAAAAAA0/YGmVBtEVqJ0/s1600-h/revproxy02.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://2.bp.blogspot.com/_RkWBWkyvYqg/RnAuf-QY48I/AAAAAAAAAA0/YGmVBtEVqJ0/s320/revproxy02.jpg" alt="" id="BLOGGER_PHOTO_ID_5075607906869109698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;So what is it all about? Before we move into what is Reverse proxy, we have to look at what proxy is..&lt;span style=""&gt;  &lt;/span&gt;I will wait till you brush up with Proxy concepts &lt;a href="http://en.wikipedia.org/wiki/Reverse_proxy"&gt;here&lt;/a&gt;. Just kidding. Proxy is that machine which acts as an intermediatary between your pc and the Internet. Put in simple way, Proxy is used as one point of exit for all your network traffic. There are benefits of this. Any rules that you would like to force such as blocking few sites, needs to be done only at proxy location. This way it gives more control on controlling what needs to be controlled. Huh!.  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;There are few points that make the proxies dear to all..&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. Caching. Lets say this blog has become so popular that 200+ people are reading this 200 times every day from your network. This means lot of network traffic to one site. Now, its very obvious that this blog would change once in a day given, I quit my job and become full time writer. Without the proxy, every request to read my blog would be routed to Internet and thus increasing the network traffic. With proxy in between, it will cache the complete blog on the first hit and the Proxy itself would serve all subsequent requests. This reduces the internet traffic and the amount that your company pays to your ISP.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. Better Control: Lets say your company would like to block this blog as it sees that people waste a lot of time reading this blog( I agree on time wasted in reading, but about being popular I doubt). Now with proxy in place, we just need to add a line in the configuration of the proxy server and restart it. Voila.. Your fav blog is no longer accessible in your network now.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Now moving to reverse proxy, the simplest way to define it would be to flip the proxy on its feet and its reverse proxy. :-)&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Reverse proxy is a special case of a proxy, designed to carry traffic from a less trusted network into a more trusted network. The normal proxy proxies on behalf of a network,&lt;span style=""&gt;  &lt;/span&gt;but the reverse proxy proxies on behalf of a web server.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;So the question is why have this in first place?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. Security: With reverse proxy in place, there is single point of entry to the web servers (from the reverse proxy). Hence you do not have to open up the web server to Internet, which would reduce the security risk.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. Caching: The reverse proxy can cache the content from the web server hence reducing the load on the actual web server and serving the content from its cache.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;3. Lets say you had to change over the web server to a different machine or to a different host name. Without reverse proxy in between, the names will have to be republished to the outside DNS world. With reverse proxy in place you don’t&lt;span style=""&gt;  &lt;/span&gt;have to deal with these as the mappings will have to be known just to the reverse proxy and not to the Internet world. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Apart from above there is whole possibility of load balancing that comes into the picture which I would write in detail about in my next coming posts.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Everything comes with some cons as well. So what would be cons about reverse proxy?&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;1. The single point of entry. While this adds more security, would prove otherwise when the reverse proxy is compromised. &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;2. The reverse proxy name/IP is all the whole world knows as the façade to your web server. When this goes down without a backup in place, your whole web presence (do I have to mention about your sleep!!) is down the drain.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-4178014948165953733?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/4178014948165953733/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=4178014948165953733' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/4178014948165953733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/4178014948165953733'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/06/reverse-proxy-so-what-is-it-all-about.html' title='Reverse  Proxy'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RkWBWkyvYqg/RnAuf-QY48I/AAAAAAAAAA0/YGmVBtEVqJ0/s72-c/revproxy02.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-1189578328797905957</id><published>2007-05-21T11:56:00.001-07:00</published><updated>2007-05-21T21:37:06.733-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='test drive'/><category scheme='http://www.blogger.com/atom/ns#' term='Verna'/><title type='text'>Verna Test Drive</title><content type='html'>&lt;p class="MsoNormal"&gt;I've test driven Verna yesterday. Unlike my friends, I kind of liked the shape, from the day it was launched. It somehow tells me that it has got that power under its hood. Although it is known that Petrol vehicles have better performance than the diesel ones, for some strange reasons, I have an affinity for the diesel engines. May be I should attribute it for the Indica Turbo diesel that I drive and the fact that it gives a decent mileage. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;My friend Anand and I have been contemplating about a test drive of Verna for the past three weeks. Now that he has tried his hands on Swift, we just wanted to go for Verna and see how different it is from the other ones. I have opted to test drive the VGT CRDI a diesel engine ~1500CC. It was Anand who had his hands on it. Having driven few SUV's such as Honda CRV and Hyundai Tucson, I was relying on him for the power performance review. Given the fact that all the diesel engines come with excess baggage of engine sound, I was quite surprised to notice that the engine was pretty silent. &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;I think lot of effort was put into the ergonomic design of the car. The pedals are all at pretty good angle. The gearshift was clean and smooth. No glitches at all. What really surprised me was the turning radius of the vehicles. I personally feel it is better than Indica( I know I know.. I should not be comparing these two cars, which are from different sectors). Somehow I feel that it lacks the initial pickup, but when you hit the gas pedal a bit hard then you see the power of 110 horses under its hood. You can feel its real performance in third gear as well with 4 people in(including the one from the showroom). We were 4 people who went to check out the car and Bharani's brother missed the ride as he was on a call (guess it was to his Girl friend, you know those usual long calls.. isolated from other friends). Verna could easily climb the hilly road of Jubilee hills in third gear and take a smooth real slow turn in the same gear. The other factor that I was looking for was the ground clearance. I have my farm 9 kms from my present home. Out of 9 kms, 3 kms stretch is full of pot holes( My dad says that it has been fixed and have a black top road for 2 kms). From this it would be quite obvious that I would be looking for a vehicle with good ground clearance. Verna scored points here again, 170 mm. &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Even though the fact that it is too over my budget and the other fact that I would need lot of efforts put into coaxing my dad, I just fell for it. It’s been almost 30+ hours that I drove this car and the feeling is still fresh in my mind. One more thing to checkout is the mileage of the diesel version. I no longer trust the figures from the showroom guys. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;The rear legroom could have been made more spacious. Having &lt;a href="http://straightfrommyeyes.blogspot.com/"&gt;Bharani&lt;/a&gt; in the car always makes us think that all cars are small no matter which one we are in. Even Verna could not dismiss that feeling. Otherwise the interiors are good and the wooden grain for the handles in SX version is pleasant. I regret not having tried the height adjustment for the driver seat. &lt;!--[endif]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;I got a follow up call on this car.. The financier seems to be offering 90% finance on the on road price(I wonder if any one is doing so). I just need to pay 1.5 lakhs as a down payment and 18,000+ as the monthly installments for 5 years. Hmmm. I was wondering if I could borrow few lakhs from my dad…. Well, let me see if I can do it… I will definitely let you know in case I succeed in it.&lt;/p&gt;&lt;p class="MsoNormal"&gt;My Friend Anil say's I should try Elantra and see if I still rave about Verna. For next week, I would try Innova which has always been my favorite(Given the fact that me and 4 of my best  buddies are long drive freaks).&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-1189578328797905957?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/1189578328797905957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=1189578328797905957' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1189578328797905957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1189578328797905957'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/05/verna-test-drive.html' title='Verna Test Drive'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1799903564490404469.post-1468475286750442901</id><published>2007-05-19T11:21:00.000-07:00</published><updated>2007-06-15T11:49:04.695-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='webserver'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><category scheme='http://www.blogger.com/atom/ns#' term='Nikto'/><title type='text'>Webserver vulnerability scanners</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:lucida grande;"&gt;Having hit by few problems related to web server vulnerability, I turned to check what open source tools are available for checking my &lt;a href="http://www.pramati.com/"&gt;server&lt;/a&gt;. I quickly got got to &lt;/span&gt;&lt;a style="FONT-FAMILY: lucida grande" href="http://www.softwareqatest.com/qatweb1.html#SECURITY"&gt;this&lt;/a&gt;&lt;span style="font-family:lucida grande;"&gt; link. Out of the list, the one that caught my attention was &lt;/span&gt;&lt;a style="FONT-FAMILY: lucida grande" href="http://www.cirt.net/code/nikto.shtml"&gt;Nikto&lt;/a&gt;&lt;span style="font-family:lucida grande;"&gt;. This is a based on &lt;/span&gt;&lt;a style="FONT-FAMILY: lucida grande" href="http://sectools.org/web-scanners.html#whisker-libwhisker"&gt;Whisker/libwhisker&lt;/a&gt;&lt;span style="font-family:lucida grande;"&gt; for much of its underlying functionality.&lt;br /&gt;&lt;br /&gt;So I quickly used my FC5 machine to run this. Its not like other scripts where you have to delve into the documentation to get them working. Nikto just needs a -host and -port parameters. That's nice. It ran 1900+ tests in just less than 8 seconds. hmmm.. this makes me skeptical now(anything that takes very less to complete and gives all positive results always makes me think this way). Well how do I really check what it is doing? Thankfully, Nikto has -verbose option to display all the tests that it has performed and its results. I plan to use its ssl option sometime later and check how it works..&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Don't upload just Share&lt;br /&gt;-&lt;a href="http://www.dekoh.com/"&gt;dekoh&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1799903564490404469-1468475286750442901?l=naveenkanth.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://naveenkanth.blogspot.com/feeds/1468475286750442901/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1799903564490404469&amp;postID=1468475286750442901' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1468475286750442901'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1799903564490404469/posts/default/1468475286750442901'/><link rel='alternate' type='text/html' href='http://naveenkanth.blogspot.com/2007/05/webserver-security-scanners.html' title='Webserver vulnerability scanners'/><author><name>Naveenkanth JR</name><uri>http://www.blogger.com/profile/02455304693378131143</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
