JavaLife
天之道,利而不害;圣人之道,为而不争;信言不美,美言不信;善者不辩,辩者不善;知者不博,博者不知!
posts - 8,comments - 15,trackbacks - 0

Tomcat 5.5.15 和SQLServer2000 SP3基于SQLServer2000JDBC SP3 的连接池配制
一、准备
需要下载:
1. tomcat5.5.15
2. Tomcat5.5.15admin
3. SQLServer2000JDBC SP3或者jtds

安装tomcat。并添加admin角色和用户。
将jdbc驱动包放到tomcat_home\common\lib目录下。
在MyEclipse建立一个新的Web项目。使用刚才配置的tomcat作为服务器。

启动tomcat。

二、配置
打开tomcat。
 
登录 Tomcat Web Server Administration Tool.


点击左侧的Data Sources。
 
在右侧Available Actions下拉菜单中选择Create New Data Source.
 
输入
JNDI Name:
Data Source URL:
JDBC Driver Class:
User Name:
Password:
Max.Active Connections:最大活动连结数 ,0为不限 。
Max.Idle Connections:最大等待连结数 ,0为不限 。
Max.Wait for Connection:建立连接超时时间ms,-1为无限 。

注:使用SQLServer的官方JDBC驱动,Class=com.microsoft.jdbc.sqlserver.SQLServerDriver,URL=jdbc:Microsoft:sqlserver://127.0.0.1:1433;databaseName=aa;使用开源的驱动Jtds,Class=net.sourceforge.jtds.jdbc.sqlserver,URL=jdbc:jtds:sqlserver://127.0.0.1:1433/aa

输入完毕,点击“Save”按钮保存。
 
点击页面右上侧“Commit Changes”按钮,保存刚才的设置。(这一步很重要哦!)

打开tomcat_home\conf\server.xml的< GlobalNamingResources></ GlobalNamingResources>中找到

    <Resource
      name="jdbc/mydbcp"
      type="javax.sql.DataSource"
      password="aa"
      driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
      maxIdle="2"
      maxWait="5000"
      username="aa"
      url="jdbc:microsoft:sqlserver://10.0.2.37:1433;databaseName=aa"
      maxActive="4"/>
这是JNDI的主要配置文件,可以不使用图形界面直接写入server.xml中。
在tomcat_home\webapps\dbcp\ META-INF\context.xml的<context></context>中填入上面的代码。
如果更改了JNDI,则必须手动更改context.xml。

    <Resource
      name="mydbcp" 注:此处不同
      type="javax.sql.DataSource"
      password="aa"
      driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
      maxIdle="2"
      maxWait="5000"
      username="aa"
      url="jdbc:microsoft:sqlserver://10.0.2.37:1433;databaseName=aa"
      maxActive="4"/>

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

重起tomcat。

连接方法:

    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/mydbcp");
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from systypes");
三、测试

测试实例:test.jsp

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%@ page import="java.sql.*,javax.sql.DataSource,javax.naming.*"%>
<html>
 <head>
  <title>
   tomcat 连接池
  </title>
 </head>
 <body bgcolor="#ffffff">
  <h3>
   test
   <br>
   连接池3
  </h3>
  <%try {
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    DataSource ds = (DataSource) envCtx.lookup("jdbc/mydbcp");
    Connection conn = ds.getConnection();
    Statement stmt = conn.createStatement();
    ResultSet rs = stmt.executeQuery("select * from systypes");
    while (rs.next()) {%>

  <br>
  <%=rs.getString(1)%>
  <%}%>
  <%out.print("<br>Successful!成功!!\n");%>
  <%rs.close();
    stmt.close();
    conn.close();
   } catch (Exception e) {
    out.print("出现例外!" + e.getMessage());
    e.printStackTrace();
   }

  %>

 </body>
</html>

四、错误

错误1:Cannot load JDBC driver class 'com.microsoft.jdbc.sqlserver.SQLServerDriver'
是没有将sql jdbc driver包放在common\lib\目录下。

错误2:Cannot create PoolableConnectionFactory ([Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.)
SQL数据库补丁包的问题,如果访问的数据库是SP3,任何问题没有。不是SP3就会出现上面的错误。

错误3:Name mydbcp is not bound in this Context
在context.xml中加入
<ResourceLink
    global="jdbc/mydbcp"
    name="jdbc/mydbcp"
type="javax.sql.DataSource"/>

posted on 2006-02-27 20:44 JavaLife 阅读(865) 评论(0)  编辑  收藏 所属分类: Tomcat

只有注册用户登录后才能发表评论。


网站导航: