--- Robert Bateman <[EMAIL PROTECTED]> wrote:

> we are using a combination of 3.0.8-stable and 3.0.14-production on our 
> servers.  The jar files are placed into the same folder you have placed 
> yours.
> 
> What connect string are you using?
> 
> Bob
 

I am basically just trying to setup a connection pool as in the documentaion. I am 
relatively new
to java but have several years of C/C++. I am also a System Engineer during the day, 
but I am
writing a network mangement app for my company and decided to go with tomcat/java. So 
I am a bit
rusty on the nitty-gritty of the app server setup.

First, here is my server.xml (sorry long)
<?xml version='1.0' encoding='utf-8'?>
<Server>
  <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/>
  <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/>
  <GlobalNamingResources>
    <Environment name="simpleValue" type="java.lang.Integer" value="30"/>
    <Resource auth="Container" description="User database that can be updated and 
saved"
name="UserDatabase" type="org.apache.catalina.UserDatabase"/>
    <Resource name="jdbc/MysqlTest1" auth="Container" type="javax.sql.DataSource"/>
    <ResourceParams name="UserDatabase">
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>
      <parameter>
        <name>pathname</name>
        <value>conf/tomcat-users.xml</value>
      </parameter>
    </ResourceParams>
    <ResourceParams name="jdbc/MysqlTest1">
      <parameter>
        <name>factory</name>
        <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
      </parameter>
      <parameter>
        <name>validationQuery</name>
        <value>SELECT * FROM TEST_USER</value>
      </parameter>
      <parameter>
        <name>maxWait</name>
        <value>5000</value>
      </parameter>
      <parameter>
        <name>maxActive</name>
        <value>4</value>
      </parameter>
      <parameter>
        <name>password</name>
        <value>c4milez</value>
      </parameter>
      <parameter>
        <name>url</name>
        <value>jdbc:mysql://localhost:3306/tomcat-test1?autoReconnect=true</value>
      </parameter>
      <parameter>
        <name>driverClassName</name>
        <value>org.gjt.mm.mysql.Driver</value>
      </parameter>
      <parameter>
        <name>maxIdle</name>
        <value>2</value>
      </parameter>
      <parameter>
        <name>username</name>
        <value>tomcat5</value>
      </parameter>
    </ResourceParams>
  </GlobalNamingResources>
  <Service name="Catalina">
    <Connector acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" 
port="8080"
redirectPort="8443" maxSpareThreads="75" maxThreads="150" minSpareThreads="25">
    </Connector>
    <Connector port="8009" protocol="AJP/1.3"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler" redirectPort="8443">
    </Connector>
    <Engine defaultHost="localhost" name="Catalina">
      <Host appBase="webapps" name="localhost">
        <Logger className="org.apache.catalina.logger.FileLogger" 
prefix="localhost_log."
suffix=".txt" timestamp="true"/>
      </Host>
      <Logger className="org.apache.catalina.logger.FileLogger" prefix="catalina_log."
suffix=".txt" timestamp="true"/>
      <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/>
    </Engine>
  </Service>
</Server>

And here is my webapps/testapp1/WEB-INF/web.xml file:
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app>
  <description>Test App 1</description>

  <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/MysqlTest1</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
  </resource-ref>

</web-app>

I created the DataSource using the Admin app within Tomcat but then I noticed it did 
not add a
factory line as in the docs, so I added this by hand and restarted tomcat:
      <parameter>
        <name>factory</name>
        <value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
      </parameter>

Here is a simple class I am using to test with:
package chuck;

import javax.naming.*;
import javax.sql.*;
import java.sql.*;

public class DBTest1
{
        String foo = "Not Connected";
        int bar = -1;

        public void init() {
                try {
                        Context ctx = new InitialContext();
                        if (ctx == null)
                                throw new Exception("Error: No context.");
                        DataSource ds = (DataSource) 
ctx.lookup("java:comp/env/jdbc/MysqlTest1");

                        if (ds != null) {
                                Connection conn = ds.getConnection();

                                if (conn != null) {
                                        foo = "Database connection established: " +
conn.toString();
                                        Statement stmt = conn.createStatement();
                                        ResultSet rs = stmt.executeQuery("select * from
TEST_USER");
                                        if (rs.next()) {
                                                foo = rs.getString(2);
                                                bar = rs.getInt(1);
                                        }
                                        conn.close();
                                }
                        }
                     } catch (Exception e) {
                                e.printStackTrace();
                     }
        }

        public String getFoo() { return foo; }
        public int getBar() { return bar; }
}

Any suggestions?
Thx,
rhugga

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to