commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "MANOHARAN,MADHAN (HP-PaloAlto,ex1)" <madhan.manoha...@hp.com>
Subject RE: Connection pool nightmare!
Date Tue, 31 Dec 2002 21:19:58 GMT
I managed to find a work around on this issue.   I modified my server.xml to
have the pool specific information locally rather than globally and it
worked.

Here is what I did:
Removed my pool info from <GlobalNamingResource> and put them into the local
resource tags

<Context className="org.apache.catalina.core.StandardContext"
cachingAllowed="true"
charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true"
crossContext="false" debug="0" displayName="Apache-Axis" docBase="C:\Program
Files\Apache Group\Tomcat 4.1\webapps\dbtest"
mapperClass="org.apache.catalina.core.StandardContextMapper" path="/dbtest"
privileged="false" reloadable="false" swallowOutput="false" useNaming="true"
wrapperClass="org.apache.catalina.core.StandardWrapper">
					<Resource name="jdbc/CPSDataSource"
auth="Container" type="javax.sql.DataSource"/>
					<ResourceParams
name="jdbc/CPSDataSource">
						<parameter>
							<name>factory</name>
	
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
						</parameter>
						<parameter>
	
<name>validationQuery</name>
							<value>select
count(*) from TEST</value>
						</parameter>
						<parameter>
							<name>url</name>
	
<value>jdbc:microsoft:sqlserver://GH733021:1433</value>
						</parameter>
						<parameter>
	
<name>password</name>
							<value>mw2</value>
						</parameter>
						<parameter>
	
<name>maxActive</name>
							<value>4</value>
						</parameter>
						<parameter>
							<name>maxWait</name>
							<value>5000</value>
						</parameter>
						<parameter>
	
<name>driverClassName</name>
	
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
						</parameter>
						<parameter>
	
<name>username</name>
	
<value>Administrator</value>
						</parameter>
						<parameter>
							<name>maxIdle</name>
							<value>2</value>
						</parameter>
						<parameter>
	
<name>logAbandoned</name>
							<value>true</value>
						</parameter>
					</ResourceParams>
				</Context>

This did the magic!





-----Original Message-----
From: Rodney Waldhoff [mailto:rwaldhoff@apache.org] 
Sent: Tuesday, December 17, 2002 4:44 PM
To: Jakarta Commons Users List
Subject: RE: Connection pool nightmare!


