关于Tomcat 5.5连接池的配置问题

王朝system·作者佚名  2006-02-20
窄屏简体版  字體: |||超大  

广东省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>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航