<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://devpinoy.org/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Lamia's Java Blog - A Pinoy Java Blog : Tomcat</title><link>http://devpinoy.org/blogs/lamia/archive/tags/Tomcat/default.aspx</link><description>Tags: Tomcat</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP1 (Build: 31106.3070)</generator><item><title>Connection Pooling and Looking up an EJB through JNDI</title><link>http://devpinoy.org/blogs/lamia/archive/2007/11/07/connection-pooling-and-looking-up-an-ejb-through-jndi.aspx</link><pubDate>Wed, 07 Nov 2007 06:04:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:14854</guid><dc:creator>lamia</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/rsscomments.aspx?PostID=14854</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/commentapi.aspx?PostID=14854</wfw:comment><comments>http://devpinoy.org/blogs/lamia/archive/2007/11/07/connection-pooling-and-looking-up-an-ejb-through-jndi.aspx#comments</comments><description>

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;While I was reading a tutorial in
EJB today and I read a portion on how a Servlet uses an EJB through JNDI, it
reminded me on how I did connection pooling in Tomcat before in one of my
previous projects.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;//Looking up an EJB , from RoseIndia
example by &lt;span&gt;Deepak&amp;nbsp;Kumar&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;public&amp;nbsp;void&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;"&gt;init(ServletConfig&amp;nbsp;config)&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;throws&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;"&gt;ServletException{&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;br /&gt;
&lt;span&gt;//Look&amp;nbsp;up&amp;nbsp;home&amp;nbsp;interface&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;span&gt;try&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:black;"&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black;"&gt;InitialContext&amp;nbsp;ctx&amp;nbsp;=&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;new&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:black;"&gt;InitialContext();&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black;"&gt;Object&amp;nbsp;objref&amp;nbsp;=&amp;nbsp;ctx.lookup(&lt;/span&gt;&lt;span&gt;&amp;quot;TestSessionBean&amp;quot;&lt;/span&gt;&lt;span style="color:black;"&gt;);&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black;"&gt;testSessionBean&amp;nbsp;=&amp;nbsp;(TestSessionBeanHome)PortableRemoteObject.narrow(objref,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;
&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;"&gt;TestSessionBeanHome.&lt;/span&gt;&lt;b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;class&lt;/span&gt;&lt;/b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;color:black;"&gt;);&lt;/span&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;br /&gt;
&lt;span style="color:black;"&gt;}&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;span&gt;catch&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style="color:black;"&gt;(Exception&amp;nbsp;NamingException)&amp;nbsp;{&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:white;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="color:black;"&gt;NamingException.printStackTrace();&lt;/span&gt;&lt;br /&gt;
&lt;span style="color:black;"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;//The way I did Connection pooling
before&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public static
Connection getConnectionFromPool()&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; ResourceBundle resourceManager =
ResourceBundle.getBundle(RESOURCE_PROPERTIES);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; String dbResource =
resourceManager.getString(&amp;quot;dbresource&amp;quot;);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Connection conn = null;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; try&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; Context ctx = new
InitialContext();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; DataSource dataSource
= (DataSource)ctx.lookup(&amp;quot;java:comp/env/&amp;quot; + dbResource);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; conn =
dataSource.getConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch(NamingException nex)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //nex.printStackTrace();&amp;nbsp;&amp;nbsp;&amp;nbsp;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; //conn =
DataSourceManager.getConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
ConnectionBrokerManager.init();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; conn =
ConnectionBrokerManager.getConnection();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; catch(SQLException sqlex)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;
sqlex.printStackTrace();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&amp;quot;Got Connection:
&amp;quot; + conn.toString() );&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; return conn;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&amp;nbsp;I wasn&amp;#39;t able to answer how I
did connection pooling in one of my job interviews before. It amazes me how things
like this is helping me to better understand things now. The name you specify
in &lt;span style="color:black;"&gt;ctx.lookup&lt;/span&gt;() should be configured in your
container. In tomcat, it&amp;#39;s usually in web.xml or context.xml for your
datasource. For EJB&amp;#39;s there&amp;#39;s ejb-jar.xml and an additional
weblogic-ejb-jar.xml if you&amp;#39;re using weblogic. &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="line-height:normal;"&gt;&lt;b&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&amp;nbsp;Additional Resources:&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;a href="http://java.sun.com/j2se/1.3/docs/api/javax/naming/InitialContext.html"&gt;&lt;span style="color:blue;"&gt;javax.naming.InitialContext&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:12pt;font-family:&amp;#39;Times New Roman&amp;#39;,&amp;#39;serif&amp;#39;;"&gt;&lt;a href="http://java.sun.com/j2se/1.3/docs/api/javax/naming/Context.html"&gt;&lt;span style="color:blue;"&gt;javax.naming.Context&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;



