yoavs       2005/03/25 19:16:18

  Modified:    webapps/docs changelog.xml
                        jndi-datasource-examples-howto.xml
  Log:
  Bugzilla 33755.
  
  Revision  Changes    Path
  1.272     +4 -0      jakarta-tomcat-catalina/webapps/docs/changelog.xml
  
  Index: changelog.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-catalina/webapps/docs/changelog.xml,v
  retrieving revision 1.271
  retrieving revision 1.272
  diff -u -r1.271 -r1.272
  --- changelog.xml     25 Mar 2005 22:24:20 -0000      1.271
  +++ changelog.xml     26 Mar 2005 03:16:18 -0000      1.272
  @@ -60,6 +60,10 @@
         <add>
           <bug>33325</bug>: Added top-level clean target to Netbuild build.xml 
file. (yoavs)
         </add>
  +      <update>
  +        <bug>33755</bug>: Clarified Postgresql JNDI datasource example. 
[patch submitted by
  +          Tom Witmer] (yoavs)
  +      </update>
       </changelog>
      </subsection>
   
  
  
  
  1.14      +84 -7     
jakarta-tomcat-catalina/webapps/docs/jndi-datasource-examples-howto.xml
  
  Index: jndi-datasource-examples-howto.xml
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-catalina/webapps/docs/jndi-datasource-examples-howto.xml,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- jndi-datasource-examples-howto.xml        27 Sep 2004 16:00:31 -0000      
1.13
  +++ jndi-datasource-examples-howto.xml        26 Mar 2005 03:16:18 -0000      
1.14
  @@ -30,7 +30,7 @@
   <section name="Introduction">
   
   <p>JNDI Datasource configuration is covered extensively in the
  -JNDI-Resources-HOWTO however, feedback from <code>tomcat-user</code> has
  +JNDI-Resources-HOWTO.  However, feedback from <code>tomcat-user</code> has
   shown that specifics for individual configurations can be rather tricky.</p>
   
   <p>Here then are some example configurations that have been posted to
  @@ -41,6 +41,12 @@
   know if you have any other tested configurations that you feel may be of use
   to the wider audience, or if you feel we can improve this section in 
anyway.</p>
   
  +<p>
  +<b>Please note that JNDI resource configuration has changed somewhat between
  +Tomcat 5.0.x and Tomcat 5.5.x.</b>  You will most likely need to modify your 
JNDI
  +resource configurations to match the syntax in the example below in order
  +to make them work in Tomcat 5.5.x.
  +</p>
   </section>
   
   <section name="Database Connection Pool (DBCP) Configurations">
  @@ -335,16 +341,65 @@
   
   <subsection name="PostgreSQL">
   <h3>0.    Introduction</h3>
  -<p>PostgreSQL is configured in a similar manner to Oracle. Again, 
highlighting the differences.
  -These notes are untested as yet and we would appreciate feedback.</p>
  -<h3>1.    server.xml configuration</h3>
  +<p>PostgreSQL is configured in a similar manner to Oracle.</p>
  +
  +<h3>1. Required files </h3>
  +<p>
  +Copy the Postgres JDBC jar to $CATALINA_HOME/common/lib. As with Oracle, the
  +jars need to be in this directory in order for DBCP's Classloader to find
  +them. This has to be done regardless of which configuration step you take 
next.
  +</p>
  +
  +<h3>2. Resource configuration</h3>
  +
  +<p>
  +You have two choices here: define a datasource that is shared across all 
Tomcat
  +applications, or define a datasource specifically for one application.
  +</p>
  +
  +<h4>2a. Shared resource configuration</h4>
  +<p>
  +Use this option if you wish to define a datasource that is shared across
  +multiple Tomcat applications, or if you just prefer defining your datasource
  +in this file.
  +</p>
  +<p><i>This author has not had success here, although others have reported so.
  +Clarification would be appreciated here.</i></p>
  +
   <source>
   &lt;Resource name="jdbc/postgres" auth="Container"
             type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
             url="jdbc:postgresql://127.0.0.1:5432/mydb"
  -          username="myuser" password="mypasswd" maxActive="20" maxIdle="10" 
maxWait="-1"/> 
  +          username="myuser" password="mypasswd" maxActive="20" maxIdle="10" 
maxWait="-1"/&gt;
   </source>
  -<h3>2.    web.xml configuration</h3>
  +<h4>2b. Application-specific resource configuration</h4>
  +
  +<p>
  +Use this option if you wish to define a datasource specific to your 
application,
  +not visible to other Tomcat applications. This method is less invasive to 
your
  +Tomcat installation.
  +</p>
  +
  +<p>
  +Create a resource definition file for your application defining the
  +datasource. This file must have the same name as your application, so if
  +your application deploys as <code>someApp.war</code>, this filename must
  +be <code>someApp.xml</code>. This file should look something like the 
following.
  +</p>
  +
  +<source>
  +&lt;Context path="/someApp" docBase="someApp"
  +   crossContext="true" reloadable="true" debug="1"&gt;
  +
  +&lt;Resource name="jdbc/postgres" auth="Container"
  +          type="javax.sql.DataSource" driverClassName="org.postgresql.Driver"
  +          url="jdbc:postgresql://127.0.0.1:5432/mydb"
  +          username="myuser" password="mypasswd" maxActive="20" maxIdle="10"
  +maxWait="-1"/&gt;
  +&lt;/Context&gt;
  +</source>
  +
  +<h3>3. web.xml configuration</h3>
   <source>
   &lt;resource-ref&gt;
    &lt;description&gt;postgreSQL Datasource example&lt;/description&gt;
  @@ -353,10 +408,32 @@
    &lt;res-auth&gt;Container&lt;/res-auth&gt;
   &lt;/resource-ref&gt;
   </source>
  +
  +<h4>4. Accessing the datasource</h4>
  +<p>
  +When accessing the datasource programmatically, remember to prepend
  +<code>java:/comp/env</code> to your JNDI lookup, as in the following snippet 
of
  +code. Note also that "jdbc/postgres" can be replaced with any value you 
prefer, provided
  +you change it in the above resource definition file as well.
  +</p>
  +
  +<source>
  +InitialContext cxt = new InitialContext();
  +if ( cxt == null ) {
  +   throw new Exception("Uh oh -- no context!");
  +}
  +
  +DataSource ds = (DataSource) cxt.lookup( "java:/comp/env/jdbc/postgres" );
  +
  +if ( cxt == null ) {
  +   throw new Exception("Data source not found!");
  +}
  +</source>
  +
   </subsection>
   </section>
   
  -<section name="Non DBCP Solutions">
  +<section name="Non-DBCP Solutions">
   <p>
   These solutions either utilise a single connection to the database (not 
recommended for anything other
   than testing!) or some other pooling technology.
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to