Tomcat4/5连接池的设置(推荐)

0 views
Skip to first unread message

kug...@gmail.com

unread,
Aug 21, 2007, 10:09:32 PM8/21/07
to 无国界数字化鲁虺文化帝国驻Google使领馆
Tomcat4/5连接池的设置(推荐)

一、Win2k下Tomcat4的连接池的配置

1.安装JDK1.4和jakarta-tomcat-4.1.27.exe。

路径分别为 D:\jdk1.4 和 D:\Tomcat 4.1。
安装Tomcat 4时,会要求填写web访问端口、用户名、密码等信息。
web访问端口默认为8080,用户名默认为admin,密码自己填写。

启动Tomcat4,访问http://127.0.0.1:8080/ ,就能看到Apache Tomcat/4.1.27的欢迎访问页面,页
面上有一些相关介绍信息等。


2.设置数据库的驱动

以Oracle的JDBC驱动设置为例:

Oracle8i的驱动在\oracle\ora81\jdbc\lib\目录下。名字为classes12.zip。db2驱动名字:
db2java.zip

Oracle9i的驱动在\oracle9i\jdbc\lib\目录下,名字为ojdbc14.jar。

将这个文件copy到D:\Tomcat 4.1\common\lib 下。

注意,如果使用Oracle8i 的驱动,则需要在D:\Tomcat 4.1\common\lib 目录下将classes12.zip更名为
classes12.jar,因为Tomcat4不认识zip的后缀名。


3.设置Web应用。

新建一个文件夹,名字为mypool,位置为D:\mypool。这个D:\mypool路径将是web应用的主目录。

打开D:\Tomcat 4.1\conf\server.xml 文件,找到如下行:

在这下面,加入如下行:


完成后,成为这个样子:


保存D:\Tomcat 4.1\conf\server.xml 文件。

配置完成后,重新启动Tomcat,就可以这样访问这个web应用了: http://127.0.0.1:8080/mypool/


4.设置Tomcat的连接池数据源。

访问 http://127.0.0.1:8080/admin 页面,用刚才安装 Tomcat4 时填写的用户名和密码登录。

登录成功后,会出现Tomcat 的web应用管理界面(Tomcat Web Server Administration Tool)。

如果是解压安装版就在X:\tomcat\conf\tomcat-users.xml文件里加上

<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>

然后在左边的目录树点击"Data Sources"项,右边可以看到JNDI配置的页面。

在右上角的下拉框中选择"Create New Data Source",接下来填写配置信息:

JNDI Name: jdbc/myOrcl
Data Source URL: jdbc:oracle:thin:@192.168.6.40:1521:dbserver
JDBC Driver Class: oracle.jdbc.driver.OracleDriver
User Name: myname
Password: mypassword
Max. Active Connections: 可用默认值
Max. Idle Connections: 可用默认值
Max. Wait for Connection: 可用默认值
Validation Query: 可不填写。

然后,按下"save"按钮保存。
再按下"Commit Changes"按钮将配置更改提交完成。

此时如果看看 Tomcat4 的窗口,会发现在最下面有一行文字提示:

Debugging -- changes saved to conf/server.xml

此时 D:\Tomcat 4.1\conf\server.xml 文件的配置已经更改保存完毕。


如果此时打开D:\Tomcat 4.1\conf\server.xml 文件,会发现server.xml 文件的内容改变了很多。
一些注释文字都被去掉了。

还会发现上面第三步配置Web应用的如下文字


则被自动修改成了这样的:

好了,至此位置,对Oracle的应用连接池已经配置完毕。

仔细对照server.xml 文件,会发现刚才所配置的连接池信息被放置在标签中,这意味着这个信息是可以被全局引用的,大致是如下的样子:


maxWait
5000


maxActive
200


password
mypassword


url
jdbc:oracle:thin:@192.168.6.40:1521:dbserver


driverClassName
oracle.jdbc.driver.OracleDriver


maxIdle
20


username
myname


factory
org.apache.catalina.users.MemoryUserDatabaseFactory


pathname
conf/tomcat-users.xml

