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 <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > 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:[EMAIL PROTECTED] > > 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 > > <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > > > > 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 > > > > <[EMAIL PROTECTED]> wrote: > > > > > > > > > > Pls do the following change after <context......> and u are on!! > > > > > cheers > > > > > > > > > > > > > > > On Thu, 4 Nov 2004 19:46:30 -0800, Eric Wulff > > > > <[EMAIL PROTECTED]> 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 > > > > > > <[EMAIL PROTECTED]> 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 > > > > <[EMAIL PROTECTED]> 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 > > > > > > > > <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > > > > > > > > > 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 > > > > <[EMAIL PROTECTED]> > > > > > > > > > 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:[EMAIL PROTECTED] > > > > > > > > > > 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 > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > java code: Context ctx = (Context) > > > > init.lookup("xxxxxx"); server.xml: > > > > > > > > > > <Resour... > > > > > > > > > > Oct 6 (22 hours ago) > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > Please ignore my last post - it's wrong. > > > > (Answered before verifying). > > > > > > > > > > Oct 6 (22 hours ago) > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > 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) > > > > > > > > > > > > > > > > > > > > [EMAIL PROTECTED] > > > > > > > > > > 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 > > > > > > > > > > <[EMAIL PROTECTED]> 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:[EMAIL PROTECTED] > > > > > > > > > > Sent: October 6, 2004 5:09 PM > > > > > > > > > > To: [EMAIL PROTECTED] > > > > > > > > > > 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: > > > > [EMAIL PROTECTED] > > > > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 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 > > > > > > > > > > <[EMAIL PROTECTED]> to Tomcat, me > > > > > > > > > > More options 6:47am (6 hours ago) > > > > > > > > > > On Wed, 6 Oct 2004 14:37:58 -0700, Eric Wulff > > > > <[EMAIL PROTECTED]> > > > > > > > > > > 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 > > > > > > > > > > <[EMAIL PROTECTED]> > > > > > > > > > > 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:[EMAIL PROTECTED] > > > > > > > > > > > Sent: October 6, 2004 5:09 PM > > > > > > > > > > > To: [EMAIL PROTECTED] > > > > > > > > > > > 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: > > > > [EMAIL PROTECTED] > > > > > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > !DSPAM:4165a84c9322136420805! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > !DSPAM:4165bb7715701366110907! > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > To unsubscribe, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > For additional commands, e-mail: > > > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > > > > > > > > > > > > > > :) > > > > > > > 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: > > [EMAIL PROTECTED] > > > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: > > [EMAIL PROTECTED] > > > > > > > > > > > > > > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]