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子目录中的l和l文件。
对于l文件,在GlobalNamingResources元素中添加如下的内容
Resource name=jdbcTestDB
sql2000数据库在哪个文件夹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表示的是需要连接的数据库的地址和名称
对于l文件,在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 Connection();
Statement ateStatement();
获取服务器端时间,该SQL语句适用于SQLServer
String strSQL=select getDate();
ResultSet uteQuery(strSQL);
<();
Date Date(1);
out.String());
rs.close();
stmt.close();
conn.close();
}
catch(Exception e){
out.println(e);
}
%
该实例测试程序通过数据库连接池的方式获取了MS SQLServer所在服务器的当前时间,运行结果如下,表明连接池配置成功.
以下是我在配置是遇到的问题
在l和l都配置好的条件下,没有将三个jar文件放入Tomcat的lib文件夹中(我开始错误的放入了WEB-INFlib中了),运行相应的测试程序,报错at.dbcp.dbcp.SQLNestedException Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver' .
当把三个jar文件放入lib
文件夹后,报错at.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.),后来发现是因为我没有启动SQLServer 2000导致的.
但是,紧接着改了l中的DatabaseName属性值为Member(未建该库),因为书上是这样的,本来我觉得该属性应该是一个已建好的数据库,所以开始是test1,可现在改为书上的后,不能运行,报错 at.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 'Member' 中请求的数据库。登录失败。),我于是改回test1,但结果这样也不能运行了,实在纳闷儿!原来我忽略了每次更改后需要关闭Tomcat,然后在重新启动.
补充
对于编译环境是Eclipse的话,l和l的配置可以在Eclipse中的Servers中对应的两个文件进行配置.
更多信息参考
遇到问题at.dbcp.dbcp.SQLNestedException Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.) ,可点该链接httpwwwblogskaixin110archive200810131141627.html
Tomcat配置连接池更多信息
httphi.baidutxlngblogitem464b8e015f2ba5d6277fb59d.html
httphi.baidueclipse256blogitem7073d707e9d9c0c97b8947e4.html
Eclipse下配置及使用Tomcat数据库连接池
httpwww.blogjavajoaquin25articles165206.htmlopt=admin
httpwww.diyblcourse4_webprogramjspjsp_js2008919143432.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论