社区
Web 开发
帖子详情
哪位可以指点一下TOMCAT连接池的配置
liajin
2003-10-05 01:28:38
最近一直在弄连接池,请问有哪位知道TOMCAT知道连接池的配置,还望能够指点一、二。最好是能给出配置使用的具体实例。小弟在此先谢过了!
我的邮箱:li.a.jin@163.com
...全文
33
2
打赏
收藏
哪位可以指点一下TOMCAT连接池的配置
最近一直在弄连接池,请问有哪位知道TOMCAT知道连接池的配置,还望能够指点一、二。最好是能给出配置使用的具体实例。小弟在此先谢过了! 我的邮箱:li.a.jin@163.com
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cen8535
2003-10-05
打赏
举报
回复
Tomcat4的数据库连接池配置
Add by: FanyHan
本文主要介绍Tomcat4.1.19这两个版本下数据库连接池的配置,及程序对连接池的JNDI查找,并提供相应测试代码。最后指出配置及应用过程中的常见问题及解决方法。
一、 Tomcat简介
Tomcat是Apache Jakarta的子项目之一,是Sun公司推荐的JSP、Servlet容器。作为一款优秀的应用服务器,Tomcat提供了数据库连接池、SSL、Proxy等许多通用组件功能,其中连接池是4.0以上版本的新增功能,应用非常广泛。
二、 该文配置环境
Tomcat4.1.19 + jdk1.3 + Sql Server 2000 + Jbuilder 8.0 + Win2000
三、 对Tomcat4.1.19的DBCP配置
为方便起见,将连接池置于ROOT下,JNDI名设为jdbc/SqlServerDB,数据库服务器IP为
192.168.0.47,SID为hrntest,配置步骤如下。
第一步:配置server.xml
在server.xml中找到
<!-- Tomcat Root Context -->
<!—
<Context path="" docBase="ROOT" debug="0"/>
-->
将其改为
<!-- Tomcat Root Context -->
<Context path="" docBase="ROOT" debug="0" reloadable="true">
<Resource name="jdbc/SqlServerDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/SqlServerDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>url</name> <value>jdbc:microsoft:sqlserver://192.168.0.47:1433;databa
seName=hrntest</value>
</parameter>
<parameter>
<name>username</name>
<value>Fany</value>
</parameter>
<parameter>
<name>password</name>
<value>fanyhan</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
</ResourceParams>
</Context>
参数说明:
Resource项:
<Resource name="jdbc/SqlServerDB" auth="Container" type="javax.sql.DataSource"/>
Resource项(即连接池的DataSource对象),有3个属性name、auth、type,name项是JNDI的名称定义,程序通过JNDI才能找到此对象,这里取名jdbc/SqlServerDB;auth项即连接池管理权属性,这里取值Container,申明为容器管理;type项即对象的类型,这里取值javax.sql.DataSource,申明为数据库连接池。
在接下来的<ResourceParams>域内容里包含四个参数user、password、driverClassName、driverName,
依次为数据库的用户名、密码、JDBC驱动和数据库地址。
factory参数:
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
即基础对象工厂,这里取值org.apache.commons.dbcp.BasicDataSourceFactory,即DBCP自带的工厂,也可以用别的。
DriverClassName参数:
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
即数据库的JDBC驱动名称,具体值为:
Sql Server 2000: com.microsoft.jdbc.sqlserver.SQLServerDriver
首先要下载安装sqlserver-jdbc-驱动,然后将其lib下的三个jar文件放到
tomcat/common/lib下。
MySql: org.gjt.mm.mysql.Driver
MySql的JDBC驱动包mm.mysql-2.0.14.jar。
Oracle8.1.7: oracle.jdbc.driver.OracleDriver
Oracle8.1.7的JDBC驱动包名叫classes.jar,一般位于Oracle安装目录下的
ora81\jdbc\lib目录下,初始扩展名为ZIP,需要手工把classes.zip改名为classes.jar,并放到
tomcat/common/lib下。oracle.jdbc.driver.OracleDriver此类由classes.jar提供。
url参数:
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://192.168.0.47:1433;
databaseName=hrntest</value>
</parameter>
即数据库的地址。(不同的数据库其地址都不相同)
Sql Server 2000:
jdbc:microsoft:sqlserver://192.168.0.47:1433;databaseName=hrntest
Oracle8.1.7:jdbc:oracle:thin:@192.168.0.47:1521: hrntest
Username参数:
<parameter>
<name>username</name>
<value>Fany</value>
</parameter>
即连接数据库的用户名。
<parameter>
<name>password</name>
<value>fanyhan</value>
</parameter>
password参数:
即连接数据库的密码。
maxActive、maxIdle和maxWait参数:
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
maxActive是最大激活连接数,这里取值为20,表示同时最多有20个数据库连接。maxIdle是最大的空闲连接数,这里取值为20,表示即使没有数据库连接时依然可以保持20空闲的连接,而不被清除,随时处于待命状态。MaxWait是最大等待秒钟数,这里取值-1,表示无限等待,直到超时为止,也可取值9000,表示9秒后超时。
第二步:配置web.xml
打开webapps/ROOT/WEB-INF下web.xml,加入如下内容:
<resource-ref>
<description>SqlServer Datasource example</description>
<res-ref-name>jdbc/SqlServerDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
第三部:配置tomcat(添加类)
将Microsoft SQL Server 2000 Driver for JDBC\lib目录下的三个jar文件拷贝到Tomcat安装目录的
common\lib下。
配置完成
四、 测试代码
数据库如下:
Create table test(id varchar(12),name varchar(30))
方法1:写一个jsp文件(testdb.jsp),将其置于webapps/ROOT目录下,打开tomcat运行该页面进行测试。
页面testdb.jsp的内容如下:
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import= "java.sql.* "%>
<%@ page import= "javax.naming.* "%>
<%
try{
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = (Object) ctx.lookup("jdbc/SqlServerDB");
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
Connection conn = ds.getConnection();
Statement stmt = conn.createStatement();
String strSql = " insert into test(id,name) values('00001','fany')";
stmt.executeUpdate(strSql);
strSql = " select id,name from test ";
ResultSet rs = stmt.executeQuery(strSql);
if(rs.next()){
out.println(rs.getString(1));
out.println(rs.getString(2));
}
}catch(Exception ex){
ex.printStackTrace();
throw new SQLException("cannot get Connection pool.");
}
%>
方法2:写一个数据库连接的类
类内容如下:
static String jndiName="jdbc/SqlServerDB";
/**
* 从连接池中取得一个空闲的数据库连接
* @return Connection
* @exception Exception
*/
public static Connection getConnection() throws Exception{
Connection conn = null;
try {
Context initCtx = new InitialContext();
Context ctx = (Context) initCtx.lookup("java:comp/env");
//获取连接池对象
Object obj = (Object) ctx.lookup(jndiName);
//类型转换
javax.sql.DataSource ds = (javax.sql.DataSource)obj;
//获得数据库连接
conn= ds.getConnection();
} catch (java.lang.SecurityException se) {
throw se;
} catch(Exception e) {
e.printStackTrace();
throw e;
}
return conn;
}
yg_zhang
2003-10-05
打赏
举报
回复
你可以参考tomcat的文档,使用tomcat的web管理界面就可以配置成功,我成功配置过!
osworkflow入门范例
osworkflow-2.8.0-example.xml放在%
TOMCAT
_HOME%\conf\Catalina\localhost 当然数据库要
配置
连接池
,名字为jdbc/oswf。(百度上搜
配置
方法) 在mysql里面创建好数据库。 然后就可以直接访问了。
Tomcat
启动报错,连接
连接池
没反应
今天
tomcat
启动的时候在服务器上面看到在加载
连接池
加载不动了。 一想到上面的情况的话,我们就可以知道一定是数据库的连接出了问题,估计是数据库的IP,端口,账号,密码的问题。
Tomcat
连接时间设置
Tomcat
采用数据库
连接池
技术,当用户在一定时间不对数据库有操作时间后,就自动关闭这个连接,这是为了更好的利用资源,防止浪费宝贵的数据库连接资源。 可以采用如下三种方式,设置这个连接(Session)的过期时间: ...
tomcat
配置
mysql_
Tomcat
5
配置
mysql
希望大家发现问题后能给我
指点
一下
哈~我的邮件:patriotlml@gmail.com我用的是mysql5.0+
tomcat
5.5XX,步骤如下:第一:下载MySQL的JDBC驱动,拷贝至$
TOMCAT
_HOME/common/lib/目录下第二:
配置
Tomcat
数据源(注意:...
在
tomcat
连接oracle数据库连接,
tomcat
连接Oracle数据库问题
用JDBC直接连接数据库 ok 没问题可是用
tomcat
连接 就抛出异常 我用的Eclipse6.0
tomcat
6.0 Oracle9i
tomcat
连接数据库
连接池
都
配置
好了请高手
指点
我错在哪里 我的AddMessageServlet.java:76的代码是connection....
Web 开发
81,091
社区成员
341,718
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章