Tomcat5的数据库连接池配置

王朝java/jsp·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

Tomcat5.0.14版本下数据库连接池的配置,及程序对连接池的JNDI查找,配置及应用过程中的常见问题及解决方法。

1 .配置环境:Tomcat5.0.14 + jdk1.42+ Sql Server 2000+Win2003

2.配置步骤:

第一步:

启动Tomcat,打开IE在地址栏内输入http://localhost:8080/admin 进入Tomcat的管理界面;点击右边的Data Sources 在右上角的下拉菜单中选择Create New Data Source 在下边的输入框中输入需要的配置信息。

JNDI Name:jdbc/XXX(XXX为自己所命的名字)

Data Source URL:jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb(连接的数据名)

JDBC Driver Class: com.microsoft.jdbc.sqlserver.SQLServerDriver

User Name:连接数据库的用户名

Password: 数据库密码

Max. Active Connections: 最大连接数

Max. Idle Connections: 是最大的空闲连接数

Max. Wait for Connection: 最大等待连接数

第二步:配置web.xml

打开webapps/ROOT/WEB-INF下web.xml,加入如下内容:

<resource-ref>

<description>SqlServer Datasource example</description>

<res-ref-name>jdbc/SqlServerDB</res-ref-name>

<res-type>javax.sql.DataSource</res-type>

<res-auth>Container</res-auth>

</resource-ref>

第三步:配置tomcat(添加类)

首先要下载安装sqlserver-jdbc-驱动,然后将其lib下的三个jar文件放到

tomcat/common/lib下。

注意事项:

如果是单个JSP页面我们将它放在TOMCAT_HOME/webapps/ROOT下边,同时还须修改TOMCAT_HOME/conf/Catalina/localhost/下的ROOT.xml文件,在

<Resource auth="Container" description="SqlServer Datasource example" name="jdbc/SqlServerDB" type="javax.sql.DataSource"/>下边加入:

<ResourceLink global="jdbc/test" name="jdbc/test" type="javax.sql.DataSource"/>

来引用所配置的JNDI数据源。同时将<Resource auth="Container" description="SqlServer Datasource example" name="jdbc/SqlServerDB" type="javax.sql.DataSource"/>注释掉

如果我们要部署的是个WEB应用程序,我们将该应用程序放在TOMCAT_HOME/webapps目录下,有两种方式可以引用我们所配置的JNDI数据源。

A:可以在TOMCAT_HOME/conf/Catalina/localhost下新建XXX.xml文件,XXX为所发布的WEB应用的名字,如我所发布的WEB应用是JndiTest,.xml文件命名为JndiTest.xml在该文件内加:

<?xml version='1.0' encoding='utf-8'?>

<Context debug="1" docBase="E:/Tomcat 5.0/webapps/JndiTest" path="/JndiTest" reloadable="true" workDir="work\Catalina\localhost\JndiTest">

<Resource name="jdbc/test" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/test">

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

<parameter>

<name>password</name>

<value>jsjrj</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>4</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>5000</value>

</parameter>

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=tempdb</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

</parameter>

<parameter>

<name>username</name>

<value>sa</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

</ResourceParams>

</Context>

其中E:/Tomcat 5.0/webapps/JndiTest为你所发布应用程序的目录,这样就可以进行测试了。

这样做就是每个WEB应用程序都须创建一个象JndiTest.xml这样的文件。

B;为了避免每个WEB应用程序都创建XXX.xml文件,我们可以修改TOMCAT_HOME/conf下的server.xml文件,修改如下:

在<Host></Host>之间加入:

<Context path="/cms" docBase="d:/Tomcat5/webapps/cms" debug="1" reloadable="true">

<Resource name="jdbc/cms" type="javax.sql.DataSource"/>

<ResourceParams name="jdbc/cms">

<parameter>

<name>url</name>

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=content</value>

</parameter>

<parameter>

<name>driverClassName</name>

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

</parameter>

<parameter>

<name>maxWait</name>

<value>10000</value>

</parameter>

<parameter>

<name>maxActive</name>

<value>50</value>

</parameter>

<parameter>

<name>password</name>

<value>content</value>

</parameter>

<parameter>

<name>maxIdle</name>

<value>2</value>

</parameter>

<parameter>

<name>username</name>

<value>content</value>

</parameter>

<parameter>

<name>factory</name>

<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>

</parameter>

</ResourceParams>

</Context>

对于我的cms系统,还要修改 propertyset.xml

<propertysets>

<propertyset name="aggregate" class="com.opensymphony.module.propertyset.aggregate.AggregatePropertySet"/>

<propertyset name="cached" class="com.opensymphony.module.propertyset.cached.CachingPropertySet"/>

<propertyset name="map" class="com.opensymphony.module.propertyset.map.MapPropertySet"/>

<propertyset name="memory" class="com.opensymphony.module.propertyset.memory.MemoryPropertySet"/>

<propertyset name="serializable" class="com.opensymphony.module.propertyset.memory.SerializablePropertySet"/>

<propertyset name="hibernate" class="com.opensymphony.module.propertyset.hibernate.HibernatePropertySet">

<arg name="hibernate.connection.driver_class" value="net.sourceforge.jtds.jdbc.Driver" />

<arg name="hibernate.connection.url" value="jdbc:jtds:sqlserver://localhost:1433/content;charset=GBK" />

<arg name="hibernate.connection.username" value="content" />

<arg name="hibernate.connection.password" value="content" />

<arg name="hibernate.connection.pool_size" value="2" />

<arg name="hibernate.dialect" value="net.sf.hibernate.dialect.SQLServerDialect" />

</propertyset>

<propertyset name="xml" class="com.opensymphony.module.propertyset.xml.XMLPropertySet"/>

</propertysets>

还有dataAccessContext.xml

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

<property name="driverClassName"><value>net.sourceforge.jtds.jdbc.Driver</value></property>

<property name="url"><value>jdbc:jtds:sqlserver://localhost:1433/content;charset=GBK</value></property>

<property name="username"><value>content</value></property>

<property name="password"><value>content</value></property>

</bean>

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航