There have been a couple of reports on this (e.g.,
<http://issues.apache.org/bugzilla/show_bug.cgi?id=14267>), but it doesn't
seem to be universal.

Oddly, it always seems to be this property (driver name) that isn't getting
passed.

I've been having trouble re-creating this problem personally, but I can try
to poke around a bit more if I get a chance.  Perhaps someone more intimate
with the Tomcat JNDI code can try to take a look as well?

On Fri, 13 Dec 2002, MANOHARAN,MADHAN (HP-PaloAlto,ex1) wrote:

> 1.  Yes, the driver exists in the common/lib directory.
> 2.  I wrote a quick test method in the same java class I wrote to test 
> the connection pool and it works just fine. 3.  I compared the 
> server.xml with the one on the DBCP site(I had already looked @ the 
> file a 100 times before) and it looks just fine. 4.  I checked the 
> web.xml to make sure the resource ref name is the same.
>
> The problem still exists.  I'm trying to install oracle and check 
> against that just to eliminate the possibility that the problem is 
> from the database/driver. I appreciate your help Jonathan.  Thanks.
>
> Madhan
>
> -----Original Message-----
> From: Jonathan Mangano [mailto:jonathanm@pslgroup.com]
> Sent: Friday, December 13, 2002 10:58 AM
> To: Jakarta Commons Users List
> Subject: RE: Connection pool nightmare!
>
>
> By the looks of it you don't have the driver class specified properly 
> in your server.xml. To debug this problem:
>
> 1. Check that your jdbc driver is in the <TomcatHome>/common/lib 
> directory
>
> 2. Write a quick test class to check the driver name, driver url, 
> username and password you are using. Something very simple like: 
> Driver jsqlDriver =
> (Driver) Class.forName(jsqlDriverName).newInstance();
> Connection conn = DriverManager.getConnection(driverUrl, userName,
> password);
>
> 3. If this works open your server.xml in <TomcatHome>/conf and compare 
> it to the example at 
> http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-exampl
> es-how
> to.html#Database%20Connection%20Pool%20(DBCP)%20Configurations just
> switching the driver name, driver url, username and password with your
own.
>
> 4. Open your web.xml and also check it against the example above to 
> see if everything is properly configured
>
>
> -----Original Message-----
> From: MANOHARAN,MADHAN (HP-PaloAlto,ex1) 
> [mailto:madhan.manoharan@hp.com]
> Sent: December 13, 2002 1:17 PM
> To: 'Jakarta Commons Users List'
> Subject: Connection pool nightmare!
>
>
> Hi guys,
>   I bet there were many postings on this issue before.  I searched the 
> archive, but couldn't figure out a way to solve this and so posting 
> again. I use SQL Server 2000, JDBC drivers from MS for SQL Server 
> 2000, Tomcat 4.1.6, windows XP.  I was trying to implement connection 
> pooling and this is what I did
>
> 1) created a connection pool from tomcat admin(pointing to
> http://localhost:8080/admin) ).  I did use the datasource driver from
> MS(com.microsoft.jdbcx.sqlserver.SQLServerDataSource) for the 
> driverclassname.
> 2) created a web.xml with the Resource reference entry
> 3) created a simple java class where I lookup the context via jndi and 
> try to get a connection.
> 4) created a jsp to call the java class.
>
> When I hit the jsp, it calls the java class.  The java class looks up 
> the datasource and finds it( I guess), but when I try to get the 
> connection, I get this error
>
> java.sql.SQLException: Cannot load JDBC driver class 'null'
>         at 
> org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSour
> ce.jav
> a:529)
>         at
>
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:3
> 12)
>         at foo.DBTest.init(DBTest.java:32)
>         at org.apache.jsp.test_jsp._jspService(test_jsp.java:50)
>         at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:136)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>
> >From what I see, Tomcat is not able to load the driver class for some
> reason.  The jar files are in the classpath and also in the tomcat 
> common lib directory.
>
> This is the method in the java program which tries to use the pool:
>
> public void init() {
>     try{
>       Context ctx = new InitialContext();
>       if(ctx == null )
>           throw new Exception("Boom - No Context");
> 	  Context env = (Context)ctx.lookup("java:comp/env/jdbc");
> 	  System.out.println("Environ contxt   "+env);
> 	  Enumeration e = env.list("");
> 	  while(e.hasMoreElements())
> 	  {
> 		  System.out.println("Environment element
"+e.nextElement());
> 	  }
>       DataSource ds =(DataSource)env.lookup("CPSDataSource");
>       System.out.println("Lookup successful...");
>       if (ds != null) {
>         Connection conn = ds.getConnection();
>         if(conn != null)  {
>             foo = "Got Connection "+conn.toString();
>             Statement stmt = conn.createStatement();
>             ResultSet rst =
>                 stmt.executeQuery(
>                   "select ID from TEST");
>             if(rst.next()) {
>                foo=rst.getString(2);
>                bar=rst.getInt(3);
>             }
>             conn.close();
>         }
>       }
>     }catch(Exception e) {
>       e.printStackTrace();
>     }
>  }
>
> I also tried looking up "jdbc/CPSDataSource" from the "java:comp/env" 
> context; I'm looking up the "java:comp/env/jdbc" to make sure the 
> CPSDataSource context exists and print the context variables in the 
> program.
>
> Could someone throw some light on whatz wrong or why this fails?
>
> Thanks,
> Madhan
>
> --
> To unsubscribe, e-mail: 
> <mailto:commons-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: 
> <mailto:commons-user-help@jakarta.apache.org>
>
>
> --
> To unsubscribe, e-mail: 
> <mailto:commons-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: 
> <mailto:commons-user-help@jakarta.apache.org>
>
> --
> To unsubscribe, e-mail:
<mailto:commons-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: 
> <mailto:commons-user-help@jakarta.apache.org>
>
>


--
To unsubscribe, e-mail:
<mailto:commons-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail:
<mailto:commons-user-help@jakarta.apache.org>

Mime
View raw message