<?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-9188119563862978527</id><updated>2012-02-16T18:38:08.135+05:30</updated><category term='iPhone'/><category term='Oracle XE'/><category term='Database'/><category term='cluster'/><category term='ECM'/><category term='Apple SDK'/><category term='Weblogic'/><category term='Stellent'/><category term='UCM'/><category term='Coherence'/><category term='iPad'/><category term='Java'/><category term='Oracle'/><category term='Objective C'/><title type='text'>C.A.F.E.B.A.B.E.</title><subtitle type='html'>Musings about my serendipitous experiences with Java, Oracle and the Cloud</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>5</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-9188119563862978527.post-7360443172258295534</id><published>2010-06-29T11:15:00.001+05:30</published><updated>2010-06-29T11:18:07.859+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Objective C'/><category scheme='http://www.blogger.com/atom/ns#' term='iPhone'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><category scheme='http://www.blogger.com/atom/ns#' term='Apple SDK'/><title type='text'>The difference between #import, #include and @class in Objective C</title><content type='html'>&lt;iframe align="right" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=cafebabe0a-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0321566157&amp;amp;fc1=F7F7FB&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=0E0D0D&amp;amp;f=ifr" style="align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;If you are an Apple iPhone/ iPad/ Safari developer wondering whats the difference between the Objective C constructs&amp;nbsp;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;#include&lt;/span&gt;&lt;/i&gt;,&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt;&amp;nbsp;and &lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;@class&lt;/span&gt;&lt;/i&gt;, read on :&lt;br /&gt;&lt;br /&gt;&lt;b&gt;#import and #include&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;C has the &lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;#include&lt;/span&gt;&lt;/i&gt; preprocessor for including libraries. Objective C supports both&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&amp;nbsp;&lt;/i&gt;&lt;/span&gt;and&amp;nbsp;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;#include&lt;/span&gt;&lt;/i&gt;&amp;nbsp;preprocessors. Apple's recommended way of loading headers in Objective C is to use&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt;. If you use&amp;nbsp;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;#include&lt;/span&gt;&lt;/i&gt;, your header files would need header guards to check if a related header file is already included or not. The&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt;&amp;nbsp;preprocessor automatically keeps track of headers that have been included and ignores if a header is imported more than once. GNU Objective C compiler supports&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt;&amp;nbsp;however, it would emit a warning discouraging the use of &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt; as its strictly not "C" compatible. You can turn off the warning by using the -Wno-import option in the GNU Objective C compiler.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;TIP :&lt;/span&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;i&gt;If your code is strictly in Objective C and you are looking at strictly supporting Apple SDKs, use &lt;span class="Apple-style-span" style="color: red;"&gt;#import&lt;/span&gt; as the pre-processor. You can turn off the warning by using the&lt;span class="Apple-style-span" style="color: red;"&gt; -Wno-import&lt;/span&gt; option in the GNU Objective C compiler.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;#import and @class&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;As discussed before, &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;#import&lt;/i&gt;&lt;/span&gt; is a preprocessor that requires the compiler to include the header file. But what if, the class itself is not available to be included or there is a circular reference between class A and class B?&lt;br /&gt;&lt;br /&gt;Thats when the construct &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;@class&lt;/i&gt;&lt;/span&gt; is useful. &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;@class&lt;/i&gt;&lt;/span&gt; is a "forward declaration" and whenever the compiler encounters an&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;@class&lt;/i&gt;&lt;/span&gt;&amp;nbsp;forward declaration, the compiler just notes that the actual declaration of the class is coming forward and hence doesnt worry about anything about that class, other than to reserve the memory allocation for a pointer whenever an instance of such forward declared classes are referred to.&lt;br /&gt;&lt;br /&gt;For example, in the code&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;@class A&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;@interface B :NSObject {&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt; &lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;A * instance; &amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;}&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Here, since class A is a forward declaration, the compiler just reserves the memory for a pointer and ignores further validation.&lt;br /&gt;&lt;br /&gt;Forward declaration not only reduces the pre-processing overheads and makes compilation &amp;amp; linking faster, but also helps better development as the implementation of class A can be "defered" without impacting the development of class B.&lt;br /&gt;&lt;br /&gt;&lt;i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;b&gt;TIP :&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;In general use this as a rule of thumb, whenever you are in doubt about &lt;span class="Apple-style-span" style="color: red;"&gt;#import&lt;/span&gt; vs &lt;span class="Apple-style-span" style="color: red;"&gt;@class&lt;/span&gt; :&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;i&gt;Always import the header files and framework classes by using &lt;span class="Apple-style-span" style="color: red;"&gt;#import&lt;/span&gt;.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;Whenever you need to &lt;b&gt;"send messages"&lt;/b&gt; to any class in your implementation, import the relevant headers using &lt;span class="Apple-style-span" style="color: red;"&gt;#import&lt;/span&gt;.&lt;/i&gt;&lt;/li&gt;&lt;li&gt;&lt;i&gt;For all other scenarios, use forward declarations with &lt;/i&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&lt;i&gt;@class&lt;/i&gt;&lt;/span&gt;&lt;i&gt;.&lt;/i&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9188119563862978527-7360443172258295534?l=cafe-o-babe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/7360443172258295534/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/06/difference-between-import-include-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/7360443172258295534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/7360443172258295534'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/06/difference-between-import-include-and.html' title='The difference between #import, #include and @class in Objective C'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9188119563862978527.post-3561607173282509920</id><published>2010-06-01T17:06:00.005+05:30</published><updated>2010-06-01T17:35:39.316+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='ECM'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><category scheme='http://www.blogger.com/atom/ns#' term='UCM'/><category scheme='http://www.blogger.com/atom/ns#' term='Stellent'/><title type='text'>Enabling Automatic Content ID Generation or Increment in Oracle UCM</title><content type='html'>&lt;iframe align="right" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=cafebabe0a-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0071602364&amp;amp;fc1=F7F7FB&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=0E0D0D&amp;amp;f=ifr" style="align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;The Content ID field needs to be specified manually while checking in content in Oracle Universal Content Management (UCM) Content Server, hitherto known as Stellent. The Content ID for any checked in document in the UCM Content Server needs to be unique and is one of the mandatory metadata required during checkin.&lt;br /&gt;&lt;br /&gt;This Content ID can be generated automatically as a number or as a sequence with a fixed String literal as prefix.&lt;br /&gt;&lt;br /&gt;Any of the following simple steps can be executed to achieve the same :&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Through the GUI &lt;/i&gt;&lt;/b&gt;: Start the Content Server. This can be done either by running the Admin Service in Microsoft Windows or by running &lt;span class="Apple-style-span" style="color: red;"&gt;IdcAdmin.exe&lt;/span&gt; under &lt;span class="Apple-style-span" style="color: red;"&gt;&lt;contentserver&gt;/admin/bin&lt;/contentserver&gt;&lt;/span&gt;. Then go to the Content Server Page in a bowser window; follow the navigation path - &lt;span class="Apple-style-span" style="color: red;"&gt;Administration &amp;gt; Admin Server &amp;gt; [ServerName] &amp;gt; General Configuration&lt;/span&gt;. In this form, select the checkbox&amp;nbsp;"&lt;span class="Apple-style-span" style="color: red;"&gt;Automatically assign a content ID on check in&lt;/span&gt;" and&amp;nbsp;enter the prefix text in the field &lt;span class="Apple-style-span" style="color: red;"&gt;"Auto Number Prefix"&lt;/span&gt;.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Through the System Properties&lt;/i&gt;&lt;/b&gt;: In Microsoft Windows, goto&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;Start menu -&amp;gt; Oracle Content Server &amp;nbsp;-&amp;gt; [ServerName] -&amp;gt;Utilities -&amp;gt; System Properties&lt;/span&gt;. In the &lt;span class="Apple-style-span" style="color: red;"&gt;Options &lt;/span&gt;tab,&amp;nbsp;enable the checkbox&amp;nbsp;"&lt;span class="Apple-style-span" style="color: red;"&gt;Automatically assign a content ID on check in&lt;/span&gt;" and&amp;nbsp;enter the prefix text in the field&amp;nbsp;&lt;span class="Apple-style-span" style="color: red;"&gt;"Auto Number Prefix"&lt;/span&gt;.&amp;nbsp;&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Through the Config : &lt;/i&gt;&lt;/b&gt;In the &lt;span class="Apple-style-span" style="color: red;"&gt;config.cfg&lt;/span&gt; file under &lt;contentserver&gt;/server/bin; under the section&amp;nbsp;General Option Variables. Add the following two entries -&lt;/contentserver&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; IsAutoNumber=true&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: red;"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AutoNumberPrefix=&lt;/span&gt;&lt;i&gt;[ContentIDPrefix]&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Now, Restart the Content Server and login to the Content Server page and check in any document. Once the checkin is through; you can see that the Content ID. During checkin, there is still a provision to override with a different Content ID if the user wishes to; as the field would now be optional instead of a mandatory field.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9188119563862978527-3561607173282509920?l=cafe-o-babe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/3561607173282509920/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/06/enabling-automatic-content-id.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/3561607173282509920'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/3561607173282509920'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/06/enabling-automatic-content-id.html' title='Enabling Automatic Content ID Generation or Increment in Oracle UCM'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9188119563862978527.post-3753914489454206173</id><published>2010-05-27T10:54:00.001+05:30</published><updated>2010-06-01T10:54:21.649+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Oracle XE'/><category scheme='http://www.blogger.com/atom/ns#' term='Database'/><category scheme='http://www.blogger.com/atom/ns#' term='Oracle'/><title type='text'>Steps to alter the maximum number of simultaenous user logins in Oracle XE.</title><content type='html'>I found it rather strange that to increase the maximum number of connections; you need to increase the processes and not through the web GUI. The steps to alter the maximum number of processes in Oracle XE is similar  to Oracle full edition.&lt;br /&gt;&lt;br /&gt;Login to the SQL Command Line as sysdba.&lt;br /&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="color: #f4cccc;"&gt;SQL&amp;gt; show parameter processes &lt;/span&gt; &lt;iframe align="right" frameborder="0" marginheight="0" marginwidth="0" scrolling="no" src="http://rcm.amazon.com/e/cm?t=cafebabe0a-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=bpl&amp;amp;asins=0071496637&amp;amp;fc1=F7F7FB&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=0E0D0D&amp;amp;f=ifr" style="align: right; height: 245px; padding-right: 10px; padding-top: 5px; width: 131px;"&gt;&lt;/iframe&gt;&lt;span class="Apple-style-span" style="color: #f4cccc;"&gt;&lt;br /&gt;NAME                                 TYPE        VALUE &lt;br /&gt;------------------------------------------------------------------------&lt;br /&gt;processes                            integer     *40* &lt;/span&gt;  &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Then increase the processes.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="color: #f4cccc;"&gt;SQL &amp;gt; alter system set processes=100 scope=spfile. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Restart the database server; Check the processes parameter for confirmation.&lt;br /&gt;&lt;br /&gt;This shall increase the number of connections.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9188119563862978527-3753914489454206173?l=cafe-o-babe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/3753914489454206173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/05/steps-to-alter-maximum-number-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/3753914489454206173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/3753914489454206173'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/2010/05/steps-to-alter-maximum-number-of.html' title='Steps to alter the maximum number of simultaenous user logins in Oracle XE.'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9188119563862978527.post-1047421573997944365</id><published>2009-03-21T14:13:00.015+05:30</published><updated>2009-03-21T15:56:12.986+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><category scheme='http://www.blogger.com/atom/ns#' term='cluster'/><category scheme='http://www.blogger.com/atom/ns#' term='Coherence'/><category scheme='http://www.blogger.com/atom/ns#' term='Weblogic'/><title type='text'>HTTP Session Management in Weblogic</title><content type='html'>Weblogic offers the following five mechanisms to track and store the state of user requests tracked as HttpSessions -&lt;br /&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;In Memory  Server [Single Server Not Replicated]&lt;br /&gt;&lt;/li&gt;&lt;li&gt;JDBC Based&lt;/li&gt;&lt;li&gt;File Based&lt;/li&gt;&lt;li&gt;In Memory Replication&lt;/li&gt;&lt;li&gt;Cookie Based&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;Weblogic supports declarative programming support for configuring the session persistence in the vendor specific deployment descriptor, &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;WEB-INF/weblogic.xml&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;In the first four session management schemes, the user state is stored in the server side and in the fifth , it is stored in the client side. However, in the first four schemes, the Weblogic server may respond with a cookie to the client side, so that subsequent requests from the client indicate the sessionid to the server. This is usually the &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;JSESSIONID&lt;/span&gt; cookie stored in the format &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;sessionID!h&lt;/span&gt; where h is the hashcode of the server. By default; the cookie name is &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;JSESSIONID&lt;/span&gt; and the length of the session id is 52 bytes.&lt;br /&gt;&lt;br /&gt;In certain cases like WAP browsers, it may not be possible to store the session cookie in the client side. In such cases, the server must be configured to support session id encoded in the request URL itself. For this, the parameters &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;url-rewriting-enabled&lt;/span&gt; as well as &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;encode-session-id-in-query-params&lt;/span&gt; must be set to true. In such cases, the response from web application must have only encoded URLs as in - &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;response.encodeURL( "catalog.jsp" ) &lt;/span&gt;&amp;amp; &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;response.encodeRedirectUrl( "error.jsp" )&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The following is snippet from weblogic.xml with modified configuration supporting URL Rewriting -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;cookie-name&amp;gt;MYSESSIONCOOKIE&amp;lt;/cookie-name&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;id-length&amp;gt;12&amp;lt;/id-length&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;encode-session-id-in-query-params&amp;gt;true&amp;lt;/encode-session-id-in-query-params&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;url-rewriting-enabled&amp;gt;true&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;/url-rewriting-enabled&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. In Memory&lt;/span&gt;&lt;br /&gt;The default session management scheme is in memory session management; The user data cached in &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;HttpSession &lt;/span&gt;is stored in memory.&lt;br /&gt;&lt;br /&gt;The limiting factor for the number of sessions that can be stored in the server is governed either by the maximum number of sessions configured as max-in-memory-sessions in the &lt;span style="font-style: italic; color: rgb(255, 0, 0);font-family:courier new;" &gt;weblogic.xml&lt;/span&gt; or by the maximum available memory for the server. When either of this is breached, the Weblogic server responds with a &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;RuntimeException&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;weblogic.servlet.SessionCreationException&lt;/span&gt; indicating that the limit for in memory session management is exhausted. Sessions have a life as configured in &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;timeout-secs&lt;/span&gt;. Sessions which have expired are cleaned up periodically releaseing memory and this interval is configured as &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;invalidation-interval-secs&lt;/span&gt;.  However, the in memory session data is lost when the server shuts down or crashes. Sample weblogic.xml for in memory session management -&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;memory&amp;lt;/persistent-store-type&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;max-in-memory-sessions&amp;gt;1000&amp;lt;/max-in-memory-sessions&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;timeout-secs&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;3600&amp;lt;/&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;timeout-secs&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;invalidation-interval-secs&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;60&amp;lt;/&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;invalidation-interval-secs&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. File Based Session Persistence&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The sessions can be persisted into a native file within the server filesystem. File based session management; though costly is useful when there is need to achieve persisted  session management beyond the life of the servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;file&amp;lt;/persistent-store-type&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-dir&amp;gt;/opt/sessions&amp;lt;/persistent-store-dir&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. JDBC Based Session Persistence&lt;/span&gt;&lt;br /&gt;In JDBC based persistence, the sessions are stored in a database table. The database needs to be configured as a Non-XA JDBC datasource and the table [default &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;WL_SERVLET_SESSIONS&lt;/span&gt;] needs to be configured similar to&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;create table wl_servlet_sessions ( &lt;/span&gt; &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;   &lt;br /&gt;&lt;/span&gt;    &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_id VARCHAR2(100) NOT NULL,&lt;br /&gt;&lt;/span&gt;  &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;  wl_context_path VARCHAR2(100) NOT NULL,&lt;br /&gt;&lt;/span&gt;  &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;  wl_is_new CHAR(1),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;   wl_create_time NUMBER(20),&lt;/span&gt;&lt;br /&gt;   &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt; wl_is_valid CHAR(1),&lt;br /&gt;&lt;/span&gt;  &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;  wl_session_values LONG RAW,&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_access_time NUMBER(20),&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_max_inactive_interval INTEGER,&lt;/span&gt;&lt;br /&gt;    &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;PRIMARY KEY (wl_id, wl_context_path)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JDBC based session persistence is resilient to server shutdowns / crashes. Weblogic server also caches a few sessions in memory even though they are persisted in memory for improved performance. The session data is stored in binary format in the &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_session_values&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt; &lt;/span&gt;column. The &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_access_time &lt;/span&gt;column of each  is updated during any read-only session operation; where as the session writes result in updating both &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_access_time &lt;/span&gt;and &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;wl_session_values&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;jdbc&amp;lt;/persistent-store-type&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;persistent-store-pool&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;jdbc/SessionDS&amp;lt;/&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;persistent-store-pool&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;cache-size&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;2048&amp;lt;/&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;cache-size&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-table&amp;gt;WL_SERVLET_SESSIONS&amp;lt;/persistent-store-table&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;jdbc-column-name-max-inactive-interval&amp;gt;jdbc&amp;lt;/&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;jdbc-column-name-max-inactive-interval&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;jdbc-connection-timeout-secs&amp;gt;60&amp;lt;/jdbc-connection-timeout-secs&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;4. In Memory Session Replication&lt;/span&gt;&lt;br /&gt;In Memory replication is used in clustered deployments. When a user accesses a shopping cart application deployed in the cluster, and the server (server1), which was handling user requests, goes down; the load balancer or the proxy server may failover the subsequent requests to next server (server2) in the cluster as per the fail over algorithm. However, by default the session is not replicated and the user may be prompted to a fresh login / error page as the session for that user is null in server2. In order to prevent this, web logic provides out of box session replication mechanisms. The replication could happen in memory; or using JDBC / File based persistence. When all the members in the cluster have the same JDBC / File persistence for session management; it is equivalent to having a session replication. In memory replication copies the session information of the user across different servers in the cluster.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;replicated&amp;lt;/persistent-store-type&amp;gt;&lt;br /&gt;&lt;/span&gt;or&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;replicated_if_clustered&amp;lt;/persistent-store-type&amp;gt;&lt;/span&gt;&lt;br /&gt;The latter ensures that replication is done only if it is deployed in a cluster; else it uses plain in memory session management.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6yRqQmkbJ-g/ScSrtPbRD-I/AAAAAAAAADQ/XN3mX0GBfpk/s1600-h/Drawing2.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 400px; height: 386px;" src="http://4.bp.blogspot.com/_6yRqQmkbJ-g/ScSrtPbRD-I/AAAAAAAAADQ/XN3mX0GBfpk/s400/Drawing2.gif" alt="Weblogic In Memory Session Replication" id="BLOGGER_PHOTO_ID_5315562253927387106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;For instance, in above case if the requests are processed by server1, the session information is also copied into a secondary server (server3) as configured using session replication groups in Weblogic. The server1 then responds with a response header with  JSESSIONID as &lt;span style="color: rgb(255, 0, 0);"&gt;sessionid1!h1!h3&lt;/span&gt;; where h1 &amp;amp; h3 are the hash ids for server1 &amp;amp; server3 respectively. Now, when the primary server (server1) goes down and the requests are failed over to another server (server2), the server2 inspects the JSESSIONID; fetches the session information from the backup server (server3) and this is now stored in the current primary server server2. If the secondary replication group is configured for server2, the server may store this information in its secondary server (server4) and hence, the response header contains JSESSIONID cookie in the format &lt;span style="color: rgb(255, 0, 0);"&gt;sessionid2!h2!h4&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For in memory session replication, the replication groups need to be configured in Weblogic. This is done by two configurations a) The replication group to which a server belongs b) The preferred secondary replication group as shown below.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_6yRqQmkbJ-g/ScS_tVxUHtI/AAAAAAAAADg/6r5KRxZQVMc/s1600-h/repl-group.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 225px;" src="http://4.bp.blogspot.com/_6yRqQmkbJ-g/ScS_tVxUHtI/AAAAAAAAADg/6r5KRxZQVMc/s400/repl-group.JPG" alt="" id="BLOGGER_PHOTO_ID_5315584245863030482" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;However, the life of in memory replicated sessions end when all the cluster members go down. For retaining session replications beyond the life of cluster, it is common to use an external caching mechanism which implements the&lt;a href="http://jcp.org/en/jsr/detail?id=107"&gt; JSR 107 &lt;/a&gt;for JCache. &lt;a href="http://www.oracle.com/technology/products/coherence/index.html"&gt;Coherence &lt;/a&gt;is an Oracle implementation of JSR107. &lt;a href="http://www.oracle.com/technology/products/coherence/coherencedatagrid/session_management.html"&gt;Coherence*Web&lt;/a&gt; provides scalable and reliable session replication across Weblogic servers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5. Cookie&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Weblogic can store the client state as cookie [with name &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;WLCOOKIE &lt;/span&gt;or as specified in &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;persistent-store-cookie-name&lt;/span&gt;]. Cookie persistence is applicable only if the client supports cookies. Hence it may not useful in secure communication or in clients which cant support cookies. Also, this can be used to store only small amounts of data. Cookies support only String persistence. Hence the cookie based persistence has only limited use.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-type&amp;gt;cookie&amp;lt;/persistent-store-type&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;&amp;lt;persistent-store-cookie-name&amp;gt;WLCOOKIE&amp;lt;/persistent-store-cookie-name&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Performance of Various Session Management Schemes&lt;/span&gt;&lt;br /&gt;Of the above configurations, File based session persistence has the maximum overhead; while in memory session management is the most optimal while JDBC based session persistence mechanism is inferior to in memory session management.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Asynchronous Session Management Schemes&lt;/span&gt;&lt;br /&gt;From &lt;a href="http://edocs.bea.com/wls/docs103/notes/new.html#wp1082656"&gt;Weblogic 10.3&lt;/a&gt;, sessions can be configured to be managed asynchronously. Also, it is possible to persist/replicate session data in batches by configuring the throttle size. This is applicable for In Memory, In Memory replication as well as for JDBC based session persistence. The asynchronous session management can hence be configured by specifying &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;persistent-store-type &lt;/span&gt;as &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;async-replicated&lt;/span&gt;, &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;async-replicated-if-clustered&lt;/span&gt; or &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;async-jdbc&lt;/span&gt; respectively.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Session Management Best Practices&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;ol style="text-align: justify;"&gt;&lt;li&gt;Use &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;HttpSession &lt;/span&gt;as temporary storage for your application state data; not a replacment for database. As much as possible limit the session usage only to state cannot be cached using alternate mechanisms.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Use only &lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;Serializable &lt;/span&gt;objects in &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;HttpSession&lt;/span&gt;.&lt;/li&gt;&lt;li&gt;Use only&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt; getAttribute() &lt;/span&gt;/ &lt;span style="color: rgb(255, 0, 0); font-style: italic;"&gt;setAttribute() &lt;/span&gt;to put &amp;amp; fetch session data.&lt;/li&gt;&lt;li&gt;Use In Memory state management as much as possible.&lt;/li&gt;&lt;li&gt;Collate multiple session attributes which are read/updated together into a single Entity before persisting in the session. For example, instead of storing item and quantity as separate attributes; group them into an OrderVO and store.&lt;/li&gt;&lt;li&gt;Similalry; instead of having the overhead of serializing and deserializing big VOs; split the VO into 'read-only' and 'read-write' attributes. For instance, it makes sense to split OrderState and OrderAddress into two separate value objects before storing in the session.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9188119563862978527-1047421573997944365?l=cafe-o-babe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/1047421573997944365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cafe-o-babe.blogspot.com/2009/03/http-session-management-in-weblogic.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/1047421573997944365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/1047421573997944365'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/2009/03/http-session-management-in-weblogic.html' title='HTTP Session Management in Weblogic'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_6yRqQmkbJ-g/ScSrtPbRD-I/AAAAAAAAADQ/XN3mX0GBfpk/s72-c/Drawing2.gif' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-9188119563862978527.post-5294772439892688820</id><published>2009-03-13T18:11:00.010+05:30</published><updated>2009-03-16T11:22:00.839+05:30</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>My First Post</title><content type='html'>&lt;div style="text-align: justify;"&gt;Its my first post; thought would start the same way as a Java class. The &lt;a href="http://en.wikipedia.org/wiki/Magic_number"&gt;magic number&lt;/a&gt; for a .class file is &lt;b&gt;&lt;i&gt;0xCAFEBABE&lt;/i&gt;&lt;/b&gt;. As &lt;a href="http://www.artima.com/insidejvm/whyCAFEBABE.html"&gt;Patrick Naughton says&lt;/a&gt;, the magic number was fixed even before the programming language was christened as Java, probably as a tribute to the cute barristas at the Peet's coffee. Java as a language has matured; its omnipresent from browser applets to swing applications to complex server side components to its miniature form J2ME. Now with the introduction of &lt;a href="http://java.sun.com/javafx/"&gt;JavaFx&lt;/a&gt;, its bound to give other programming languages a run for their money.&lt;br /&gt;&lt;br /&gt;On a spiritual note, this tempts me to compare Java with that of the omnipresent brahman which has been described as vast as the entire universe in &lt;a href="http://en.wikipedia.org/wiki/Purusha_sukta"&gt;Purusha Sukta&lt;/a&gt; and as small and pervasive as that miniature particle, which forms the basis of any object living &amp;amp; non living as described in &lt;a href="http://www.swami-krishnananda.org/invoc/in_nar.html"&gt;Narayana Sukta&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;yaccha kinchit jagat sarvam drishyate shruyatepiva&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(255, 0, 0);"&gt;antar bahischatat sarvam vyapya narayana stitaha&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-style: italic;"&gt;&lt;span style="font-size:100%;"&gt;Whatever all this universe is, seen or heard of, pervading all this&lt;br /&gt;from inside and outside alike, stands supreme the&lt;br /&gt;Eternal Divine Being.&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;Apply this to the enterprise domain, you can safely replace narayana with Java :-)&lt;br /&gt;&lt;br /&gt;The primary motivation behind this blog is to write some interesting articles which I can refer back at a later stage; as well as share the same with the rest of the folks in the developer community. Expect to continue the tempo, even after the initial post....&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/9188119563862978527-5294772439892688820?l=cafe-o-babe.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://cafe-o-babe.blogspot.com/feeds/5294772439892688820/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://cafe-o-babe.blogspot.com/2009/03/my-first-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/5294772439892688820'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/9188119563862978527/posts/default/5294772439892688820'/><link rel='alternate' type='text/html' href='http://cafe-o-babe.blogspot.com/2009/03/my-first-post.html' title='My First Post'/><author><name>Govinda</name><uri>http://www.blogger.com/profile/14203239950171782921</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='28' src='http://2.bp.blogspot.com/_6yRqQmkbJ-g/SbpUT0HernI/AAAAAAAAACo/cbNMr_cPkfo/S220/grs.bmp'/></author><thr:total>0</thr:total></entry></feed>