5.设置web应用对连接池的引用。

打开D:\Tomcat 4.1\conf\server.xml 文件,找到刚才配置的web应用文字,由于刚才server.xml 文件被自
动修改过,并去掉了很多注释内容,所以刚才配置的web应用

被自动修改成了这样的:


在的描述中加上本web应用对全局连接池的引用说明,如下文字:

设置完成后,web应用的描述大致如下面的样子:


保存D:\Tomcat 4.1\conf\server.xml 文件。

注意,设置这个连接池的引用说明是非常重要的一步。
一些朋友在Tomcat4中配置连接池失败的原因大都归咎与此。还有网上一些文章说这是一个Tomcat4的一个Bug。
我用了整整两天两夜的时间才明白其中的奥秘。[:(]
当时离疯掉只查一点点。因为毕竟配置一个连接池是很简单的。[:(]


6.一般情况下,到此,连接池的设置就完成了。

然后需要重新启动Tomcat,这样就可以使用连接池来工作了。

但是,看到很多文章上说,还需要设置一下web.xml才能应用。我没有设置web.xml,连接池也可以完全使用。

现在说一下web.xml的配置方法。

在D:\mypool中新建文件夹,命名为WEB-INF,注意是大写的字母。

然后在D:\mypool\WEB-INF\ 下新建文件web.xml,其内容为:

Oracle DataSource example
jdbc/myOrcl
javax.sql.DataSource
Container

保存D:\mypool\WEB-INF\web.xml 文件。


7.一个简单的应用示例。

写了一个简单的JSP页面,用连接池来访问数据库。

内容如下:
---------------------

--------------------------------------------------------------------------------


--------------------

记住,用完后的数据库连接要释放。
不然当打开的连接过多或恶意刷屏,连接池的连接数目会被用完。
当连接池的连接数目用完后,再访问jsp页面时,会在页面出现如下的错误信息,报告连接池的连接被耗尽:
java.sql.SQLException: DBCP could not obtain an idle db connection,
pool exhausted


二、Win2k下Tomcat5 的连接池的配置

安装jakarta-tomcat-5.0.13.exe,假如Tomcat5的安装目录为 D:\Tomcat 5.0 。

别忘了把oracle的驱动程序classes12.jar文件copy到目录 D:\Tomcat 5.0\common\lib\ 下。

Tomcat5的连接池设置和Tomcat4 的差不多,仅说明一下不同点或需要特别注意的地方。


1. Tomcat5启动后,访问 http://127.0.0.1:8080/admin 页面,当设置完Tomcat的连接池数据源后,打开D:
\Tomcat 5.0\conf\server.xml 文件,会看到配置的连接池相关信息大致如下样子:

maxWait
5000


maxActive
4


password
mypassword


url
jdbc:oracle:thin:@127.0.0.1:1521:dbserver


driverClassName
oracle.jdbc.driver.OracleDriver


maxIdle
2


username
myusername


factory
org.apache.catalina.users.MemoryUserDatabaseFactory


pathname
conf/tomcat-users.xml


可以看到,一些连接池的信息配置参数已经和Tomcat4不同了。
但大致配置步骤和方法都是一样的。


2.设置web应用对连接池的引用。

打开D:\Tomcat 5.0\conf\Catalina\localhost\ 目录,找到和web应用同名的xml文件
(mypool.xml),打开这个文件,
修该其的描述信息,添加如下行:

使mypool.xml文件的内容看起来大致这个:

然后保存mypool.xml,需要重新Tomcat5服务,使之生效。


3.JSP页面测试文件的写法也是一样的,不再赘述。

4.一些补充:

如果web应用没有配置对连接池的引用,即没有配置,则会在访问jsp页面时出现如下错误:
NameNotFoundException: Name jdbc is not bound in this Context

如果缺少Oracle的JDBC驱动,则会在访问jsp页面时出现如下错误:
java.sql.SQLException: Cannot load JDBC driver class
'oracle.jdbc.driver.OracleDriver'

Reply all
Reply to author
Forward
0 new messages