Chris, Using your method of including the context within the application how do you adjust for different environments (dev vs production)? Different WARs?
How we do it now is have a context.xml.default included in the conf/Catalina/NameOfYourHostInServer.xml/ directory where the JNDI datasource is defined. That way we can take the exact same WAR that was deployed on dev and deploy it to production (since they point to different DBs and thus have different datasources). Scott -----Original Message----- From: Christopher Schultz [mailto:[EMAIL PROTECTED] Sent: Tuesday, June 19, 2007 10:35 AM To: Tomcat Users List Subject: Re: Data Sources Overwritten -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Jeff, You have not followed my suggestions: 1. Remove all JNDI datasource information from server.xml and never put it back in. 2. Use a META-INF/context.xml file and bundle it into your WAR file for deployment. context.xml should include 100% of the JNDI data source configuration that you need for your app. Consider using <Resource> and specifying everything instead of trying to use <Resource> /and/ <ResourceParams>. 3. Stop using the Manager to do anything at all. This will allow your application to setup its own data source instead of relying on the server to have it ready to go before deployment. Re-deployments will re-setup the connection, just as it was intended. This is all documented (poorly, I might add), on this page: http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.h tml Under "MySQL DBCP Example / 2. server.xml configuration", replace the direction to put the configuration "into server.xml inside your <Context> element" with "into context.xml inside your <Context> element". - -chris Jeffrey C. Baldwin wrote: > Also, here is a copy of my server.xml. > > <?xml version='1.0' encoding='utf-8'?> > <Server> > <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> > <Listener > className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/ > > <GlobalNamingResources> > <Environment name="simpleValue" type="java.lang.Integer" value="30"/> > <Resource auth="Container" description="User database that can be > updated and saved" name="UserDatabase" > type="org.apache.catalina.UserDatabase"/> > <ResourceParams name="UserDatabase"> > <parameter> > <name>factory</name> > <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value> > </parameter> > <parameter> > <name>pathname</name> > <value>conf/tomcat-users.xml</value> > </parameter> > </ResourceParams> > </GlobalNamingResources> > <Service name="Catalina"> > <Connector acceptCount="100" connectionTimeout="20000" > disableUploadTimeout="true" port="8080" redirectPort="8443" > maxSpareThreads="75" maxThreads="150" > minSpareThreads="25"> > </Connector> > <Connector port="8009" protocol="AJP/1.3" > protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" > redirectPort="8443"> > </Connector> > <Engine defaultHost="localhost" name="Catalina"> > <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" > autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> > <Valve className="org.apache.catalina.valves.AccessLogValve" > directory="logs" prefix="localhost_access_log." suffix=".txt" > pattern="common" resolveHosts="fal > se" /> > <Logger className="org.apache.catalina.logger.FileLogger" > directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" /> > <Context debug="0" docBase="mrs2" path="/mrs2" reloadable="true"> > <Logger className="org.apache.catalina.logger.FileLogger" > prefix="localhost_mrs2_log." suffix=".txt" timestamp="true"/> > <Resource name="jdbc/ZosDataSource" auth="Container" > type="javax.sql.DataSource"></Resource> > <ResourceParams name="jdbc/ZosDataSource"> > <parameter> > <name>factory</name> > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > <parameter> > <name>maxActive</name> > <value>5</value> > </parameter> > <parameter> > <name>maxIdle</name> > <value>1</value> > </parameter> > <parameter> > <name>maxWait</name> > <value>10000</value> > </parameter> > <parameter> > <name>username</name> > <value>TS59MRS</value> > </parameter> > <parameter> > <name>password</name> > <value>password</value> > </parameter> > <parameter> > <name>driverClassName</name> > <value>com.ibm.db2.jcc.DB2Driver</value> > </parameter> > <parameter> > <name>url</name> > > <value>jdbc:db2://123.456.789.120:5019/NETSNDB01</value> <!-- > production 123.456.789.120:5019/NETSNDB01 --> > </parameter> > </ResourceParams> > <Resource name="jdbc/mssql2000ds" auth="Container" > type="javax.sql.DataSource"></Resource> > <ResourceParams name="jdbc/mssql2000ds"> > <parameter> > <name>factory</name> > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> > </parameter> > <parameter> > <name>maxActive</name> > <value>10</value> > </parameter> > <parameter> > <name>maxIdle</name> > <value>1</value> > </parameter> > <parameter> > <name>maxWait</name> > <value>10000</value> > </parameter> > <parameter> > <name>username</name> > <value>rreddy</value> > </parameter> > <parameter> > <name>password</name> > <value>password</value> > </parameter> > <parameter> > <name>driverClassName</name> > <value>net.sourceforge.jtds.jdbc.Driver</value> > </parameter> > <parameter> > <name>url</name> > > <value>jdbc:jtds:sqlserver://123.456.789.96/mrs;user=rreddy;password=pv1 23ankita</value> > </parameter> > </ResourceParams> > </Context> > </Host> > <Logger className="org.apache.catalina.logger.FileLogger" > prefix="catalina_log." suffix=".txt" timestamp="true"/> > <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> > </Engine> > </Service> > </Server> > > > > Jeffrey C. Baldwin wrote: >> Chris, >> >> Thank you for the time. However, I'm still not having any luck... >> >> Again, I have the entries in server.xml, so if I restart the Tomcat >> service AFTER deploying the app, all is well. However, I want the >> application developers to be able to deploy their app and not have to, >> or need to contact me to, restart the Tomcat service. >> >> Thanks again! >> >> In: >> /usr/local/tomcat/webapps/mrs2/META-INF >> >> I have: >> >> <?xml version='1.0' encoding='utf-8'?> >> <Context docBase="/usr/local/tomcat/webapps/mrs2" path="/mrs2" >> workDir="work/Catalina/localhost/mrs2"> >> <Resource auth="Container" description="zos DB2 Connection" >> name="jdbc/ZosDataSource" type="javax.sql.DataSource"/> >> <Resource auth="Container" description="local DB2 Connection" >> name="jdbc/db2ds" type="javax.sql.DataSource"/> >> <Resource auth="Container" description="msql DB Connection" >> name="jdbc/mssql2000ds" type="javax.sql.DataSource"/> >> <ResourceParams name="jdbc/ZosDataSource"> >> <parameter> >> <name>maxWait</name> >> <value>10000</value> >> </parameter> >> <parameter> >> <name>maxActive</name> >> <value>2</value> >> </parameter> >> <parameter> >> <name>password</name> >> <value>test</value> >> </parameter> >> <parameter> >> <name>url</name> >> <value>jdbc:db2://123.456.789.120:5019/NETSNDB01</value> >> </parameter> >> <parameter> >> <name>driverClassName</name> >> <value>com.ibm.db2.jcc.DB2Driver</value> >> </parameter> >> <parameter> >> <name>maxIdle</name> >> <value>1</value> >> </parameter> >> <parameter> >> <name>username</name> >> <value>TS59MRS</value> >> </parameter> >> </ResourceParams> >> <ResourceParams name="jdbc/db2ds"> >> <parameter> >> <name>driverClassName</name> >> <value></value> >> </parameter> >> </ResourceParams> >> <ResourceParams name="jdbc/mssql2000ds"> >> <parameter> >> <name>maxWait</name> >> <value>10000</value> >> </parameter> >> <parameter> >> <name>maxActive</name> >> <value>2</value> >> </parameter> >> <parameter> >> <name>password</name> >> <value>password</value> >> </parameter> >> <parameter> >> <name>url</name> >> <value>jdbc:jtds:sqlserver://123.456.789.96/mrsuat;user=rreddy;password= password</value> >> </parameter> >> <parameter> >> <name>driverClassName</name> >> <value>net.sourceforge.jtds.jdbc.Driver</value> >> </parameter> >> <parameter> >> <name>maxIdle</name> >> <value>1</value> >> </parameter> >> <parameter> >> <name>username</name> >> <value>rreddy</value> >> </parameter> >> </ResourceParams> >> </Context> >> >> >> Christopher Schultz wrote: >>> Jeffrey, >>> >>> Jeffrey C. Baldwin wrote: >>>> I appreciate all the input guys. I put everything into server.xml and >>>> the application is working great. >>> You should put that setup into META-INF/context.xml in your webapp >>> directory (or your WAR file) instead of into server.xml. This is likely >>> to fix your problem. >>> >>>> So, my question is, I was trying to set it up so that my developers >>>> could just deploy/undeploy/stop/start their apps all through the web, >>>> w/out needing shell access to the server. Is there a way for them to >>>> restart the Tomcat service through a web interface? >>> Restart the entire Tomcat service? I don't think Tomcat includes this >>> capability. You'd have to write your own, separate utility app that can >>> take down and restart Tomcat. >>> >>>> Is it normal that they should have to restart the entire Tomcat service >>>> for their app to be able to talk to the configured database connections >>>> in server.xml? >>> No, it's not. Configuring those connections in context.xml will >>> certainly alleviate this problem. >>> >>> -chris >>> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> --------------------------------------------------------------------- >> To start a new topic, e-mail: users@tomcat.apache.org >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> > > --------------------------------------------------------------------- > To start a new topic, e-mail: users@tomcat.apache.org > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGeAW+9CaO5/Lv0PARAuPsAJ0YG9txmGYz3GnCLSpdECzWoZNE9wCdGBf8 mISkIX/kQ+mRGOgeYJ1D6Ps= =BdTV -----END PGP SIGNATURE----- --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]