Thank you very much for your help. I appreciate it very much. I feel that the GlobalNamingResources is the place to put my DataSource-definition since there I can do it one time for all web-apps that are going to come and go. If there are any change is our databases it is one place to change. Thats why I ran for that alternative.
I'm looking forward to see the new documentation about DBCP in Tomcat. Regards Roland Carlsson Den 04-10-26 14.58, skrev "Steve Kirk" <[EMAIL PROTECTED]>: > > This question illustrates (IMHO) probably the biggest issue of confusion > with regard to DBCP - that is, there are several XML elements that you can > potentially use, and several places that you can potentially put them. > Specifically, the <Resource>, <ResourceParams> and <ResourceLink> elements > can go in server.xml or your webapp's context config file, and > <resource-ref> can go in your web.xml file. Most people that have DBCP > problems seem to have trouble working out elements to use, and where to put > them. A quick search on the web shows that this issue is widely > misunderstood, and there is lots of misinformation out there. > > There are actually several possibilities that work. I have not chosen the > same possibility as you Roland, but hope I can help. The how-to pages > linked earlier by Shinobu and me are also good points of reference, and if > you follow them _exactly_ it will work. I belive that the simplest and > clearest page to follow is this one: > http://jakarta.apache.org/tomcat/tomcat-5.0-doc/jndi-resources-howto.html - > I think the JDBC page contains at least one slightly misleading instruction. > > To answer your question, yes you have used <resource-ref> correctly and your > <Resource> and <ResourceParams> elements seem OK. > > However, note that you have not followed the recommended approach in the > how-to docs ;) because your <Resource> and <ResourceParams> are under > <GlobalNamingResources> rather than your webapp's <Context> tag. However > that does not make it completely wrong. Because they are under > <GlobalNamingResources> at the moment, they are not visible to your webapp. > To fix this, either they need to be moved under <Context> as recommended in > the how-to, or you need to add a <ResourceLink> under your webapp's > <Context> that refers to them. > > The <Context> that I am referring to should be either under <Host> in > server.xml as described in the how-to docs, or in your webapp's context > config file (see my example below). > > Strictly speaking, according to the JNDI how-to docs, I think your > <Resource> tag is not needed because you have a <resource-ref>, which is > equivalent, and you do not need both. Having said that, I have tried it > both with and without the <Resource> tag, and both approaches work as long > as <resource-ref> is in web.xml. > > For what it's worth, (but not wanting to confuse you!) below is the approach > that I have working. I'm including this to illustrate that there is more > than one way to configure DBCP. Note that this is a different approach to > yours, and also different to that described in the how-to docs on the TC > site. I took this approach via trial and error because I did not find the > how-to docs until after I'd got pooling working. > > 1. I have a <resource-ref> like yours in my > CATALINA_HOME\webapps\webapp\WEB-INF\web.xml > > 2. I created a context config file at > CATALINA_HOME\conf\Catalina\localhost\mywebapp.xml, where "mywebapp" is the > name of the webapp, which contains just my webapp's <Context> element, > which in turn contains <Resource> and <ResourceParams> very similar to > yours. That this <Context> tag is more usually included in server.xml, > under the default localhost <Host> tag. (By default your server.xml will > not include a <Context> tag for your webapp, you have to add it inside the > Context element for your webapp, or inside a DefaultContext element for the > surrounding <Host> or <Engine> element, as described in the JNDI how-to > page. The entire contents of my context config file are below: > > <?xml version='1.0' encoding='utf-8'?> > <Context docBase="C:\jakarta-tomcat-5.0.27\webapps\mywebapp" > path="/mywebapp" reloadable="true"> > <ResourceParams name="jdbc/mywebapp"> > <parameter> > <name>factory</name> > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > ... more parameters like yours ... > </ResourceParams> > </Context> > > 3. I have no <ResourceLink> anywhere - I don't need it because I have not > used <GlobalNamingResources> > > I know that this is a long-winded reply, but this is a tricky area and easy > to get confused. I've also been meaning to post this to the list for a few > months, having spent days learning it. Hope this helps you and others :) > >> -----Original Message----- >> From: Roland Carlsson [mailto:[EMAIL PROTECTED] >> Sent: Tuesday 26 October 2004 12:09 >> To: TomcatUsers >> Subject: Sv: JNDI DataSource GlobalResources problem >> >> >> Hello! >> >> Thanks for your answer. I have no ResourceLink in my configuration. I >> understand that I should put it a <Context>-tag but not where. >> >> How does this affect the configuration I already have done? >> Is the use of >> resource-ref and Resource correct? >> > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
