Tomcat连接池使用


前面已经讨论过,使用数据库连接池可以提高数据库的访问性能。Tomcat的数据库连接池是使用Jakarta-Commons项目中Database Connection Pool,包含下列组件:Jakarta-Commons DBCP 、Jakarta-Commons Collections和Jakarta-Commons Pool。这些库文件包必须和JDBC驱动程序一起安装在$CATALINA_HOME/common/lib这个目录下。如果检查发现没有,请到http://jakarta.apache.org/中下载相应的库文件包。
在$CATALINA_HOME/common/lib必须有下列包:
• commons-collections.jar。
• commons-dbcp.jar。
• commons-pool.jar。
• mysql-connector-java-3.0.7-stable-bin.jar //MySQL的驱动程序。
确定这些库文件包确实无误后,进行Tomcat的配置。
上个章节介绍了在Tomcat中部署应用的方法,其中第2种方法是修改server.xml,加入新的Context,只有一行就直接结束了,现在需要在这个Context中再增加内容,如下:


<Context path="/register"
docBase=
"D:/javasource/train/SimpleRegister/defaultroot" debug="1"
reloadable=
"true" crossContext="true" >

<!--注意这里jdbc/userDB是JDNI Name,可以自己取名,这类似一个通用令牌
将在程序系统中也使用到 -->
<Resource name=
"jdbc/userDB" auth="Container" type="javax.sql.DataSource"/>
<ResourceParams name=
"jdbc/userDB">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>maxActive</name> <!--最大连接数目 -->
<value>100</value>
</parameter>
<parameter>
<name>maxIdle</name> <!--最大空闲数,即最小连接数目 -->
<value>30</value>
</parameter>
<parameter>
<name>maxWait</name> <!--等待连接时间 -->
<value>10000</value>
</parameter>
<parameter>
<name>username</name>
<value>banq</value> <!--数据库访问用户名 -->
</parameter>
<parameter>
<name>password</name>
<value>9999</value> <!--数据库访问用户名 -->
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value><!-- 数据库驱动名 -->
</parameter>
<parameter>
<name>url</name> <!-- 数据库URL -->
<value>jdbc:mysql:
//localhost/user?autoReconnect=true</value>
</parameter>
</ResourceParams>
</Context>

后面几个参数配置就是JDBC的通用配置了,一旦Tomcat容器配置完成后,就可以在应用系统通过JNDI访问到这个数据库连接池。
本系统更改web.xml如下:
<web-app>
<description> Simple Register</description>
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/userDB</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
这样在Web容器中,通过java:comp/env/jdbc/userDB就可以寻找到jdbc/userDB的连接池。注意,在Java代码中写JNDI Name时,要加上java:comp/env/,这也是通用规定。

将java:comp/env/jdbc/userDB也可配置进入jdonframework.xml中原来JBoss的java:/TestDS就可以使用Tomcat的数据源了。