Tomcat连接池使用

06-04-17 banq

前面已经讨论过,使用数据库连接池可以提高数据库的访问性能。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>
<p>

后面几个参数配置就是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的数据源了。

猜你喜欢