Tomcat中配置SQLServer 2000数据库连接池
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Tomcat中配置SQLServer 2000数据库连接池
2009-03-27 2222
1. 首先确保Tomcat安装目录中的commonlib(对于Tomcat5.5)或者是lib(Tomcat6.0)目录中已包含JDBC连接数据库所必须的三个.jar文件(msbase.jar , mssqlserver.jar 和msutil.jar,JDBC驱动器中包含这三个文件,只需将JDBC驱动器安装后的lib目录下的这三个文件复制到Tomcat安装目录的lib目录下即可)。
2. 修改Tomcat安装目录的conf子目录中的server.xml和context.xml文件。
对于server.xml文件,在GlobalNamingResources元素中添加如下的内容
Resource name=jdbcTestDB
auth=Container
type=javax.sql.DataSource
username=sa
password=123
driverClassName=com.microsoft.jdbc.sqlserver.SQLServerDriver
maxIdle=10
maxWait=10000
maxActive=100
url=jdbcmicrosoftsqlserverlocalhost1433;DatabaseName=test1
注test1是一个建好的数据库.
各字段含义如下:
name定义数据库连接的名称 driverClassName指定JDBC驱动器的类
username登陆数据库时使用的用户名 password登陆数据库的密码
maxIdle数据库连接的最大空闲时间 maxWait表示最大建立连接等待时间
maxActive连接池的最大数据库连接数 url表示的是需要连接的数据库的地址和名称
对于context.xml文件,在Context元素中加如下内容
ResourceLink global=jdbcTestDB name=jdbcTestDB type=javax.sql.DataSource
3. 完成配置后,可用如下文件来测试连接池配置是否正确.
%@ page language=java contentType=texthtml; charset=gb2312
pageEncoding=gb2312%
%@ page import=java.sql.,javax.naming. %
%
try{
Context initCtx=new InitialContext();
Context ctx=(Context)initCtx.lookup(javacompenv);
获取连接池对象
Object obj=(Object)ctx.lookup(jdbcTestDB);
类型转换
javax.sql.DataSource ds=(javax.sql.DataSource)obj;
从连接池中获取数据库连接对象
Connection conn=ds.getConnection();
Statement stmt=conn.createStatement();
获取服务器端时间,该SQL语句适用于SQLServer
String strSQL=select getDate();
ResultSet rs=stmt.executeQuery(strSQL);
rs.next();
Date date=rs.getDate(1);
out.println(date.toString());
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
out.println(e);
}
%
该实例测试程序通过数据库连接池的方式获取了MS SQLServer所在服务器的当前时间,运行结果如下,表明连接池配置成功.
以下是我在配置是遇到的问题
在server.xml和context.xml都配置好的条件下,没有将三个jar文件放入Tomcat的lib文件夹中(我开始错误的放入了WEB-INFlib中了),运行相应的测试程序,报错org.apache.tomcat.dbcp.dbcp.SQLNestedException Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver' .
当把三个jar文件放入lib
文件夹后,报错org.apache.tomcat.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.),后来发现是因为我没有启动SQLServer 2000导致的.
但是,紧接着改了server.xml中的DatabaseName属性值为Member(未建该库),因为书上是这样的,本来我觉得该属性应该是一个已建好的数据库,所以开始是test1,可现在改为书上的后,不能运行,报错 org.apache.tomcat.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 'Member' 中请求的数据库。登录失败。),我于是改回test1,但结果这样也不能运行了,实在纳闷儿!原来我忽略了每次更改后需要关闭Tomcat,然后在重新启动.
补充
对于编译环境是Eclipse的话,server.xml和context.xml的配置可以在Eclipse中的Servers中对应的两个文件进行配置.
更多信息参考
遇到问题org.apache.tomcat.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.) ,可点该链接kaixin110archive200810131141627.html
Tomcat配置连接池更多信息
txlngblogitem464b8e015f2ba5d6277fb59d.html
eclipse256blogitem7073d707e9d9c0c97b8947e4.html
Eclipse下配置及使用Tomcat数据库连接池
joaquin25articles165206.htmlopt=admin
course4_webprogramjspjsp_js2008919143432.html