--- 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]