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 閱讀(870) 評論(0)  編輯  收藏 所屬分類: Tomcat
          主站蜘蛛池模板: 德惠市| 耒阳市| 溧水县| 靖江市| 黔西县| 会理县| 洛川县| 靖西县| 富宁县| 宾川县| 万州区| 郑州市| 白山市| 茂名市| 禹城市| 昌邑市| 柘城县| 信宜市| 来宾市| 鹿泉市| 瓦房店市| 昌邑市| 宁海县| 威海市| 确山县| 钟祥市| 阜阳市| 长丰县| 鄂尔多斯市| 鱼台县| 许昌县| 濉溪县| 武乡县| 盐源县| 响水县| 江阴市| 东阿县| 于都县| 汉沽区| 即墨市| 子长县|