关于Tomcat 5.5连接池的配置问题
关于Tomcat 5.5连接池的配置问题 广东省Linux中心论坛 > linux应用区 > linux服务器和企业应用 > 关于Tomcat 5.5连接池的配置问题 庞劲松 04-12-31, 10:26目前网上关于Tomcat 5.5的数据库连接池的配置比较少,仅有的一篇 http://blog.csdn.net/nethermit/archive/2004/11/26/194451.aspx 还被到处拷贝粘贴,而且还不能用。
现在介绍一下真正的配置,以PostgreSQL数据库为例(MySQL配置是一样的)。
1、从http://jakarta.apache.org/commons/dbcp/下载commons-dbcp-1.2.1.jar,然后拷贝放到Tomcat 5.5/common/lib下
2、从http://jdbc.postgresql.org/download.html下载PostgreSQL的JDBC驱动程序,MySQL的JDBC驱动从http://dev.mysql.com/downloads/connector/j/3.1.html下载,然后把相应的JDBC的驱动程序(jar文件)拷贝到Tomcat5.5/common/lib下
2、编辑Tomcat 5.5/conf/tomcat-users.xml,配置如下
<tomcat-users>
<role rolename='tomcat'/>
<role rolename='role1'/>
<role rolename='manager'/>
<role rolename='admin'/>
<user username='tomcat' password='tomcat' roles='tomcat,manager,admin'/>
</tomcat-users>
3、编辑Tomcat 5.5/conf/server.xml,在
<Host name='localhost' appBase='webapps'
unpackWARs='true' autoDeploy='true'
xmlValidation='false' xmlNamespaceAware='false'>后添加连接描述
<Context path='/mytest' docBase='mytest' debug='5' reloadable='true' crossContext='true'>
<Resource name='mytest_ds' auth='Container'
type='javax.sql.DataSource' driverClassName='org.postgresql.Driver'
url='jdbc:postgresql://127.0.0.1:5432/mytest_db'
username='postgres' password='' maxActive='20' maxIdle='10' maxWait='-1'/>
</Context>说明:mytest是你的war包名称或者是你在webapps/创建的目录名称
mytest_ds是连接数据源名称
mytest_db是数据库名称
至此Tomcat部分配置完成,下面是JSP部分程序
<%@page contentType='text/html; charset=GBK'%>
<%@ page import='java.sql.*'%>
<%@ page import='javax.naming.*'%>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=gb2312'>
<title>Test of connection pool</title>
</head>
<body>
<%
out.print('Start<br/>');
try{
InitialContext ctx = new InitialContext();
javax.sql.DataSource connectionPool = (javax.sql.DataSource) ctx.lookup('java:comp/env/mytest_ds');
Connection conn = connectionPool.getConnection();
out.print('DB connection pool run OK!');
conn.close();
}
catch(Exception ex){
out.print(ex.getMessage());
ex.printStackTrace();
}
%>
</body>
</html>