Tomcat DB2 connection - No suitable driver

From: Andrew Johnson (andydavidjohnson_at_hotmail.com)
Date: 10/25/04


Date: 25 Oct 2004 01:30:17 -0700

Hi,

I am trying to make a UBD DB2 7.2 connection using the Java
COM.ibm.db2.jdbc.app.DB2Driver via Tomcat 3.2.1 on Solaris (and also
on an AIX system with 3.3.1). I am attempting this either via JSP or
a servlet.

I have a separate java application that I can run from the command
line and as long as the user has the correct env variables:

DB2DIR=/opt/IBMdb2/V7.1
DB2INSTANCE=repowner
INSTHOME=/home/repowner

Then the connection is fine. I am using the same code to try and make
the connection via tomcat.

   try
    {
     Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
     // next line is printed out
     System.out.println(new java.util.Date().toString() + " DRIVER
FOUND.");
    }
    catch(ClassNotFoundException e)
 {
     System.out.println(new java.util.Date().toString() + " Error 1:
"+e);
 }
    String dbType="db2";
// String ip="10.0.0.185";
// String port="8790";
    String dbName="ppreport";
    String reason="testing db connection";
    String userName="repowner";
    String password="ilink1";
    Connection con = null;
    
    String url = "jdbc:db2:"+dbName;
    
    boolean dbConnected = false;
    
    try
 {
     System.out.println(new java.util.Date().toString() + " Connecting
to database URL = " + url + " for " + reason);
     
     
     Enumeration e = DriverManager.getDrivers();
     while (e.hasMoreElements()) {
      Driver d = (Driver) e.nextElement();
      // doesn't print anything here
      System.out.println("driver is " + d.toString());
     }
     System.out.println("a1");
     // gets to here and stops!
     Driver d = DriverManager.getDriver(url);
     System.out.println("a1.1"+d.toString());
     
     con = DriverManager.getConnection(url, userName, password);
     
     java.sql.Statement stmt = con.createStatement();
     System.out.println("SETTING SCHEMA TO "+dbName);
     try {
      stmt.execute("SET SCHEMA = "+dbName);
      System.out.println("SCHEMA SET.");
     }
     catch (Exception ex) {
      System.out.println("Error Setting Schema:"+ex);
     }
     
     System.out.println(new java.util.Date().toString() + " Database
connection established.XX");
     dbConnected = true;
 }
    catch(Exception e)
 {
     System.out.println(new java.util.Date().toString() + " Failed to
connect, reason : \n" + e);
     
 }

However via tomcat the driver cannot be loaded by the class loader.
The class is found, but not loaded. The error I receive is
"java.sql.SQLException: No suitable driver"

I have placed the db2java.zip (renamed as db2java.jar) in several
places to try and solve the problem (restarting Tomcat each time) but
to no avail:

/usr/apache/tomcat/common/lib/db2java.jar
.../WEB-INF/classes/db2java.jar

I have read many posts, but I can't understand how the driver will
know the correct env variables even if the class is loaded.

Any help would be much appreciated!!!

Thanks!
Andy.



Relevant Pages

  • Re: Tomcat DB2 connection - No suitable driver
    ... The attempted connection will throw the error you are seeing if the ... the DB2 Java drivers. ... > However via tomcat the driver cannot be loaded by the class loader. ...
    (comp.lang.java.databases)
  • Re: Upgrading SQL Server 2005 JDBC Driver 1.1 from SQL Server 2000 Driver, in Tomcat 5.5 env
    ... Our broken pipe error is only a warning. ... in the 5.5.16 version of tomcat. ... Please update me on your driver situation. ... Tomcat seemed to be hanging onto bad connection pool ...
    (microsoft.public.sqlserver.jdbcdriver)
  • Re: JDBC Threads Locking up
    ... driver is that internally it is calling DriverManager.getConnection! ... I suggest you stop using the Oracle driver-based pooling if Tomcat ... This is the connection pool initialization code ...
    (comp.lang.java.databases)
  • Re: ConnectionPoolDataSource + MM MySQL + Tomcat4
    ... to work with Tomcat 5.0.28 and MySQL or Oracle. ... <ResourceParams> ... in functions needing DB access, use the DataSource variable ... to create a Connection ...
    (comp.lang.java.programmer)
  • Re: How to kill a connection
    ... > We have a web application (done in java/jsp, running under tomcat ... > So, when the user do the login, we create a connection to this user. ... How do I kill an idle connection? ... username was also logged. ...
    (comp.lang.java.databases)