Chris,
Our application is really a suite of 5applications.  And the server.xml  I am 
talking about is on our dev machine, where we want to run all 5 apps on the one 
web server. 

The context.xml has global enviroiment variables (like mail server related 
vars) that all the dev applications use.
All the different dev applications also use the same database.

So that is why we define resources in the context.xml  file

Rick Noel
Systems Programmer | Westwood One
rn...@westwoodone.com

-----Original Message-----
From: Christopher Schultz <ch...@christopherschultz.net> 
Sent: Friday, March 29, 2024 2:21 PM
To: Tomcat Users List <users@tomcat.apache.org>; Rick Noel 
<rn...@westwoodone.com.INVALID>
Subject: Re: [EXT]Re: how to define database resource in just context.xml or 
server.xml

Rick,

On 3/29/24 11:56, Rick Noel wrote:
> If have the resource defined in
> CATALINA_BASE/conf/context.xml
> And
> CATALINA_BASE/conf/server.xml

You really shouldn't have anything custom in CATALINA_BASE/conf/context.xml. 
That will affect every application deployed on the server. Perhaps you only 
have a single application deployed, but things can get really confusing when 
you edit that file. 
It also makes upgrades more difficult.

I would recommend taking your <Resource> from CATALINA_BASE/conf/context.xml 
and putting it into the proper place: 
your application's META-INF/context.xml file. You will need to surround it with 
<Context> ... </Context> since that file defines the context.

If you have <Context> in your CATALINA_BASE/conf/server.xml file, you should 
remove it. If you want to disable auto-deploy, then you can always copy your 
application's META-INF/context.xml file into 
CATALINA_BASE/conf/[engine]/[host]/[contextpath].xml.

Finally, you should be able to delete your <Resource> from your 
CATALINA_BASE/conf/server.xml file entirely.

Do you have anything in your web.xml that is related? For example:

   <resource-ref>
     <res-ref-name>jdbc/foo</res-ref-name>
     <res-type>javax.sql.DataSource</res-type>
     <res-auth>Container</res-auth>
   </resource-ref>

I have one of those in my web.xml, but it's not clear to be whether or not I 
actually need it. I have *one* of them but my application uses two different 
JDBC resources. Both are declared in META-INF/context.xml and both are 
available to the application.

I think you need to use <resource-ref> in web.xml when you define "global 
naming resources" in server.xml. But if you put them into META-INF/context.xml 
it's obvious that (a) they aren't global and (b) the application expects them.

So I would remove any global naming resources you may have in server.xml and 
also remove anything you don't need in web.xml.

Doing all this will make upgrading Tomcat much easier.

-chris

> -----Original Message-----
> From: Christopher Schultz <ch...@christopherschultz.net>
> Sent: Friday, March 29, 2024 11:47 AM
> To: users@tomcat.apache.org
> Subject: [EXT]Re: how to define database resource in just context.xml 
> or server.xml
> 
> Rick,
> 
> On 3/29/24 09:48, Rick Noel wrote:
>> Can someone tell me why I need to have my database source defined in 
>> both my context.xml and server.xml? I thought we are suppose to 
>> define it in only one location?
> It's definitely not a requirement to specify it in both places.
> 
>> I can only log into my app if I have it defined in both my 
>> context.xml and server.xml
>>
>> Below  is my database resource   as defined in server.xml..........
>>
>> I have xxx out postgres URL for security reasons
>>
>> <GlobalNamingResources>
>>
>>
>>
>>                    <Resource  name="jdbc/app-pool" auth="Container"
>>                                         type="javax.sql.DataSource"  
>> driverClassName="org.postgresql.Driver"
>>                                         url="jdbc:postgresql://xxxxxxxxxxx"
>>                                         username="postgres" 
>> password="postgres4now"
>>                                         maxTotal="30"  maxIdle="30" 
>> maxWaitMillis="-1"
>>                                         removeAbandonedOnBorrow="true" 
>> removeAbandonedTimeout="90"
>>                                         testOnBorrow="true"  
>> validationQuery="select 1" validationQueryTimeout="30000"
>>                                         testWhileIdle="true"  
>> timeBetweenEvictionRunsMillis="60000"
>>                                         testOnReturn="true"
>>              />
>>
>>
>>     </GlobalNamingResources>
>>
>>
>>
>> Below is my database resource   as defined in context.xml
>>
>>
>> <Context    >
>>
>>       <Resources allowLinking="true" />
>>
>>
>>
>>      <Resource  name="jdbc/app-pool" auth="Container"
>>                        type="javax.sql.DataSource"  
>> driverClassName="org.postgresql.Driver"
>>                        url="jdbc:postgresql://xxxxxxxxxx
>>                        username="postgres" password="postgres4now"
>>                        maxTotal="30"  maxIdle="30" maxWaitMillis="-1"
>>                        removeAbandonedOnBorrow="true" 
>> removeAbandonedTimeout="90"
>>                          testOnBorrow="true"  validationQuery="select 1" 
>> validationQueryTimeout="30000"
>>                          testWhileIdle="true"  
>> timeBetweenEvictionRunsMillis="60000"
>>                          testOnReturn="true"
>>              />
> 
> Which context.xml are you talking about? The one in CATALINA_BASE/context.xml 
> or the one in your application's META-INF/context.xml?
> 
> Have you defined your <Context> in CATALINA_BASE/conf/server.xml, or are you 
> using only META-INF/context.xml?
> 
> -chris
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 
> CAUTION: This email originated from outside of the organization. Do not click 
> links or open attachments unless you know the sender and you are sure the 
> content is safe. Please report the message using the Report Message feature 
> in your email client if you believe the email is suspicious.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
> For additional commands, e-mail: users-h...@tomcat.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to