LINUX下TOMCAT連線池問題???誰能幫我?

森林發表於2003-08-30
但是,我配置好了。datasource找到了。。。但是CONNETION連線的時候就沒連上。。我一頭霧水,不知道該怎麼辦??哪位大蝦直到一下??謝謝!!
server.xml 配置:
<!--<Context path="/DBTest" docBase="DBTest"
debug="5" reloadable="true" crossContext="true">
-->
<Context path="" docBase="ROOT" debug="0"/>

<Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_DBTest_log." suffix=".txt"
timestamp="true"/>

<Resource name="jdbc/MysqlDB"
auth="Container"
type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/MysqlDB">
<parameter>
<name>factory</name>
<value>org.apache.catalina.users.MemoryUserDatabaseFactory</value>
</parameter>

<!-- Maximum number of dB connections in pool. Make sure you
configure your mysqld max_connections large enough to handle
all of your db connections. Set to 0 for no limit.
-->
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>

<!-- Maximum number of idle dB connections to retain in pool.
Set to 0 for no limit.
-->
<parameter>
<name>maxIdle</name>
<value>30</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>

<!-- MySQL dB username and password for dB connections -->
<parameter>
<name>username</name>
<value>root</value>
</parameter>
<parameter>
<name>password</name>
<value></value>
</parameter>

<!-- Class name for mm.mysql JDBC driver -->
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>

<!-- The JDBC connection url for connecting to your MySQL dB.
The autoReconnect=true argument to the url makes sure that the
mm.mysql JDBC Driver will automatically reconnect if mysqld closed the
connection. mysqld by default closes idle connections after 8 hours.
-->
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/frc?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>

WEB-APP ROOT下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>
<display-name>Welcome to Tomcat</display-name>
<!-- <description>
Welcome to Tomcat
</description>
-->
<description>MySQL Test App</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/MysqlDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

</web-app>
測試程式:
<%@ page contentType="text/html;charset=GBK"%>

<%@ page import="javax.naming.Context" %>
<%@ page import="javax.sql.DataSource"%>
<%@ page import="javax.naming.InitialContext"%>
<%@ page import="java.sql.*"%>
<%
try{
out.println("查詢資料庫"+"<br>");

Context initCtx = new InitialContext();

Context ctx = (Context) initCtx.lookup("java:comp/env");
//獲取連線池物件

Object obj = (Object) ctx.lookup("jdbc/MysqlDB");

//型別轉換

javax.sql.DataSource ds = (javax.sql.DataSource)obj;

out.println("查詢資料庫1"+"<br>");
Connection conn = ds.getConnection();

out.println("查詢資料庫2"+"<br>");

Statement stmt = conn.createStatement();

out.println("查詢資料庫3"+"<br>");

//String strSql = "insert into city(ciytid,ciytname,orderno) values(7,'chongqing',7) ";

//stmt.executeUpdate(strSql);

String strSql = " select ciytid,ciytname from city ";
out.println("查詢資料庫4"+"<br>");
ResultSet rs = stmt.executeQuery(strSql);
out.println("查詢資料庫5"+"<br>");
while(rs.next()){

out.println(rs.getInt(1));
out.println(rs.getString(2));


}
out.println("查詢資料庫6"+"<br>");
conn.close();

}catch(Exception ex){
//out.println("錯誤查詢資料庫2!!!!!"+"<br>");
ex.printStackTrace();
}
%>

只列印出來了
查詢資料庫
查詢資料庫1
錯誤查詢資料庫2!!!!!

應該是getconnection 那一步出錯了??誰能告訴我錯在那裡??
我用的是TOMCAT4.1.24+MYSQL4.0.14在LINUX下面的配置!!!

相關文章