用了最新的几个咚咚,搞了整整一天终于搞清楚了tomcat 5.5 配置 mysql 数据库连接池,网上的经验并不能完全用到新环境里面,我写出整个过程以方便大家配置。
1 环境描述
jdk 1.5
tomcat 5.5.4
mysql 4.0.20
mysql jdbc 3.0.15
commons dbcp 1.2.1
2 准备工作
jdk, tomcat, mysql安装过程并非我的重点,略过。
从http://dev.mysql.com/downloads/下载mysql-connector-java-3.0.15-ga.zip,将其中的mysql-connector-java-3.0.15-ga-bin.jar放到jre/lib/ext和tomcat 5.5/common/lib里面。
从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.zip,将其中的commons-dbcp-1.2.1.jar放到jre/lib/ext和tomcat 5.5/common/lib里面。
3 配置tomcat
在tomcat 5.5/conf/server.xml的<globalnamingresources>中添加:
<resource name="jdbc for mysql" type="javax.sql.datasource" driverclassname="com.mysql.jdbc.driver" password="" maxidle="2" maxwait="5000" username="root" url="jdbc:mysql://localhost/test" maxactive="4"/>。
在tomcat 5.5/webapps/test/web-inf/web.xml的<web-app>中添加:
<resource-ref>
<description>mysql connection pool</description>
<res-ref-name>jdbc for mysql</res-ref-name>
<res-type>javax.sql.datasource</res-type>
<res-auth>container</res-auth>
</resource-ref>
在tomcat 5.5/webapps/test/meta-inf/context.xml的<context>中添加:
<resourcelink name="jdbc for mysql" global="jdbc for mysql" type="javax.sql.datasourcer"/>
4 测试
重启tomcat服务器,写一个test.jsp:
<!doctype html public "-//w3c//dtd html 4.0 transitional//en"
"http://www.w3.org/tr/rec-html40/strict.dtd">
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%@ page import="javax.naming.*"%>
<%@ page session="false" %>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<title>test of mysql connection pool</title>
</head>
<body>
<%
out.print("start<br/>");
try{
context initctx = new initialcontext();
context ctx = (context) initctx.lookup("java:comp/env");
object obj = (object) ctx.lookup("jdbc for mysql");
javax.sql.datasource ds = (javax.sql.datasource)obj;
connection conn = ds.getconnection();
out.print("mysql connection pool runs perfectly!");
conn.close();
}
catch(exception ex){
out.print(ex.getmessage());
ex.printstacktrace();
}
%>
</body>
</html>
在浏览器中浏览该jsp文件,成功了哦。记得千万要用完close哦,不然一会就耗尽了。这一点可以通过以root身份登录mysql,运行show processlist;命令来查看当前所有连接。
