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]
