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 path="/reportmis" docBase="d:/reportmis" debug="0" privileged="true">
<Resource name="mis2datasource " auth="Container" type="javax.sql.DataSource" />
<ResourceParams name=" mis2datasource ">
<parameter>
<name>username</name>
<value>rbp</value>
</parameter>
<parameter>
<name> password </name>
<value>rbp</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value> oracle.jdbc.driver.OracleDriver </value>
</parameter>
<parameter>
<name>url</name>
<value> jdbc:oracle:thin:@127.0.0.1:1521:orcl </value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
</Context>
方法二: /conf/server.xml文件中找到应用对应的context节点配置增加数据源连接的如下图中红色字体标出部分(如果没有则在<HOST></HOST>节点中添加),此配置方式是局部的数据源配置仅对此应用有效。
<Context path="/reportmis" docBase="d:/reportmis" debug="0" privileged="true">
<Resource name="mis2datasource " auth="Container" type="javax.sql.DataSource" />
<ResourceParams name=" mis2datasource ">
<parameter>
<name>username</name>
<value>rbp</value>
</parameter>
<parameter>
<name> password </name>
<value>rbp</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value> oracle.jdbc.driver.OracleDriver </value>
</parameter>
<parameter>
<name>url</name>
<value> jdbc:oracle:thin:@127.0.0.1:1521:orcl </value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</value>
</parameter>
</ResourceParams>
</Context>
属性说明:
name,数据源名称,通常取”jdbc/XXX”的格式;
type,”javax.sql.DataSource”;
username,数据库连接用户
password,数据库连接密码;
driveClassName,数据库驱动;
maxIdle,最大空闲数,数据库连接的最大空闲时间。超过空闲时间,数据库连接将被标记为不可用,然后被释放。设为0表示无限制。
maxActive,连接池的最大数据库连接数。设为0表示无限制。
maxWait ,最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。
说明:下面介绍的其他方法连接配置文件的属性说明和此处相同。
方法三:在server.xml中设置通用数据源,然后在具体web应用中引用该数据源
(1) 在server.xml的<GlobalNamingResources> </GlobalNamingResources>节点中加入如下代码,使之成为公用的数据源
<Resource name="mis2datasource " auth="Container" type="javax.sql.DataSource" />
<ResourceParams name=" mis2datasource ">
<parameter>
<name>username</name>
<value>rbp</value>
</parameter>
<parameter>
<name> password </name>
<value>rbp</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value> oracle.jdbc.driver.OracleDriver </value>
</parameter>
<parameter>
<name>url</name>
<value> jdbc:oracle:thin:@127.0.0.1:1521:orcl </value>
</parameter>
<parameter>
<name>maxWait</name>
<value>5000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>4</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>2</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 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"/>
</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"/>
</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"/>
</Context>
Tomcat连接池连接数设置
数据库连接池配置中和连接数相关的参数有以下几个,可通过修改这些属性可调整tomcat的连接数设置:
minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10
maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75
acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100
enableLookups:是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。