You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Eric Wulff <ew...@gmail.com> on 2004/11/16 23:13:29 UTC

Re: connection pooling again

Again, I'm no expert in this area but I can tell you what I have
that's different from you and point out a couple things that look off
to me.

1. The Class.forName(...  code is likely unnecessary and possibly
causing a problem.  As far as I know, this is needed for a standard
JDBC connection but not for connection via a Datasource.  Try getting
rid of this.

2. IfxDataSource ds= null; ???  Why are you using an Informix specific
datasource object?  Where did you get this or did you create it?  I am
using Java's Datasource.

3. I don't have a factory in myapp.xml.

Let me know how it goes.

Eric


On Tue, 16 Nov 2004 11:40:03 +0100, Akacem Mohammed
<mo...@arbeitsagentur.de> wrote:
> Hello Erik again,
> 
> Sorry my mail text  was incomplete.
> I am using the informix version : 9.21 fc5xa  ( und we will switch in two weeks to 9,40 fc4x4.  ) I downloaded the informix driver version : 2.21.JC6
> untill now I tried connection pooling with the dbcp-commons. because of the probleme I have I switched to informix driver.
> now I get a null pointer when I tried to get a DataSource object.
> 
> so im myapp.xml I have the following :
> 
>   -->
> - <parameter>
>   <name>factory</name>
>   <value>com.informix.jdbcx.IfxConnectionPoolDataSourceFactory</value>
>   </parameter>
> - <!--
> 
> - <!--  Class name for the informix treiber -->
> - <parameter>
>   <name>driverClassName</name>
>   <value>com.informix.jdbc.IfxDriver</value>
>   </parameter>
> 
> snippet of my code :
> 
>         try {
>                 Class.forName("com.informix.jdbc.IfxDriver").newInstance();
>         } catch (InstantiationException e1) {
>                 // TODO Auto-generated catch block
>                 e1.printStackTrace();
>         } catch (IllegalAccessException e1) {
>                 // TODO Auto-generated catch block
>                 e1.printStackTrace();
>         } catch (ClassNotFoundException e1) {
>                 // TODO Auto-generated catch block
>                 e1.printStackTrace();
>         }
> 
>          Context initCtx= null;
> 
>          System.out.println("\n\n before try in DBconnect\n\n");
>         try {
>                 initCtx = new InitialContext();
>                 if(initCtx!= null)System.out.println("initCtx not null");
>         } catch (NamingException e) {
>                 // TODO Auto-generated catch block
> 
>                 System.out.println("NamingException getting Initialcontext :\\n" + e.toString()+"\n\n");
>                 e.printStackTrace();
>         }
> 
>         System.out.println("\n\n before getting envCtx in DBconnect\n\n");
>         Context envCtx= null;
>         try {
>                 envCtx = (Context) initCtx.lookup("java:comp/env");
>                 if(envCtx!= null)System.out.println("envCtx  not null");
>         } catch (NamingException e1) {
>                 // TODO Auto-generated catch block
>                 System.out.println("NamingException getting envCtx :\\n" + e1.toString()+"\n\n");
>                 e1.printStackTrace();
>         }
>         System.out.println("\n\n before getting DataSource in DBconnect\n\n");
>         IfxDataSource ds= null;
>         //DataSource ds2= null;
>         try {
>                 System.out.println("\n\n before getting DataSourcein try block  in DBconnect\n\n");
>                 try {
>                         ds = (IfxDataSource) envCtx.lookup("jdbc/SteaDB");
>                 } catch (RuntimeException e3) {
>                         // TODO Auto-generated catch block
>                         e3.printStackTrace();
>                 }
>                 if(ds!= null)System.out.println("ds  not null");  // I get hier a null reference
>                 System.out.println("\n\n after lookup for DataSource in try block  in DBconnect\n\n");
>         } catch (NamingException e2) {
>                 // TODO Auto-generated catch block
>                 System.out.println("NamingException getting DataSource :\\n" + e2.toString()+"\n\n");
>                 e2.printStackTrace();
>         }
> 
>         Mohammed
> 
> -----Ursprüngliche Nachricht-----
> Von: Eric Wulff [mailto:ewulff@gmail.com]
> Gesendet: Donnerstag, 11. November 2004 18:28
> An: Akacem Mohammed
> Cc: Tomcat Users List
> Betreff: Re: AW: connection pooling
> 
> What informix db version are you working with?  I do not know how to
> get the serial value.  I use an informix driver that supports
> connection pooling and I'm not familiar with the ifmxStatement.
> Depending on the informix version, I suggest utilizing a type 4
> informix jdbc driver(search).  That may help although you may need to
> change some code such as the ifmxStatement.  I'm in a bit over my head
> on this one.
> 
> Eric
> 
> On Thu, 11 Nov 2004 12:04:28 +0100, Akacem Mohammed
> <mo...@arbeitsagentur.de> wrote:
> > Hello Eric,
> >
> > thank you Eric it works now.
> >
> > but I have another probleme now:
> >
> > in my code I have the following statements:
> >
> >                 ifmxStatement informixStmt= (IfmxStatement)stmt; // I get hier a ClassCastException
> >            // serialvalue = ((IfmxStatement)stmt).getSerial();
> >              serialvalue = informixStmt.getSerial();
> >
> > actually I am porting my app from tomcat 4.1 jkd 1.3  to tomcat 5.0.28. jdk 1.4. I earlier used the com.bitmechanic.sql package und I had no casting probleme on this statement. I looked in the ifmx.jar docs, the IfmxStatement implement Statement.that means the implementation of dbcp und ifmx.jar driver are not compatible.
> >
> > have you an idea how to get the serialvalue. I do write the serialvalue I get from informix in a column in my table(it is somhow my increment.) or do you use the pooled version of the informix driver?
> >
> > thanks for any hint
> >
> > Mohammed
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Eric Wulff [mailto:ewulff@gmail.com]
> > Gesendet: Mittwoch, 10. November 2004 19:26
> > An: mohammed.akacem@arbeitsagentur.de
> > Betreff: AW: connection pooling
> >
> > Sorry, I sent this to the user list but didn't copy you directly.
> >
> > ---------- Forwarded message ----------
> > From: Eric Wulff <ew...@gmail.com>
> > Date: Tue, 9 Nov 2004 11:32:15 -0800
> > Subject: Re: AW: connection pooling
> > To: Tomcat Users List <to...@jakarta.apache.org>
> >
> > Hi Mohammed, The resource-ref of your web.xml looks alright.  While
> > the DefaultContext should work if you place it in the correct
> > location(see notes below) within your server.xml, I doubt you want
> > this to be your final solution.  My final fix was suggested by Steve
> > and noted here...
> >
> > Copy the <Context... >(you need to change your DefaultContext tag to a
> > Context tag) from your server.xml to a file all its own and name that
> > file myapp.xml(in your case I guess that would be SteaDB.xml).  Then
> > mv that file to $CATALINA_HOME/conf/Catalina/localhost/
> >
> > Restart your app or shutdown and startup Tomcat and you should be all set.
> >
> > Let me know how it goes.
> > Eric
> >
> > Notes:
> > - I'm not sure if DefaultContext or Context within your server.xml
> > have any effect once you have a myapp.xml at
> > $CATALINA_HOME/conf/Catalina/localhost/.  I still have a Context in my
> > server.xml.
> >
> > - I don't think it matters but fyi, my Context only includes a
> > Resource, and then Resource-Params as follows: username, password,
> > driverClass, and url.
> >
> > - When working with the DefaultContext, location for that tag should
> > be within the <Engine... > tag having the Standalone attribute.  This
> > likely needs to be un-commented, hence you will need to comment out
> > the <Engine... > tag with the Catlina attribute, which is likely just
> > below in the server.xml.
> >
> > On Tue, 9 Nov 2004 14:25:41 +0100, Akacem Mohammed
> > <mo...@arbeitsagentur.de> wrote:
> > > Hello,
> > >
> > > I am stuck in the same Probleme as Erik. I did exactly what in the e-mails suggested is with no success.
> > > I am runing TC 5.0.28 und try to get a connection to an informix database.
> > > I got the following Error Message:
> > >
> > >  org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
> > >
> > > mycode :
> > >
> > >         try {
> > >                 initCtx = new InitialContext();
> > >                 envCtx = (Context) initCtx.lookup("java:comp/env");
> > >                 ds = (DataSource) envCtx.lookup("jdbc/SteaDB");
> > >         } catch (NamingException e) {
> > >                 // TODO Auto-generated catch block
> > >
> > >                 e.printStackTrace();
> > >         }
> > >         try {
> > >               conn=ds.getConnection();
> > >         } catch (SQLException e2) {
> > >                 // TODO Auto-generated catch block
> > >                 e2.printStackTrace();
> > >         }
> > >
> > > My Configuration is as follow:
> > >
> > > web.xml :
> > >
> > >   <resource-ref>
> > >       <description>DB Connection to informix</description>
> > >       <res-ref-name>jdbc/SteaDB</res-ref-name>
> > >       <res-type>javax.sql.DataSource</res-type>
> > >       <res-auth>Container</res-auth>
> > >   </resource-ref>
> > >
> > > server.xml :
> > >
> > > <DefaultContext>
> > >   <Resource name="jdbc/SteaDB" auth="Container" type="javax.sql.DataSource"/>
> > >
> > >   <ResourceParams name="jdbc/SteaDB">
> > >     <parameter>
> > >       <name>factory</name>
> > >       <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> > >     </parameter>
> > >    <!-- Maximum time to wait for a dB connection to become available
> > >          in ms, in this example 10 seconds. An Exception is thrown if
> > >          this timeout is exceeded.  Set to -1 to wait indefinitely.
> > >          -->
> > >     <parameter>
> > >       <name>maxWait</name>
> > >       <value>10000</value>
> > >     </parameter>
> > >
> > >     <!-- username and password for dB connections  -->
> > >     <parameter>
> > >      <name>username</name>
> > >      <value>unknown</value>
> > >     </parameter>
> > >     <parameter>
> > >      <name>password</name>
> > >      <value>unknown</value>
> > >     </parameter>
> > >
> > >     <!-- Class name for the informix treiber -->
> > >     <parameter>
> > >        <name>driverClassName</name>
> > >        <value>com.informix.jdbc.IfxDriver</value>
> > >     </parameter>
> > >
> > >     <parameter>
> > >       <name>url</name>
> > >       <value>
> > >         jdbc:informix-sqli://s0062033.vt.bb.de:300056/coadb:informixserver=coadbzentral
> > >       </value>
> > >     </parameter>
> > >
> > >    <parameter>
> > >         <name>removeAbandoned</name>
> > >          <value>true</value>
> > >    </parameter>
> > >             <parameter>
> > >               <name>removeAbandonedTimeout</name>
> > >               <value>300</value> <!-- in second -->
> > >             </parameter>
> > >
> > >            <parameter>
> > >               <name>logAbandoned</name>
> > >               <value>true</value>
> > >             </parameter>
> > >
> > >   </ResourceParams>
> > > </DefaultContext>
> > >
> > > thanks for any hint
> > >
> > > Mohammed
> > >
> > > -----Ursprüngliche Nachricht-----
> > > Von: Steve Kirk [mailto:tomcat-user@web-startup.co.uk]
> > > Gesendet: Dienstag, 9. November 2004 01:40
> > > An: 'Eric Wulff'; 'Tomcat Users List'
> > > Betreff: RE: connection pooling
> > >
> > > Worth clarifyig what we are meaning by "DBCP".  The DBCP I was referring to
> > > was the specific implementation of connection pooling that is part of
> > > Jakarta Commons:
> > > http://jakarta.apache.org/commons/dbcp/
> > >
> > > There are other pooling implementations which are alternatives to Commons
> > > DBCP.
> > >
> > > Some DB drivers included pooling support as-is.  Others do not.  For those
> > > that do not, you need to implement pooling by building code around the
> > > standard driver.  You used to have to do this yourself, but now there is
> > > DBCP to take care of this for you.  DBCP is a "wrapper" used around a
> > > non-pooling DB driver.
> > >
> > > So, hence my question, are you intending to use DBCP, or does your Informix
> > > driver include pooling?
> > >
> > > From the JNDI/JDBC guides it appears that you have the choice of using DBCP
> > > or not (although there is one aspect of the docs that seem slightly unclear
> > > on that, which I am going start another thread to clear up).  The configs
> > > are similar.  Personally I have only got the DBCP approach to work, hence my
> > > suggestion of using that, for which you need to include the factory
> > > parameter.  What this does is basically tells TC to call DBCP rather than
> > > your database driver when making a connection - DBCP then calls your DB
> > > driver if and when it needs to.
> > >
> > > I think I'm right in saying that if you don't explcitly use DBCP, and your
> > > DB driver does not support pooling, you will end up with non-pooled
> > > connections.  The webapp will still work but you will not have the
> > > advantages of pooling.
> > >
> > > In case it helps, here are my ResourceParams.  Note that I have both
> > > "factory" and "driverClassName":
> > >
> > >         <ResourceParams name="jdbc/myDb">
> > >                 <parameter>
> > >                         <name>factory</name>
> > >
> > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> > >                 </parameter>
> > >                 <parameter>
> > >                         <name>driverClassName</name>
> > >                         <value>com.mysql.jdbc.Driver</value>
> > >                 </parameter>
> > >                 <parameter>
> > >                         <name>username</name>
> > >                         <value>me</value>
> > >                 </parameter>
> > >                 <parameter>
> > >                         <name>password</name>
> > >                         <value>secret</value>
> > >                 </parameter>
> > >                 <parameter>
> > >                          <name>url</name>
> > >                          <value>jdbc:mysql://localhost:3306/myDb</value>
> > >                 </parameter>
> > >         </ResourceParams>
> > >
> > > > -----Original Message-----
> > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > Sent: Friday 05 November 2004 18:34
> > > > To: Steve Kirk
> > > > Cc: Tomcat Users List
> > > > Subject: Re: connection pooling
> > > >
> > > >
> > > > Steve, I am trying to use DBCP(hence the subject of the thread) and I
> > > > believe I have a driver that supports it.  Especially considering that
> > > > the connection works when I wrap my data resource in a DefaultContext
> > > > tag inside a stand alone Engine tag(server.xml), instead of inside a
> > > > Context tag(how all instructions I've followed so far suggest).
> > > >
> > > > This means my driver support DBCP, correct?
> > > >
> > > > The only source code I imagine would help is the code I use to gain
> > > > connection...
> > > >
> > > > Context initialContext = new InitialContext();
> > > > Context context = (Context) initialContext.lookup("java:comp/env");
> > > > DataSource dataSource = (DataSource) context.lookup("jdbc/wms");
> > > > connection = dataSource.getConnection();
> > > >
> > > > I have seen no mention of this factory class parameter you speak of.
> > > > I'm using TC 5.0.28.  I'll try it.
> > > >
> > > > thx much for your help
> > > > Eric
> > > >
> > > >
> > > > On Fri, 5 Nov 2004 13:30:35 -0000, Steve Kirk
> > > > <to...@web-startup.co.uk> wrote:
> > > > > Eric - you are correct,  you do not need both
> > > > <resource-ref> and <Resource>
> > > > > (although I've found that having both does not cause a problem).
> > > > >
> > > > > Back to your problem.
> > > > >
> > > > > The error message indicates that TC cannot find the Resource.
> > > > >
> > > > > I'm not sure if you are trying to use DBCP or not (in other
> > > > words, does the
> > > > > informix driver support pooling on its own, or do you in
> > > > fact need DBCP or
> > > > > some other implementation wrapped around it)?  You have
> > > > > <res-type>javax.sql.DataSource</res-type> but do not list
> > > > the factory class
> > > > > under your Resource, e.g. :
> > > > > <parameter>
> > > > >         <name>factory</name>
> > > > >
> > > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> > > > > </parameter>
> > > > >
> > > > > I have not seen any Java source code on this thread, maybe
> > > > you posted it
> > > > > before I started reading it.
> > > > >
> > > > > Thinking slightly laterally I'll pass on something I
> > > > learned from Yoav
> > > > > recently on this list.... you don't need to use
> > > > container-managed resources
> > > > > to do connection pooling.  In other words you don't need to
> > > > set any Resource
> > > > > or Context to get it to work.
> > > > >
> > > > >
> > > > >
> > > > > > -----Original Message-----
> > > > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > > > Sent: Friday 05 November 2004 05:57
> > > > > > To: Tomcat Users List; Atishay Kumar
> > > > > > Subject: Re: connection pooling
> > > > > >
> > > > > >
> > > > > > Thx for your input but, as mentioned in my previous message, I've
> > > > > > tried this and it does not work.  Also, considering my web.xml I
> > > > > > shouldn't need this, correct?  I have a <resource-ref> in
> > > > my web.xml.
> > > > > >
> > > > > > Eric
> > > > > >
> > > > > >
> > > > > > On Fri, 5 Nov 2004 11:01:05 +0530, Atishay Kumar
> > > > > > <at...@gmail.com> wrote:
> > > > > > >
> > > > > > > Pls do the following change after <context......> and u are on!!
> > > > > > > cheers
> > > > > > >
> > > > > > >
> > > > > > > On Thu, 4 Nov 2004 19:46:30 -0800, Eric Wulff
> > > > > > <ew...@gmail.com> wrote:
> > > > > > > > Hi all, I'm returning to a problem I couldn't solve the
> > > > > > first time,
> > > > > > > > about two months ago, and still can't seem to figure out.
> > > > > >  I can't get
> > > > > > > > a db connection using connection pools.  I get the
> > > > > > exception listed
> > > > > > > > below, same as so many have previously, but nothing I've
> > > > > > found seems
> > > > > > > > to works.  Below are my specs.  Anyone with concrete
> > > > > > advise/direction
> > > > > > > > on how to get
> > > > > > > > this working?
> > > > > > > >
> > > > > > > > Also, I noticed in many solutions the suggestion was made
> > > > > > to edit the
> > > > > > > > myapp.xml file located at
> > > > CATALINA_HOME/conf/Catalina/localhost/.
> > > > > > > > However, there is no myapp.xml in that directory on my
> > > > > > server. Just 2
> > > > > > > > .xml's related to other applications and a manager.xml
> > > > > > which I'm not
> > > > > > > > sure what it's related to.
> > > > > > > >
> > > > > > > > OS: FC2
> > > > > > > > Tomcat 5.0.28
> > > > > > > >
> > > > > > > > exception: org.apache.commons.dbcp.SWLNestedException:
> > > > > > Cannot create
> > > > > > > > JDBC driver class '' for connect URL 'null'
> > > > > > > >
> > > > > > > > WEB-INF web xml: code inserted AFTER all servlet mappings...
> > > > > > > >         <resource-ref>
> > > > > > > >                 <res-ref-name>jdbc/wms</res-ref-name>
> > > > > > > >                 <res-type>javax.sql.DataSource</res-type>
> > > > > > > >                 <res-auth>Container</res-auth>
> > > > > > > >         </resource-ref>
> > > > > > > >
> > > > > > > > server xml(tried this with and without a Resource name)...
> > > > > > > > <Context path="/wms" docBase="wms" debug="0"
> > > > reloadable="true">
> > > > > > >
> > > > > > > <Resource name="jdbc/wms" auth="Container"
> > > > > > type="javax.sql.DataSource"/>
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > >     <ResourceParams name="jdbc/wms">
> > > > > > > >       <parameter>
> > > > > > > >         <name>username</name>
> > > > > > > >         <value>whatever</value>
> > > > > > > >       </parameter>
> > > > > > > >       <parameter>
> > > > > > > >         <name>password</name>
> > > > > > > >         <value>whatever</value>
> > > > > > > >       </parameter>
> > > > > > > >       <parameter>
> > > > > > > >         <name>driverClassName</name>
> > > > > > > >         <value>com.informix.jdbc.IfxDriver</value>
> > > > > > > >       </parameter>
> > > > > > > >           <parameter>
> > > > > > > >                 <name>url</name>
> > > > > > > >
> > > > > > <value>jdbc:informix-sqli://foo.bar.com:somePort/dbName:INFORM
> > > > > > IXSERVER=serverName</value>
> > > > > > > >         </parameter>
> > > > > > > >     </ResourceParams>
> > > > > > > >   </Context>
> > > > > > > >
> > > > > > > > I have the following jars in my
> > > > > > <CATALINA_HONE>/common/lib and I also
> > > > > > > > tried putting the db driver and commons-collections,
> > > > > > dbcp, and pool in
> > > > > > > > my WEB-INF/lib with no success.  They are all mode 644.
> > > > > > > >
> > > > > > > > ant.jar
> > > > > > > > ant-launcher.jar
> > > > > > > > commons-collections-3.1.jar
> > > > > > > > commons-dbcp-1.2.1.jar
> > > > > > > > commons-el.jar
> > > > > > > > commons-pool-1.2.jar
> > > > > > > > ifxjdbc.jar (the necessary informix driver)
> > > > > > > > jar.txt
> > > > > > > > jasper-compiler.jar
> > > > > > > > jasper-runtime.jar
> > > > > > > > jsp-api.jar
> > > > > > > > mysql-connector-java-3.0.15-ga-bin.jar
> > > > > > > > naming-common.jar
> > > > > > > > naming-factory.jar
> > > > > > > > naming-java.jar
> > > > > > > > naming-resources.jar
> > > > > > > > servlet-api.jar
> > > > > > > >
> > > > > > > > On Fri, 8 Oct 2004 11:45:59 +0530, Atishay Kumar
> > > > > > > > <at...@gmail.com> wrote:
> > > > > > > > > hi,
> > > > > > > > >  i am not sure but you may try downloading latest
> > > > jar files for
> > > > > > > > > following froom tomcat site and try them out. copy the
> > > > > > old jar files
> > > > > > > > > somewhere else and try using the latest jar files.
> > > > > > > > > 1) Commons Collections
> > > > > > > > > 2)Commons DBCP
> > > > > > > > > 3)Commons Pool
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Thu, 7 Oct 2004 15:29:40 -0700, Eric Wulff
> > > > > > <ew...@gmail.com> wrote:
> > > > > > > > > > Except that the driver works for connecting if I'm
> > > > > > not utilizing a
> > > > > > > > > > connection pool, i.e., I am able to connect to the db
> > > > > > and manipulate
> > > > > > > > > > data via DriverManager.getConnection(url, db, pwd).
> > > > > > > > > >
> > > > > > > > > > The driver is located in CATALINA_HOME/commons/lib
> > > > > > > > > >
> > > > > > > > > > Eric
> > > > > > > > > >
> > > > > > > > > > On Thu, 7 Oct 2004 18:22:45 -0400, Phillip Qin
> > > > > > > > > > <ph...@shareowner.com> wrote:
> > > > > > > > > > > No, you don't need that many params. I think your
> > > > > > problem might be the
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > > driver. Where did you drop off your informix jdbc jar?
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > -----Original Message-----
> > > > > > > > > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > > > > > > > > Sent: October 7, 2004 5:56 PM
> > > > > > > > > > > To: Tomcat Users List
> > > > > > > > > > > Subject: Re: connection pooling
> > > > > > > > > > >
> > > > > > > > > > > Yes, I have added <Resource name=... >.  Now
> > > > > > different errors are reported
> > > > > > > > > > > via stack trace as I posted in response to
> > > > > > Atishay's suggestion that I add
> > > > > > > > > > > this.  I'll try adding your suggestions and see
> > > > > > what happens.  Also, you
> > > > > > > > > > > suggest adding many parameters.  Are they necessary
> > > > > > for simply making a
> > > > > > > > > > > connection?  If so, the tutorial I'm following,
> > > > > > 'Tomcat Kick Start' left all
> > > > > > > > > > > your suggestions out.
> > > > > > > > > > > Including the <Resource> tag, but that seems
> > > > > > critical for connection.
> > > > > > > > > > >
> > > > > > > > > > > Eric
> > > > > > > > > > >
> > > > > > > > > > > On Thu, 7 Oct 2004 17:14:27 -0400, Phillip Qin
> > > > > > <ph...@shareowner.com>
> > > > > > > > > > > wrote:
> > > > > > > > > > > > 1. web.xml: OK
> > > > > > > > > > > >
> > > > > > > > > > > > 2. context.xml on <context> of server.xml:
> > > > > > > > > > > >
> > > > > > > > > > > >         <Resource name="jdbc/test_connect"
> > > > > > auth="Container"
> > > > > > > > > > > > type="javax.sql.DataSource"/> <= have you added this?
> > > > > > > > > > > >         <ResourceParams name="jdbc/test_connect">
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>driverClassName</name>
> > > > > > > > > > > >                 <value>your.jdbc.driver</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>url</name>
> > > > > > > > > > > >                 <value>your.jdbc.url</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>username</name>
> > > > > > > > > > > >                 <value>youruser</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>password</name>
> > > > > > > > > > > >                 <value>yourpass</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>maxActive</name>
> > > > > > > > > > > >                 <value>20</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>maxIdle</name>
> > > > > > > > > > > >                 <value>10</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>minIdle</name>
> > > > > > > > > > > >                 <value>10</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>maxWait</name>
> > > > > > > > > > > >                 <value>15000</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>removeAbandoned</name>
> > > > > > > > > > > >                 <value>true</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>validationQuery</name>
> > > > > > > > > > > >                 <value>your_query</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>testOnBorrow</name>
> > > > > > > > > > > >                 <value>true</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>testOnReturn</name>
> > > > > > > > > > > >                 <value>true</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >
> > > > <name>minEvictableIdleTimeMillis</name>
> > > > > > > > > > > >                 <value>-1</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <!-- sleeps 5 minutes -->
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >
> > > > <name>timeBetweenEvictionRunsMillis</name>
> > > > > > > > > > > >                 <value>300000</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>numTestsPerEvictionRun</name>
> > > > > > > > > > > >                 <value>1</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >         <parameter>
> > > > > > > > > > > >                 <name>testWhileIdle</name>
> > > > > > > > > > > >                 <value>true</value>
> > > > > > > > > > > >         </parameter>
> > > > > > > > > > > >
> > > > > > > > > > > >         </ResourceParams>
> > > > > > > > > > > >
> > > > > > > > > > > > 3. code
> > > > > > > > > > > >
> > > > > > > > > > > >                 Context initContext = new
> > > > > > InitialContext();
> > > > > > > > > > > >                 Context jdbcContext = (Context)
> > > > > > > > > > > > initContext.lookup("java:comp/env");
> > > > > > > > > > > >                 DataSource dataSource = (DataSource)
> > > > > > > > > > > > jdbcContext.lookup("jdbc/test_connect");
> > > > > > > > > > > >                 ...
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > > -----Original Message-----
> > > > > > > > > > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > > > > > > > > > Sent: October 7, 2004 4:34 PM
> > > > > > > > > > > > To: Tomcat Users List
> > > > > > > > > > > > Subject: Re: connection pooling
> > > > > > > > > > > >
> > > > > > > > > > > > Hi Phillip,
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, 7 Oct 2004 09:29:09 -0400, you wrote:
> > > > > > > > > > > > > Detail, detail, detail.
> > > > > > > > > > > > >
> > > > > > > > > > > > > 1. your context.xml
> > > > > > > > > > > > > 2. your web.xml
> > > > > > > > > > > > > 3. how do you obtain connection from pool, java
> > > > > > code pls. 4. can you
> > > > > > > > > > > > > connect using pool 5. commons-pool version
> > > > > > > > > > > > >
> > > > > > > > > > > > > Etc. etc.
> > > > > > > > > > > > >
> > > > > > > > > > > > > You need to provide details otherwise we can't help.
> > > > > > > > > > > >
> > > > > > > > > > > > This was all included in my original post.  Ok,
> > > > > > actually my 2nd post
> > > > > > > > > > > > because I accidentally hit send prior to
> > > > > > completing my post via the
> > > > > > > > > > > > scroll pad on my laptop.  Still, thx for checking
> > > > > > on this and the info
> > > > > > > > > > > > you looking for is copied again here...
> > > > > > > > > > > >
> > > > > > > > > > > > System:
> > > > > > > > > > > > Tomcat 5 on Fedora Core 2 connecting to a db on
> > > > > > an Informix Dynamic
> > > > > > > > > > > > Server 9.4 on Windows Server
> > > > > > > > > > > >
> > > > > > > > > > > > -I am able to connect to my db via typical JDBC
> > > > > > > > > > > > DriverManager.getConnection().  This leads me to
> > > > > > believe that my
> > > > > > > > > > > > informix jdbc driver is in the correct place...
> > > > > > > > > > > > CATALINA_HOME/common/lib -I have a Context set up
> > > > > > in my server.xml per
> > > > > > > > > > > > examples in a text tutorial I'm referencing
> > > > > > > > > > > >
> > > > > > > > > > > > Below listed...
> > > > > > > > > > > > -errors
> > > > > > > > > > > > -web.xml
> > > > > > > > > > > > -server.xml <Context> (minus connection actual values)
> > > > > > > > > > > > -.java
> > > > > > > > > > > >
> > > > > > > > > > > > exception/errors:
> > > > > > > > > > > > -Exception:
> > > > > > org.apache.commons.dbcp.SQLNestedException: Cannot create
> > > > > > > > > > > > JDBC driver of class '' for connect URL 'null'
> > > > > > SQL state: null Error
> > > > > > > > > > > > code: 0
> > > > > > > > > > > >
> > > > > > > > > > > > -stack trace reveals this, but I can't see why
> > > > > > since I have the driver
> > > > > > > > > > > > in the correct directory...
> > > > > > > > > > > > java.sql.SQLException: No suitable driver at
> > > > > > > > > > > >
> > > > > > java.sql.DriverManager.getDriver(DriverManager.java:243) at
> > > > > > > > > > > >
> > > > > >
> > > > org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSour
> > > > > > > > > > > > ce.jav
> > > > > > > > > > > > a:773)
> > > > > > > > > > > >
> > > > > > > > > > > > web.xml:
> > > > > > > > > > > > <?xml version="1.0" encoding="ISO-8859-1"?>
> > > > > > > > > > > > <!DOCTYPE web-app
> > > > > > > > > > > >    PUBLIC "-//Sun Microsystems, Inc.//DTD Web
> > > > > > Application 2.3//EN"
> > > > > > > > > > > >    "http://java.sun.com/dtd/web-app_2_3.dtd">
> > > > > > > > > > > > <web-app>
> > > > > > > > > > > >        <servlet>
> > > > > > > > > > > >                <servlet-name>Test Connection
> > > > > > Pooling</servlet-name>
> > > > > > > > > > > >
> > > > > > <servlet-class>TestConnectionPooling</servlet-class>
> > > > > > > > > > > >        </servlet>
> > > > > > > > > > > >
> > > > > > > > > > > >        <servlet-mapping>
> > > > > > > > > > > >                <servlet-name>Test Connection
> > > > > > Pooling</servlet-name>
> > > > > > > > > > > >
> > > > > > <url-pattern>/testConnectionPooling</url-pattern>
> > > > > > > > > > > >        </servlet-mapping>
> > > > > > > > > > > >
> > > > > > > > > > > >        <resource-ref>
> > > > > > > > > > > >
> > > > <res-ref-name>jdbc/test_connect</res-ref-name>
> > > > > > > > > > > >          <res-type>javax.sql.DataSource</res-type>
> > > > > > > > > > > >          <res-auth>Container</res-auth>
> > > > > > > > > > > >        </resource-ref>
> > > > > > > > > > > > </web-app>
> > > > > > > > > > > >
> > > > > > > > > > > > server.xml <Context>:
> > > > > > > > > > > >  <Context path="/testConnectionPooling"
> > > > > > > > > > > > docBase="testConnectionPooling" debug="0"
> > > > > > reloadable="true">
> > > > > > > > > > > >    <ResourceParams name="jdbc/test_connect">
> > > > > > > > > > > >      <parameter>
> > > > > > > > > > > >        <name>username</name>
> > > > > > > > > > > >        <value>informix</value>
> > > > > > > > > > > >      </parameter>
> > > > > > > > > > > >      <parameter>
> > > > > > > > > > > >        <name>password</name>
> > > > > > > > > > > >        <value>informix</value>
> > > > > > > > > > > >      </parameter>
> > > > > > > > > > > >      <parameter>
> > > > > > > > > > > >        <name>driverClassName</name>
> > > > > > > > > > > >        <value>com.informix.jdbc.IfxDriver</value>
> > > > > > > > > > > >      </parameter>
> > > > > > > > > > > >      <parameter>
> > > > > > > > > > > >        <name>url</name>
> > > > > > > > > > > >
> > > > > >
> > > > <value>jdbc:informix-sqli://url:port/dbName:INFORMIXSERVER=serverName<
> > > > > > > > > > > > /value
> > > > > > > > > > > > >
> > > > > > > > > > > >      </parameter>
> > > > > > > > > > > >    </ResourceParams>
> > > > > > > > > > > >  </Context>
> > > > > > > > > > > >
> > > > > > > > > > > > .java:
> > > > > > > > > > > > import java.io.*;
> > > > > > > > > > > > import java.sql.*;
> > > > > > > > > > > > // -Must import javax.naming use JNDI which is
> > > > > > required to implement data
> > > > > > > > > > > > //   resource references and hence connection pooling.
> > > > > > > > > > > > import javax.naming.*;
> > > > > > > > > > > > import javax.sql.*;
> > > > > > > > > > > > import javax.servlet.*;
> > > > > > > > > > > > import javax.servlet.http.*;
> > > > > > > > > > > > import java.util.*;
> > > > > > > > > > > >
> > > > > > > > > > > > public class TestConnectionPooling extends
> > > > HttpServlet {
> > > > > > > > > > > >        private DataSource dataSource;
> > > > > > > > > > > >
> > > > > > > > > > > >        public void init(ServletConfig config)
> > > > > > throws ServletException {
> > > > > > > > > > > >                try {
> > > > > > > > > > > >                        Context init = new
> > > > > > InitialContext();
> > > > > > > > > > > >                        // don't know what the
> > > > > > 'java:comp/env' refers to
> > > > > > > > > > > >                        Context ctx = (Context)
> > > > > > > > > > > init.lookup("java:comp/env");
> > > > > > > > > > > >                        // I know "jdbc/conversion
> > > > > > must match the
> > > > > > > > > > > > web.xml res-ref-name of the web.xml but don't
> > > > > > know what the path really
> > > > > > > > > > > refers to
> > > > > > > > > > > >                        dataSource = (DataSource)
> > > > > > > > > > > > ctx.lookup("jdbc/test_connect");
> > > > > > > > > > > >                } catch (NamingException ex) {
> > > > > > > > > > > >                        throw new
> > > > > > ServletException("Cannot retrieve
> > > > > > > > > > > > java:comp/env/jdbc/test_connect",ex);
> > > > > > > > > > > >                }
> > > > > > > > > > > >        }
> > > > > > > > > > > >
> > > > > > > > > > > >        public void doGet(HttpServletRequest request,
> > > > > > > > > > > > HttpServletResponse
> > > > > > > > > > > > response)
> > > > > > > > > > > >        throws ServletException, IOException {
> > > > > > > > > > > >                response.setContentType("text/html");
> > > > > > > > > > > >                PrintWriter out = response.getWriter();
> > > > > > > > > > > >                Connection connection = null;
> > > > > > > > > > > >                out.println
> > > > > > ("<HTML><HEAD><TITLE>Test Connection
> > > > > > > > > > > > Pooling</TITLE></HEAD><BODY>");
> > > > > > > > > > > >                out.println("<H1>Customer Name
> > > > > > Query</H1>");
> > > > > > > > > > > >
> > > > > > > > > > > >                try {
> > > > > > > > > > > >                        synchronized(dataSource) {
> > > > > > > > > > > >                            connection =
> > > > > > dataSource.getConnection();
> > > > > > > > > > > >                        }
> > > > > > > > > > > >                        out.println("<br>");
> > > > > > > > > > > >
> > > > > > out.println("<strong>Loaded informix driver
> > > > > > > > > > > > successfully via server.xml.</strong>" +
> > > > > > > > > > > >
> > > > > > "Now attempting db
> > > > > > > > > > > > connection.");
> > > > > > > > > > > >                        out.println("<br>");
> > > > > > > > > > > >                        PreparedStatement pstmt =
> > > > > > > > > > > > connection.prepareStatement("SELECT blah FROM
> > > > blah blah");
> > > > > > > > > > > >                        ResultSet results =
> > > > > > pstmt.executeQuery();
> > > > > > > > > > > >                        if (!results.next()) {
> > > > > > > > > > > >                                throw new
> > > > > > SQLException("No data
> > > > > > > > > > > > returned for some reason");
> > > > > > > > > > > >                        }
> > > > > > > > > > > >                        out.println("<br>");
> > > > > > > > > > > >                        while(results.next()) {
> > > > > > > > > > > >
> > > > out.println("<tr><td>" +
> > > > > > > > > > > > results.getString("blah") + "</td></tr>");
> > > > > > > > > > > >                        }
> > > > > > > > > > > >        } catch (Exception ex) {
> > > > > > > > > > > >                        out.println("<br>");
> > > > > > > > > > > >
> > > > out.println("Exception: " + ex);
> > > > > > > > > > > >                        if(ex instanceof
> > > > SQLException) {
> > > > > > > > > > > >                                SQLException sqlex
> > > > > > = (SQLException) ex;
> > > > > > > > > > > >                                out.println("<br>");
> > > > > > > > > > > >                                out.println("SQL state:
> > > > > > > > > > > > "+sqlex.getSQLState()+"<BR>");
> > > > > > > > > > > >                                out.println("<br>");
> > > > > > > > > > > >
> > > > out.println("Error code:
> > > > > > > > > > > > "+sqlex.getErrorCode()+"<BR>");
> > > > > > > > > > > >
> > > > out.println("<br><br>");
> > > > > > > > > > > >
> > > > sqlex.printStackTrace(out);
> > > > > > > > > > > >
> > > > out.println("<br><br>");
> > > > > > > > > > > >                        }
> > > > > > > > > > > >        }
> > > > > > > > > > > >        finally {
> > > > > > > > > > > >            try { connection.close(); } catch
> > > > > > (Exception ex) {}
> > > > > > > > > > > >        }
> > > > > > > > > > > >                out.println ("</BODY></HTML>");
> > > > > > > > > > > >    }
> > > > > > > > > > > > }
> > > > > > > > > > > >
> > > > > > > > > > > >   ReplyForward
> > > > > > > > > > > >
> > > > > > > > > > > > jthompson@honda.co.nz
> > > > > > > > > > > > java code: Context ctx = (Context)
> > > > > > init.lookup("xxxxxx"); server.xml:
> > > > > > > > > > > > <Resour...
> > > > > > > > > > > >                  Oct 6 (22 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > jthompson@honda.co.nz
> > > > > > > > > > > > Please ignore my last post - it's wrong.
> > > > > > (Answered before verifying).
> > > > > > > > > > > >                  Oct 6 (22 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > jthompson@honda.co.nz
> > > > > > > > > > > > Is that litterally what you have in your server.xml?
> > > > > > > > > > > >                  Oct 6 (22 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > Eric Wulff
> > > > > > > > > > > > No, literally I have the actual values. The same
> > > > > > connection string I
> > > > > > > > > > > > use to s...
> > > > > > > > > > > >                  Oct 6 (22 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > jthompson@honda.co.nz
> > > > > > > > > > > > Is there a xxxxx.xml file in
> > > > > > (TOMCAT_HOME)/conf/Catalina/localhost,
> > > > > > > > > > > > where xxx...
> > > > > > > > > > > >                  Oct 6 (22 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > Eric Wulff
> > > > > > > > > > > > Context name? I assume your referring to the
> > > > > > ResourceParams name
> > > > > > > > > > > > attribute, j...
> > > > > > > > > > > >                  Oct 6 (19 hours ago)
> > > > > > > > > > > >
> > > > > > > > > > > > Phillip Qin
> > > > > > > > > > > > <ph...@shareowner.com> to Tomcat
> > > > > > > > > > > >          More options    6:29am (7 hours ago)
> > > > > > > > > > > > Detail, detail, detail.
> > > > > > > > > > > >
> > > > > > > > > > > > 1. your context.xml
> > > > > > > > > > > > 2. your web.xml
> > > > > > > > > > > > 3. how do you obtain connection from pool,
> > > > java code pls.
> > > > > > > > > > > > 4. can you connect using pool
> > > > > > > > > > > > 5. commons-pool version
> > > > > > > > > > > >
> > > > > > > > > > > > Etc. etc.
> > > > > > > > > > > >
> > > > > > > > > > > > You need to provide details otherwise we can't help.
> > > > > > > > > > > > - Show quoted text -
> > > > > > > > > > > >
> > > > > > > > > > > > -----Original Message-----
> > > > > > > > > > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > > > > > > > > > Sent: October 6, 2004 5:09 PM
> > > > > > > > > > > > To: tomcat-user@jakarta.apache.org
> > > > > > > > > > > > Subject: connection pooling
> > > > > > > > > > > >
> > > > > > > > > > > > Hi all, I have gone over some of the tomcat docs
> > > > > > and googled errors
> > > > > > > > > > > > but there is SO much information covering JNDI
> > > > > > and Datasources... and
> > > > > > > > > > > > I'm hoping I don't have to be a JNDI/Datasource
> > > > > > and XML guru just to
> > > > > > > > > > > > set up db connections via connection pool.
> > > > > > > > > > > >
> > > > > > > > > > > > My situation is this...
> > > > > > > > > > > >
> > > > > > > > > > > > System:
> > > > > > > > > > > > Tomcat 5 on Fedora Core 2 connecting to a db on
> > > > > > an Informix Dynamic
> > > > > > > > > > > > Server 9.4 on Windows Server
> > > > > > > > > > > >
> > > > > > > > > > > > -I am able to connect to my db via typical JDBC
> > > > > > > > > > > > DriverManager.getConnection(). -This leads me to
> > > > > > believe that my jdbc
> > > > > > > > > > > > driver is in the correct place ...CATALINA
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > > > > > > > > > To unsubscribe, e-mail:
> > > > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > > > > > > For additional commands, e-mail:
> > > > > > tomcat-user-help@jakarta.apache.org
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >   ReplyForwardInvite Phillip to Gmail
> > > > > > > > > > > > Send  Save Draft  Discard      Check spelling
> > > > > > > > > > > > To:
> > > > > > > > > > > > Cc:
> > > > > > > > > > > > Bcc:
> > > > > > > > > > > >
> > > > > > > > > > > > Add Cc | Add Bcc | Edit Subject | Attach a file
> > > > > > > > > > > > Subject:
> > > > > > > > > > > >
> > > > > > > > > > > > Attach a file
> > > > > > > > > > > >
> > > > > > > > > > > > Send  Save Draft  Discard      Check spelling
> > > > > > > > > > > >
> > > > > > > > > > > > Atishay Kumar
> > > > > > > > > > > > <at...@gmail.com> to Tomcat, me
> > > > > > > > > > > >          More options    6:47am (6 hours ago)
> > > > > > > > > > > > On Wed, 6 Oct 2004 14:37:58 -0700, Eric Wulff
> > > > > > <ew...@gmail.com>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > > I have gone over some of the tomcat docs and
> > > > > > googled errors but
> > > > > > > > > > > > > there is SO much information covering JNDI,
> > > > > > connection pooling, and
> > > > > > > > > > > > > Datasources.  Can someone review the info below
> > > > > > and consult or point
> > > > > > > > > > > > > me in the right direction?  Although I feel I'm
> > > > > > missing something
> > > > > > > > > > > > > obvious, I can't find out what's wrong with
> > > > my set-up.
> > > > > > > > > > > > >
> > > > > > > > > > > > > thx
> > > > > > > > > > > > > Eric
> > > > > > > > > > > > >
> > > > > > > > > > > > > System:
> > > > > > > > > > > > > Tomcat 5 on Fedora Core 2 connecting to a db on
> > > > > > an Informix Dynamic
> > > > > > > > > > > > > Server 9.4 on Windows Server
> > > > > > > > > > > > >
> > > > > > > > > > > > > -I am able to connect to my db via typical JDBC
> > > > > > > > > > > > > DriverManager.getConnection().  This leads me
> > > > > > to believe that my
> > > > > > > > > > > > > informix jdbc driver is in the correct place...
> > > > > > > > > > > > > CATALINA_HOME/common/lib -I have a Context set
> > > > > > up in my server.xml
> > > > > > > > > > > > > per examples in a text tutorial I'm referencing
> > > > > > > > > > > > >
> > > > > > > > > > > > > Below listed...
> > > > > > > > > > > > > -errors
> > > > > > > > > > > > > -web.xml
> > > > > > > > > > > > > -server.xml <Context> (minus connection actual
> > > > > > values) -.java
> > > > > > > > > > > > >
> > > > > > > > > > > > > exception/errors:
> > > > > > > > > > > > > -Exception:
> > > > > > org.apache.commons.dbcp.SQLNestedException: Cannot
> > > > > > > > > > > > > create JDBC driver of class '' for connect URL
> > > > > > 'null' SQL state:
> > > > > > > > > > > > > null Error code: 0
> > > > > > > > > > > > >
> > > > > > > > > > > > > -stack trace reveals this, but I can't see why
> > > > > > since I have the
> > > > > > > > > > > > > driver in the correct directory...
> > > > > > > > > > > > > java.sql.SQLException: No suitable driver at
> > > > > > > > > > > > >
> > > > > > java.sql.DriverManager.getDriver(DriverManager.java:243) at
> > > > > > > > > > > > >
> > > > > >
> > > > org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSo
> > > > > > > > > > > > > ur
> > > > > > > > > > > > > ce.java:773)
> > > > > > > > > > > > >
> > > > > > > > > > > > > web.xml:
> > > > > > > > > > > > > <?xml version="1.0" encoding="ISO-8859-1"?>
> > > > > > > > > > > > > <!DOCTYPE web-app
> > > > > > > > > > > > >     PUBLIC "-//Sun Microsystems, Inc.//DTD Web
> > > > > > Application 2.3//EN"
> > > > > > > > > > > > >     "http://java.sun.com/dtd/web-app_2_3.dtd">
> > > > > > > > > > > > > <web-app>
> > > > > > > > > > > > >         <servlet>
> > > > > > > > > > > > >                 <servlet-name>Test Connection
> > > > > > Pooling</servlet-name>
> > > > > > > > > > > > >
> > > > > > <servlet-class>TestConnectionPooling</servlet-class>
> > > > > > > > > > > > >         </servlet>
> > > > > > > > > > > > >
> > > > > > > > > > > > >         <servlet-mapping>
> > > > > > > > > > > > >                 <servlet-name>Test Connection
> > > > > > Pooling</servlet-name>
> > > > > > > > > > > > >
> > > > > > <url-pattern>/testConnectionPooling</url-pattern>
> > > > > > > > > > > > >         </servlet-mapping>
> > > > > > > > > > > > >
> > > > > > > > > > > > >         <resource-ref>
> > > > > > > > > > > > >
> > > > <res-ref-name>jdbc/test_connect</res-ref-name>
> > > > > > > > > > > > >           <res-type>javax.sql.DataSource</res-type>
> > > > > > > > > > > > >           <res-auth>Container</res-auth>
> > > > > > > > > > > > >         </resource-ref>
> > > > > > > > > > > > > </web-app>
> > > > > > > > > > > > >
> > > > > > > > > > > > > server.xml <Context>:
> > > > > > > > > > > > >   <Context path="/testConnectionPooling"
> > > > > > > > > > > > > docBase="testConnectionPooling" debug="0"
> > > > > > reloadable="true">
> > > > > > > > > > > >
> > > > > > > > > > > > <Resource name="jdbc/test_connection" auth="Container"
> > > > > > > > > > > > type="javax.sql.DataSource"/> is missing
> > > > > > > > > > > >
> > > > > > > > > > > > >     <ResourceParams name="jdbc/test_connect">
> > > > > > > > > > > > >       <parameter>
> > > > > > > > > > > > >         <name>username</name>
> > > > > > > > > > > > >         <value>informix</value>
> > > > > > > > > > > > >       </parameter>
> > > > > > > > > > > > >       <parameter>
> > > > > > > > > > > > >         <name>password</name>
> > > > > > > > > > > > >         <value>informix</value>
> > > > > > > > > > > > >       </parameter>
> > > > > > > > > > > > >       <parameter>
> > > > > > > > > > > > >         <name>driverClassName</name>
> > > > > > > > > > > > >         <value>com.informix.jdbc.IfxDriver</value>
> > > > > > > > > > > > >       </parameter>
> > > > > > > > > > > > >       <parameter>
> > > > > > > > > > > > >         <name>url</name>
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > >
> > > > <value>jdbc:informix-sqli://url:port/dbName:INFORMIXSERVER=serverName<
> > > > > > > > > > > > /value
> > > > > > > > > > > > >
> > > > > > > > > > > > >       </parameter>
> > > > > > > > > > > > >     </ResourceParams>
> > > > > > > > > > > > >   </Context>
> > > > > > > > > > > > >
> > > > > > > > > > > > > .java:
> > > > > > > > > > > > > import java.io.*;
> > > > > > > > > > > > > import java.sql.*;
> > > > > > > > > > > > > // -Must import javax.naming use JNDI which is
> > > > > > required to implement
> > > > > > > > > > > data
> > > > > > > > > > > > > //   resource references and hence
> > > > connection pooling.
> > > > > > > > > > > > > import javax.naming.*;
> > > > > > > > > > > > > import javax.sql.*;
> > > > > > > > > > > > > import javax.servlet.*;
> > > > > > > > > > > > > import javax.servlet.http.*;
> > > > > > > > > > > > > import java.util.*;
> > > > > > > > > > > > >
> > > > > > > > > > > > > public class TestConnectionPooling extends
> > > > HttpServlet {
> > > > > > > > > > > > >         private DataSource dataSource;
> > > > > > > > > > > > >
> > > > > > > > > > > > >         public void init(ServletConfig config)
> > > > > > throws ServletException {
> > > > > > > > > > > > >                 try {
> > > > > > > > > > > > >                         Context init = new
> > > > > > InitialContext();
> > > > > > > > > > > > >                         // don't know what the
> > > > > > 'java:comp/env' refers to
> > > > > > > > > > > > >                         Context ctx = (Context)
> > > > > > > > > > > > init.lookup("java:comp/env");
> > > > > > > > > > > > >                         // I know
> > > > > > "jdbc/conversion must match the
> > > > > > > > > > > > > web.xml res-ref-name of the web.xml but don't
> > > > > > know what the path
> > > > > > > > > > > > > really
> > > > > > > > > > > > refers to
> > > > > > > > > > > > >                         dataSource = (DataSource)
> > > > > > > > > > > > ctx.lookup("jdbc/test_connect");
> > > > > > > > > > > > >                 } catch (NamingException ex) {
> > > > > > > > > > > > >                         throw new
> > > > > > ServletException("Cannot retrieve
> > > > > > > > > > > > > java:comp/env/jdbc/test_connect",ex);
> > > > > > > > > > > > >                 }
> > > > > > > > > > > > >         }
> > > > > > > > > > > > >
> > > > > > > > > > > > >         public void
> > > > doGet(HttpServletRequest request,
> > > > > > > > > > > > > HttpServletResponse
> > > > > > > > > > > > response)
> > > > > > > > > > > > >         throws ServletException, IOException {
> > > > > > > > > > > > >
> > > > response.setContentType("text/html");
> > > > > > > > > > > > >                 PrintWriter out =
> > > > response.getWriter();
> > > > > > > > > > > > >                 Connection connection = null;
> > > > > > > > > > > > >                 out.println
> > > > > > ("<HTML><HEAD><TITLE>Test Connection
> > > > > > > > > > > > > Pooling</TITLE></HEAD><BODY>");
> > > > > > > > > > > > >                 out.println("<H1>Customer Name
> > > > > > Query</H1>");
> > > > > > > > > > > > >
> > > > > > > > > > > > >                 try {
> > > > > > > > > > > > >                         synchronized(dataSource) {
> > > > > > > > > > > > >                             connection =
> > > > > > dataSource.getConnection();
> > > > > > > > > > > > >                         }
> > > > > > > > > > > > >                         out.println("<br>");
> > > > > > > > > > > > >
> > > > > > out.println("<strong>Loaded informix driver
> > > > > > > > > > > > > successfully via server.xml.</strong>" +
> > > > > > > > > > > > >
> > > > > > "Now attempting db
> > > > > > > > > > > > connection.");
> > > > > > > > > > > > >                         out.println("<br>");
> > > > > > > > > > > > >                         PreparedStatement pstmt =
> > > > > > > > > > > > > connection.prepareStatement("SELECT blah FROM
> > > > > > blah blah");
> > > > > > > > > > > > >                         ResultSet results =
> > > > > > pstmt.executeQuery();
> > > > > > > > > > > > >                         if (!results.next()) {
> > > > > > > > > > > > >                                 throw new
> > > > > > SQLException("No data
> > > > > > > > > > > > > returned
> > > > > > > > > > > > for some reason");
> > > > > > > > > > > > >                         }
> > > > > > > > > > > > >                         out.println("<br>");
> > > > > > > > > > > > >                         while(results.next()) {
> > > > > > > > > > > > >
> > > > out.println("<tr><td>" +
> > > > > > > > > > > > results.getString("blah") + "</td></tr>");
> > > > > > > > > > > > >                         }
> > > > > > > > > > > > >         } catch (Exception ex) {
> > > > > > > > > > > > >                         out.println("<br>");
> > > > > > > > > > > > >
> > > > out.println("Exception: " + ex);
> > > > > > > > > > > > >                         if(ex instanceof
> > > > SQLException) {
> > > > > > > > > > > > >                                 SQLException
> > > > > > sqlex = (SQLException) ex;
> > > > > > > > > > > > >                                 out.println("<br>");
> > > > > > > > > > > > >
> > > > out.println("SQL state:
> > > > > > > > > > > > "+sqlex.getSQLState()+"<BR>");
> > > > > > > > > > > > >                                 out.println("<br>");
> > > > > > > > > > > > >
> > > > out.println("Error code:
> > > > > > > > > > > > "+sqlex.getErrorCode()+"<BR>");
> > > > > > > > > > > > >
> > > > out.println("<br><br>");
> > > > > > > > > > > > >
> > > > > > sqlex.printStackTrace(out);
> > > > > > > > > > > > >
> > > > out.println("<br><br>");
> > > > > > > > > > > > >                         }
> > > > > > > > > > > > >         }
> > > > > > > > > > > > >         finally {
> > > > > > > > > > > > >             try { connection.close(); } catch
> > > > > > (Exception ex) {}
> > > > > > > > > > > > >         }
> > > > > > > > > > > > >                 out.println ("</BODY></HTML>");
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >     }
> > > > > > > > > > > > > }
> > > > > > > > > > > >
> > > > > > > > > > > > On Thu, 7 Oct 2004 09:29:09 -0400, Phillip Qin
> > > > > > > > > > > > <ph...@shareowner.com>
> > > > > > > > > > > > wrote:
> > > > > > > > > > > > > Detail, detail, detail.
> > > > > > > > > > > > >
> > > > > > > > > > > > > 1. your context.xml
> > > > > > > > > > > > > 2. your web.xml
> > > > > > > > > > > > > 3. how do you obtain connection from pool, java
> > > > > > code pls. 4. can you
> > > > > > > > > > > > > connect using pool 5. commons-pool version
> > > > > > > > > > > > >
> > > > > > > > > > > > > Etc. etc.
> > > > > > > > > > > > >
> > > > > > > > > > > > > You need to provide details otherwise we can't help.
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > > -----Original Message-----
> > > > > > > > > > > > > From: Eric Wulff [mailto:ewulff@gmail.com]
> > > > > > > > > > > > > Sent: October 6, 2004 5:09 PM
> > > > > > > > > > > > > To: tomcat-user@jakarta.apache.org
> > > > > > > > > > > > > Subject: connection pooling
> > > > > > > > > > > > >
> > > > > > > > > > > > > Hi all, I have gone over some of the tomcat
> > > > > > docs and googled errors
> > > > > > > > > > > > > but there is SO much information covering JNDI
> > > > > > and Datasources...
> > > > > > > > > > > > > and I'm hoping I don't have to be a
> > > > > > JNDI/Datasource and XML guru
> > > > > > > > > > > > > just to set up db connections via connection pool.
> > > > > > > > > > > > >
> > > > > > > > > > > > > My situation is this...
> > > > > > > > > > > > >
> > > > > > > > > > > > > System:
> > > > > > > > > > > > > Tomcat 5 on Fedora Core 2 connecting to a db on
> > > > > > an Informix Dynamic
> > > > > > > > > > > > > Server 9.4 on Windows Server
> > > > > > > > > > > > >
> > > > > > > > > > > > > -I am able to connect to my db via typical JDBC
> > > > > > > > > > > > > DriverManager.getConnection(). -This leads me
> > > > > > to believe that my
> > > > > > > > > > > > > jdbc driver is in the correct place ...CATALINA
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > >
> > > > --------------------------------------------------------------------
> > > > > > > > > > > > > -
> > > > > > > > > > > > > To unsubscribe, e-mail:
> > > > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > > > > > > > For additional commands, e-mail:
> > > > > > tomcat-user-help@jakarta.apache.org
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > > > > > > > > > To unsubscribe, e-mail:
> > > > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > > > > > > For additional commands, e-mail:
> > > > > > tomcat-user-help@jakarta.apache.org
> > > > > > > > > > > >
> > > > > > > > > > > > !DSPAM:4165a84c9322136420805!
> > > > > > > > > > > >
> > > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > > > > > > > > To unsubscribe, e-mail:
> > > > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > > > > > For additional commands, e-mail:
> > > > > > tomcat-user-help@jakarta.apache.org
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > > > !DSPAM:4165bb7715701366110907!
> > > > > > > > > > >
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > > > > > > > To unsubscribe, e-mail:
> > > > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > > > > For additional commands, e-mail:
> > > > > > tomcat-user-help@jakarta.apache.org
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > --
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > :)
> > > > > > > > > Atishay Kumar
> > > > > > > > > Btech, SEM VII
> > > > > > > > > DA-IICT
> > > > > > > > > Gandhinagar - 382009
> > > > > > > > > India
> > > > > > > > > ph: +91 9825383948
> > > > > > > > >
> > > > > > /*************************************************************
> > > > > > ***************
> > > > > > > > >  * Learn the rules as you would need them to break them
> > > > > > properly *
> > > > > > > > >
> > > > > > **************************************************************
> > > > > > **************/
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > --
> > > > > > > :)
> > > > > > > Atishay Kumar
> > > > > > > Btech, SEM VII
> > > > > > > DA-IICT
> > > > > > > Gandhinagar - 382009
> > > > > > > India
> > > > > > > ph: +91 9825383948
> > > > > > >
> > > > > > /*************************************************************
> > > > > > ***************
> > > > > > >  * Learn the rules as you would need them to break them
> > > > properly *
> > > > > > >
> > > > > > **************************************************************
> > > > > > **************/
> > > > > > >
> > > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > > > >
> > > > > > >
> > > > > > > To unsubscribe, e-mail:
> > > > tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > > For additional commands, e-mail:
> > > > tomcat-user-help@jakarta.apache.org
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > ---------------------------------------------------------------------
> > > > >
> > > > >
> > > > > > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> > > > > > For additional commands, e-mail:
> > > > tomcat-user-help@jakarta.apache.org
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
> > > For additional commands, e-mail: tomcat-user-help@jakarta.apache.org
> > >
> > >
> >
>

---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org