&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=14854" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/lamia/archive/tags/J2EE-JEE/default.aspx">J2EE-JEE</category><category domain="http://devpinoy.org/blogs/lamia/archive/tags/Tomcat/default.aspx">Tomcat</category><category domain="http://devpinoy.org/blogs/lamia/archive/tags/Weblogic/default.aspx">Weblogic</category><category domain="http://devpinoy.org/blogs/lamia/archive/tags/EJB/default.aspx">EJB</category></item><item><title>Java is not slow on server-side!</title><link>http://devpinoy.org/blogs/lamia/archive/2006/09/21/Java-is-not-slow-on-server_2D00_side_2100_.aspx</link><pubDate>Thu, 21 Sep 2006 08:34:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:5216</guid><dc:creator>lamia</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/rsscomments.aspx?PostID=5216</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/commentapi.aspx?PostID=5216</wfw:comment><comments>http://devpinoy.org/blogs/lamia/archive/2006/09/21/Java-is-not-slow-on-server_2D00_side_2100_.aspx#comments</comments><description>I know I've been in the field for quite sometime now... However, over and over I get to ask myself the question how many servlet instance is created in the container? At first I thought that multiple instances are created for each user and then reused over and over again... I was wrong...&lt;br&gt;&lt;br&gt;Only one instace of a Servlet is created but multiple threads are created for each user to access it.&lt;br&gt;&lt;br&gt;Another question came into my mind... How about static fields?&lt;br&gt;&lt;br&gt;Well unless an object is synchronized, I guess both static and non-static fields are not thread safe. I dunno what effect synchronizing an objet will have on the application... I'm really not that good with multithreading(yet, but I'm working on it).&lt;br&gt;&lt;br&gt;So how can other people say that Java is slow as a server-side programming language when only one servlet instance is created? Well... I have to say... Blame it to those model 1 developers who code in straight JSP (you *@#$3#@424!!!). FYI, JSP's are compiled at runtime so putting the business logic in it will really make your app slooowww...&lt;br&gt;&lt;br&gt;Hmmm... It was quite a relief having to know how my container works...&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=5216" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/lamia/archive/tags/J2EE-JEE/default.aspx">J2EE-JEE</category><category domain="http://devpinoy.org/blogs/lamia/archive/tags/Tomcat/default.aspx">Tomcat</category><category domain="http://devpinoy.org/blogs/lamia/archive/tags/Servlets/default.aspx">Servlets</category></item><item><title>Virtual Hosting with Apache Tomcat</title><link>http://devpinoy.org/blogs/lamia/archive/2006/08/01/4047.aspx</link><pubDate>Tue, 01 Aug 2006 04:24:00 GMT</pubDate><guid isPermaLink="false">99090821-4da1-4a75-98c2-a35884625ff7:4047</guid><dc:creator>lamia</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/rsscomments.aspx?PostID=4047</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://devpinoy.org/blogs/lamia/commentapi.aspx?PostID=4047</wfw:comment><comments>http://devpinoy.org/blogs/lamia/archive/2006/08/01/4047.aspx#comments</comments><description>I don't know if this is the thing I've been looking for... But this looks promising to me. My company wants to host multiple applications on a single server. However, our hosting provider won't give us any support for Tomcat. What we need actually is like this&lt;br&gt;&lt;br&gt;www.mysite1.com points to xxx.xxx.xxx.xxx:8080/application1&lt;br&gt;&lt;br&gt;With the lack of experience to do this, I'm really starting to get frustrated. While browsing the forums at Javaranch, I encountered the term virtual hosting with Tomcat. Hmmmm... Rings a bell! So I googled and bumped into these two interesting sites:&lt;br&gt;&lt;br&gt;http://tomcat.apache.org/connectors-doc-archive/jk2/jk2/vhosthowto.html&lt;br&gt;http://www.ex-parrot.com/~pete/tomcat-vhost.html&lt;br&gt;&lt;br&gt;I haven't tried these yet. But I hope this works for me.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://devpinoy.org/aggbug.aspx?PostID=4047" width="1" height="1"&gt;</description><category domain="http://devpinoy.org/blogs/lamia/archive/tags/Tomcat/default.aspx">Tomcat</category></item></channel></rss>