Tomcat数据库连接池配置
Step1:拷贝数据源的JDBC驱动,不同的tomat版本放置驱动的目录不同
1.Tomcat4,Tomcat 5.0及Tomcat5.5驱动目录为:tomcat安装目录\common\lib
2.Tomcat6及以上:tomcat安装目录\lib
Step2:配置连接信息
不同版本的tomcat的数据库连接池配置有所差异,但是都是通过配置文件来维护。
Tomcat5需要在server.xml中进行配置或者在\conf\Catalina\localhost添加上下文配置文件做配置。
Tomcat5.5和Tomcat6可直接在应用目录的META-INF目录下增加context.xml并在其中添加数据源配置信息。(或者在全局的context.xml中增加数据源配置信息)。此外还支持和tomcat5相同的
\conf\Catalina\localhost添加上下文配置文件方式。
注意:系统默认的系统数据源名称为mis2datasource,支持更改系统数据源名称,如需修改系统数据源名称,此处可配置指定名称的连接池,并在发布的应用包中修改web-inf\misInitConfig.xml中的系统数据源名称,如下
<sys_datasourceName dataType="11" default=" mysqlds " inputType="text" value=" 系统数据源名称 "
下面详细介绍不同tomcat版本数据源配置方式的差异。
Tomcat5.0数据源配置
方法一: 在\conf\Catalina\localhost下建立应用同名的xml格式如下:
<Context docBase="reportmis" path="/reportmis" privileged="true" workDir="work/Catalina/localhost/reportmis">
<Resource auth="Container" name="mis2datasource" type="javax.sql.DataSource"/>
<ResourceParams name="mis2datasource">
<parameter>
<name>password</name>
<value>sa12#</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://192.168.10.94:1433;DatabaseName=xitong2</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>1000</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from t_res_type</value>
</parameter>
</ResourceParams> </Context>
方法二: /conf/server.xml文件中找到应用对应的context节点配置增加数据源连接的如下图中红色字体标出部分(如果没有则在<HOST></HOST>节点中添加),此配置方式是局部的数据源配置仅对此应用有效。
<Context path="/reportmis" docBase="d:/reportmis" debug="0" privileged="true">
<Resource auth="Container" name="mis2datasource" type="javax.sql.DataSource"/>
<ResourceParams name="mis2datasource">
<parameter>
<name>password</name>
<value>sa12#</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://192.168.10.94:1433;DatabaseName=xitong2</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>1000</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from t_res_type</value>
</parameter>
</ResourceParams> </Context>
属性说明:
name,数据源名称,通常取”jdbc/XXX”的格式;
type,”javax.sql.DataSource”;
username,数据库连接用户
password,数据库连接密码;
driveClassName,数据库驱动;
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
maxActive,连接池的最大数据库连接数。设为0表示无限制。
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
testOnBorrow,true 指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个.
validationQuery:SQL查询,用来验证从连接池取出的连接,在将连接返回给调用者之前.如果指定,则查询必须是一个SQL SELECT并且必须返回至少一行记录,和testOnBorrow配套使用。产品要求必须设置。
说明:下面介绍的其他方法连接配置文件的属性说明和此处相同。
方法三:在server.xml中设置通用数据源,然后在具体web应用中引用该数据源
(1) 在server.xml的<GlobalNamingResources> </GlobalNamingResources>节点中加入如下代码,使之成为公用的数据源
<Resource auth="Container" name="mis2datasource" type="javax.sql.DataSource"/>
<ResourceParams name="mis2datasource">
<parameter>
<name>password</name>
<value>sa12#</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:sqlserver://192.168.10.94:1433;DatabaseName=xitong2</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.sqlserver.jdbc.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>50</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>1000</value>
</parameter>
<parameter>
<name>testOnBorrow</name>
<value>true</value>
</parameter>
<parameter>
<name>validationQuery</name>
<value>select * from t_res_type</value>
</parameter>
</ResourceParams>
(2) 在server.xml的在<Context></Context>节点中加入数据源链接,如下:
<Context path="/reportmis" docBase="reportmis" reloadable="true" crossContext="true">
<ResourceLink name="jdbc/DBPool" type="javax.sql.DataSource" global="mis2datasource"/>
</Context>
Tomcat5.5、tomcat6、tomcat7的数据库连接池配置
方法一:在\conf\Catalina\localhost下建立应用同名的xml
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="custom_reportmis" path="/custom_reportmis" privileged="true" workDir="work\Catalina\localhost\custom_reportmis">
<Resource name="mis2datasource"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost:9002/gezdemo"
username="sa"
password=""
maxActive="100"
maxIdle="30"
maxWait="10000" />
<Resource name="demo"
auth="Container"
type="javax.sql.DataSource"
driverClassName="org.hsqldb.jdbcDriver"
url="jdbc:hsqldb:hsql://localhost:9002/gezdemo"
username="sa"
password=""
maxActive="100"
maxIdle="30"
maxWait="10000"
validationQuery="select * from t_res_type"/>
</Context>
方法二:直接在server.xml的在<Context></Context>节点中加入数据源设置格式和tomcat5 有差别。
<Context path="/runqian" docBase="runqian" reloadable="true" crossContext="true">
<Resource name="mis2datasource" auth="Container" type="javax.sql.DataSource" password="rbp" username="rbp" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" maxActive="100" maxIdle="30" maxWait="5000" validationQuery="select * from t_res_type/>
</Context>
方法三:在应用包目录\META-INF \context.xml中进行配置,或者在\conf\context.xml中将所有web应用下的连接池进行统一配置,格式同上。
tomcat7一般使用这种方式。
<?xml version='1.0' encoding='utf-8'?>
<Context path="/runqian" docBase="runqian" reloadable="true" crossContext="true">
<Resource name="mis2datasource" auth="Container" type="javax.sql.DataSource" password="rbp" username="rbp" driverClassName="oracle.jdbc.driver.OracleDriver" url="jdbc:oracle:thin:@127.0.0.1:1521:orcl" maxActive="100" maxIdle="30" maxWait="5000" validationQuery="select * from t_res_type/>
</Context>
Tomcat连接池连接数设置
数据库连接池配置中和连接数相关的参数有以下几个,可通过修改这些属性可调整tomcat的连接数设置:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。