tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jacob Kjome <h...@visi.com>
Subject Re: Context/DBCP mess...
Date Thu, 10 Oct 2002 03:37:03 GMT
Try moving to the latest tomcat-4.1.12.  Lots of Datasource issues have 
been fleshed out there.  Drop the 4.0.x series like a bad habit.  4.1.x is 
sweet!

Jake

At 03:08 PM 10/9/2002 -0400, you wrote:
>I'm sure we're all tired of reading about these problems (and God knows 
>I'm tired of pounding my head against a wall because of them), but I can't 
>seem to get the contexts and connectionpooling/datasources working.
>
>For starters:
>Local Development Machine:  pIII450, 512MB ram, win2000, tomcat 4.03 
>through sun one studios/forte
>Remote Development Machine:  SunOS, 1Gig ram, tomcat 4.03 standalone
>
>The problem:
>I've attempted to configure my app to use a JDBC DataSource by changing 
>the server.xml and web.xml files.  The resource tags in the server.xml are:
><Resource name="jdbc/myoracle" auth="Container" 
>type="javax.sql.Datasource" />
>
>           <ResourceParams name="jdbc/myoracle">
>             <parameter>
>               <name>driverClassName</name>
>               <value>oracle.jdbc.driver.OracleDriver</value>
>             </parameter>
>             <parameter>
>               <name>driverName</name>
>               <value>jdbc:oracle:thin:@oracle.host.blah:1521:ORCL</value>
>             </parameter>
>             <parameter>
>               <name>username</name>
>               <value>scott</value>
>             </parameter>
>             <parameter>
>               <name>password</name>
>               <value>tiger</value>
>             </parameter>
>             <parameter>
>               <name>maxActive</name>
>               <value>20</value>
>             </parameter>
>             <parameter>
>               <name>maxIdle</name>
>               <value>10</value>
>             </parameter>
>             <parameter>
>               <name>maxWait</name>
>               <value>-1</value>
>             </parameter>
>           </ResourceParams>
>
>These are the connection strings and parameters that I use to successfully 
>connect the database by manually registering the driver and simply making 
>a connection.
>
>The web.xml has:
>   <resource-ref>
>     <description>Oracle Datasource example</description>
>     <res-ref-name>jdbc/myoracle</res-ref-name>
>     <res-type>javax.sql.DataSource</res-type>
>     <res-auth>Container</res-auth>
>   </resource-ref>
>
>So, I saw the JndiServlet example, and modified it to spit out whatever I 
>had bound to my context both by looking to the initial context and my 
>environmental context (which, yes, I know, is part of the initial context, 
>but I'm stumped, so I'm trying most anything I can think of).  This is the 
>code:
>
>Context initContext = new InitialContext();
>Context envContext  = (Context)initContext.lookup("java:comp/env");
>DataSource ds = (DataSource) envContext.lookup("jdbc/myoracle");
>if(ds!=null)
>{
>   Connection conn = ds.getConnection();
>}
>else
>{
>   out.println("DataSource ds is null<br>");
>}
>//This page tests the database connection pool.
>//
>//Imported from JndiServlet.java in examples folder
>             NamingEnumeration enum = initContext.list("java:/comp/env/jdbc");
>             while (enum.hasMoreElements()) {
>             out.print("Binding : ");
>                 out.println(enum.nextElement().toString());
>             }
>             enum = envContext.listBindings("jdbc");
>             out.println("<br>listBindings1() on /comp/env/jdbc Context : ");
>             //enum = initContext.listBindings("java:/comp/env/jdbc");
>             while (enum.hasMoreElements()) {
>                 out.print("Binding : ");
>                 out.println(enum.nextElement().toString());
>             }
>             out.println("<br>listBindings2() on /comp/env/jdbc Context : ");
>             enum = initContext.listBindings("java:/comp/env/jdbc");
>             while (enum.hasMoreElements()) {
>                 out.print("Binding : ");
>                 out.println(enum.nextElement().toString());
>             }
>%>
>
>So, anytime I try it, ta-dah!  The datasource is null.  However, the 
>output shows this:
>
>DataSource ds is null
>Binding : myoracle: org.apache.naming.ResourceRef
>listBindings1() on /comp/env/jdbc Context : Binding : myoracle: 
>org.apache.naming.ResourceRef:Reference Class Name: javax.sql.DataSource 
>Type: description Content: Oracle Datasource example Type: scope Content: 
>Shareable Type: auth Content: Container Type: maxWait Content: -1 Type: 
>maxActive Content: 20 Type: password Content: tiger Type: driverName 
>Content: jdbc:oracle:thin:@oracle.host.blah:1521:ORCL Type: 
>driverClassName Content: oracle.jdbc.driver.OracleDriver Type: maxIdle 
>Content: 10 Type: username Content: scott
>listBindings2() on /comp/env/jdbc Context : Binding : myoracle: 
>org.apache.naming.ResourceRef:Reference Class Name: javax.sql.DataSource 
>Type: description Content: Oracle Datasource example Type: scope Content: 
>Shareable Type: auth Content: Container Type: maxWait Content: -1 Type: 
>maxActive Content: 20 Type: password Content: tiger Type: driverName 
>Content: jdbc:oracle:thin:@oracle.host.blah:1521:ORCL Type: 
>driverClassName Content: oracle.jdbc.driver.OracleDriver Type: maxIdle 
>Content: 10 Type: username Content: scott
>
>So it looks like it can find all of the information for this 
>datasource...  and yet, no datasource?
>
>Any suggestions?  Please... my head hurts as it is...:)
>
>
>Thanks for your time...
>
>Michael Nicholson

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message