欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

JNDI學習總結(二)——Tomcat下使用C3P0配置JNDI

系統 1916 0

一、C3P0下載

  C3P0下載地址: http://sourceforge.net/projects/c3p0/files/?source=navbar

  下載完成之后得到一個壓縮包 。

二、使用C3P0配置JNDI數據源

  Tomcat6.x中配置JNDI數據源時默認使用的是Tomcat6.x自帶的DBCP連接池,Tomcat6.x使用DBCP連接池配置JNDI數據源如下:

      
         1
      
      
        <
      
      
        Resource 


      
      
         2
      
      
        name
      
      
        ="oracleDataSource"
      
      
         3
      
      
            auth
      
      
        ="Container"
      
      
         4
      
      
            type
      
      
        ="javax.sql.DataSource"
      
      
         5
      
      
            maxActive
      
      
        ="50"
      
      
         6
      
      
            maxIdle
      
      
        ="10"
      
      
         7
      
      
            maxWait
      
      
        ="10000"
      
      
         8
      
      
            username
      
      
        ="lead_oams"
      
      
         9
      
      
            password
      
      
        ="p"
      
      
        10
      
      
            driverClassName
      
      
        ="oracle.jdbc.OracleDriver"
      
      
        11
      
      
            url
      
      
        ="jdbc:oracle:thin:@192.168.1.229:1521:lead"
      
      
        />
      
    

  如果想讓Tomcat6.x使用C3P0連接池配置JNDI數據源,在配置時,以下配置項需要修改

  1、 type和factory的值發生變化

  2、username=>user

  3、url=>jdbcUrl

  4、driverClassName=>driverClass

  創建一個Web測試項目C3P0_JNDI_Config,解壓 壓縮包,找到c3p0-0.9.5-pre9\lib目錄下的相關Jar包如下圖所示:

  將C3P0的相關Jar包添加到項目中,在項目的META-INF目錄下創建一個context.xml文件,目錄結構如下圖所示:

  在tomcat服務器的lib目錄下添加Oracle、MySQL、SQLServer三種數據庫的驅動jar包,如下圖所示:

  1、在context.xml文件中加入如下配置信息

      
         1
      
      
        <
      
      
        Context
      
      
        >
      
      
         2
      
      
        <!--
      
      
         使用C3P0配置針對MySQL數據庫的JNDI數據源 
      
      
        -->
      
      
         3
      
      
        <
      
      
        Resource 


      
      
         4
      
      
        name
      
      
        ="jdbc/MysqlDataSource"
      
      
         5
      
      
                auth
      
      
        ="Container"
      
      
         6
      
      
                factory
      
      
        ="org.apache.naming.factory.BeanFactory"
      
      
         7
      
      
                type
      
      
        ="com.mchange.v2.c3p0.ComboPooledDataSource"
      
      
         8
      
      
                driverClass
      
      
        ="com.mysql.jdbc.Driver"
      
      
         9
      
      
                idleConnectionTestPeriod
      
      
        ="60"
      
      
        10
      
      
                maxPoolSize
      
      
        ="50"
      
      
        11
      
      
                minPoolSize
      
      
        ="2"
      
      
        12
      
      
                acquireIncrement
      
      
        ="2"
      
      
        13
      
      
                user
      
      
        ="root"
      
      
        14
      
      
                password
      
      
        ="root"
      
      
        15
      
      
                jdbcUrl
      
      
        ="jdbc:mysql://192.168.1.144:3306/leadtest"
      
      
        />
      
      
        16
      
      
        17
      
      
        <!--
      
      
         使用C3P0配置針對Oracle數據庫的JNDI數據源 
      
      
        -->
      
      
        18
      
      
        <
      
      
        Resource 


      
      
        19
      
      
        name
      
      
        ="jdbc/OracleDataSource"
      
      
        20
      
      
                auth
      
      
        ="Container"
      
      
        21
      
      
                factory
      
      
        ="org.apache.naming.factory.BeanFactory"
      
      
        22
      
      
                type
      
      
        ="com.mchange.v2.c3p0.ComboPooledDataSource"
      
      
        23
      
      
                driverClass
      
      
        ="oracle.jdbc.OracleDriver"
      
      
        24
      
      
                idleConnectionTestPeriod
      
      
        ="60"
      
      
        25
      
      
                maxPoolSize
      
      
        ="50"
      
      
        26
      
      
                minPoolSize
      
      
        ="2"
      
      
        27
      
      
                acquireIncrement
      
      
        ="2"
      
      
        28
      
      
                jdbcUrl
      
      
        ="jdbc:oracle:thin:@192.168.1.229:1521:lead"
      
      
        29
      
      
                user
      
      
        ="lead_oams"
      
      
        30
      
      
                password
      
      
        ="p"
      
      
        />
      
      
        31
      
      
        32
      
      
        33
      
      
        <!--
      
      
        使用C3P0配置針對SQLServer數據庫的JNDI數據源
      
      
        -->
      
      
        34
      
      
        <
      
      
        Resource 


      
      
        35
      
      
        name
      
      
        ="jdbc/SqlServerDataSource"
      
      
        36
      
      
                auth
      
      
        ="Container"
      
      
        37
      
      
                factory
      
      
        ="org.apache.naming.factory.BeanFactory"
      
      
        38
      
      
                type
      
      
        ="com.mchange.v2.c3p0.ComboPooledDataSource"
      
      
        39
      
      
                driverClass
      
      
        ="com.microsoft.sqlserver.jdbc.SQLServerDriver"
      
      
        40
      
      
                idleConnectionTestPeriod
      
      
        ="60"
      
      
        41
      
      
                maxPoolSize
      
      
        ="50"
      
      
        42
      
      
                minPoolSize
      
      
        ="2"
      
      
        43
      
      
                acquireIncrement
      
      
        ="2"
      
      
        44
      
      
                jdbcUrl
      
      
        ="jdbc:sqlserver://192.168.1.51:1433;DatabaseName=demo"
      
      
        45
      
      
                user
      
      
        ="sa"
      
      
        46
      
      
                password
      
      
        ="p@ssw0rd"
      
      
        />
      
      
        47
      
      
        </
      
      
        Context
      
      
        >
      
    

  2.在web.xml引用JDNI數據源:

      
         1
      
      
        <?
      
      
        xml version="1.0" encoding="UTF-8"
      
      
        ?>
      
      
         2
      
      
        <
      
      
        web-app 
      
      
        version
      
      
        ="2.5"
      
      
         3
      
      
            xmlns
      
      
        ="http://java.sun.com/xml/ns/javaee"
      
      
         4
      
      
            xmlns:xsi
      
      
        ="http://www.w3.org/2001/XMLSchema-instance"
      
      
         5
      
      
            xsi:schemaLocation
      
      
        ="http://java.sun.com/xml/ns/javaee 


      
      
         6
      
      
            http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
      
      
        >
      
      
         7
      
      
        <
      
      
        welcome-file-list
      
      
        >
      
      
         8
      
      
        <
      
      
        welcome-file
      
      
        >
      
      index.jsp
      
        </
      
      
        welcome-file
      
      
        >
      
      
         9
      
      
        </
      
      
        welcome-file-list
      
      
        >
      
      
        10
      
      
        11
      
      
        <!--
      
      
        12
      
      
              JNDI配置的資源引用:


      
      
        13
      
      
          ? res-ref-name:表示引用資源的名稱


      
      
        14
      
      
          ? res-type:此資源對應的類型為javax.sql.DataSource


      
      
        15
      
      
          ? res-auth:容器授權管理


      
      
        16
      
      
        -->
      
      
        17
      
      
        <!--
      
      
        Oracle數據庫JNDI數據源引用 
      
      
        -->
      
      
        18
      
      
        <
      
      
        resource-ref
      
      
        >
      
      
        19
      
      
        <
      
      
        description
      
      
        >
      
      Oracle DB Connection
      
        </
      
      
        description
      
      
        >
      
      
        20
      
      
        <
      
      
        res-ref-name
      
      
        >
      
      jdbc/OracleDataSource
      
        </
      
      
        res-ref-name
      
      
        >
      
      
        21
      
      
        <
      
      
        res-type
      
      
        >
      
      javax.sql.DataSource
      
        </
      
      
        res-type
      
      
        >
      
      
        22
      
      
        <
      
      
        res-auth
      
      
        >
      
      Container
      
        </
      
      
        res-auth
      
      
        >
      
      
        23
      
      
        </
      
      
        resource-ref
      
      
        >
      
      
        24
      
      
        25
      
      
        <!--
      
      
        MySQL數據庫JNDI數據 
      
      
        -->
      
      
        26
      
      
        <
      
      
        resource-ref
      
      
        >
      
      
        27
      
      
        <
      
      
        description
      
      
        >
      
      MySQL DB Connection
      
        </
      
      
        description
      
      
        >
      
      
        28
      
      
        <
      
      
        res-ref-name
      
      
        >
      
      jdbc/MysqlDataSource
      
        </
      
      
        res-ref-name
      
      
        >
      
      
        29
      
      
        <
      
      
        res-type
      
      
        >
      
      javax.sql.DataSource
      
        </
      
      
        res-type
      
      
        >
      
      
        30
      
      
        <
      
      
        res-auth
      
      
        >
      
      Container
      
        </
      
      
        res-auth
      
      
        >
      
      
        31
      
      
        </
      
      
        resource-ref
      
      
        >
      
      
        32
      
      
        33
      
      
        <!--
      
      
        SQLServer數據庫JNDI數據源引用 
      
      
        -->
      
      
        34
      
      
        <
      
      
        resource-ref
      
      
        >
      
      
        35
      
      
        <
      
      
        description
      
      
        >
      
      SQLServer DB Connection
      
        </
      
      
        description
      
      
        >
      
      
        36
      
      
        <
      
      
        res-ref-name
      
      
        >
      
      jdbc/SqlServerDataSource
      
        </
      
      
        res-ref-name
      
      
        >
      
      
        37
      
      
        <
      
      
        res-type
      
      
        >
      
      javax.sql.DataSource
      
        </
      
      
        res-type
      
      
        >
      
      
        38
      
      
        <
      
      
        res-auth
      
      
        >
      
      Container
      
        </
      
      
        res-auth
      
      
        >
      
      
        39
      
      
        </
      
      
        resource-ref
      
      
        >
      
      
        40
      
      
        41
      
      
        </
      
      
        web-app
      
      
        >
      
    

  3.部署C3P0_JNDI_Config Web應用到Tomcat服務器測試JNDI數據源

  部署到tomcat服務器的webapps目錄之后,tomcat服務器就會自動在\conf\Catalina\localhost目錄下生成一個C3P0_JNDI_Config.xml文件,如下圖所示:

  C3P0_JNDI_Config.xml文件中的內容就是我們在META-INF目錄的context.xml文件中配置的那些內容。

  jsp測試頁面如下:

      
         1
      
      
        <%
      
      
        @ page language
      
      
        =
      
      
        "
      
      
        java
      
      
        "
      
      
         import
      
      
        =
      
      
        "
      
      
        java.util.*
      
      
        "
      
      
         pageEncoding
      
      
        =
      
      
        "
      
      
        UTF-8
      
      
        "
      
      
        %>
      
      
         2
      
      
        <%
      
      
        --
      
      
        引入JSTL標簽庫 
      
      
        --
      
      
        %>
      
      
         3
      
      
        <%
      
      
        @ taglib uri
      
      
        =
      
      
        "
      
      
        http://java.sun.com/jsp/jstl/core
      
      
        "
      
      
         prefix
      
      
        =
      
      
        "
      
      
        c
      
      
        "
      
      
        %>
      
      
         4
      
      
        <%
      
      
        @ taglib uri
      
      
        =
      
      
        "
      
      
        http://java.sun.com/jsp/jstl/sql
      
      
        "
      
      
         prefix
      
      
        =
      
      
        "
      
      
        sql
      
      
        "
      
      
        %>
      
      
         5
      
      
        <!
      
      
        DOCTYPE HTML
      
      
        >
      
      
         6
      
      
        <
      
      
        html
      
      
        >
      
      
         7
      
      
        <
      
      
        head
      
      
        >
      
      
         8
      
      
        <
      
      
        title
      
      
        >
      
      C3P0配置JNDI數據源連接測試
      
        </
      
      
        title
      
      
        >
      
      
         9
      
      
        </
      
      
        head
      
      
        >
      
      
        10
      
      
        11
      
      
        <
      
      
        body
      
      
        >
      
      
        12
      
      
        <
      
      
        h3
      
      
        >
      
      針對MySQL數據庫JNDI數據源測試
      
        </
      
      
        h3
      
      
        >
      
      
        13
      
      
        <%
      
      
        --
      
      
        使用sql:query標簽發送SQL語句去數據庫查詢數據,查詢的結果集保存到rs變量當中,dataSource屬性指明使用的數據源
      
      
        --
      
      
        %>
      
      
        14
      
      
        <
      
      
        sql:query 
      
      
        var
      
      
        ="rs"
      
      
         dataSource
      
      
        ="jdbc/MysqlDataSource"
      
      
        >
      
      
        15
      
      
        <%
      
      
        --
      
      
        MySQL JNDI數據源測試 SQL
      
      
        --
      
      
        %>
      
      
        16
      
      
                     select * from ld_user


      
      
        17
      
      
        </
      
      
        sql:query
      
      
        >
      
      
        18
      
      
        <%
      
      
        --
      
      
        使用c:forEach標簽遍歷查詢結果集rs中的每一行
      
      
        --
      
      
        %>
      
      
        19
      
      
        <
      
      
        c:forEach 
      
      
        var
      
      
        ="row"
      
      
         items
      
      
        ="${rs.rows}"
      
      
        >
      
      
        20
      
      
        <%
      
      
        --
      
      
        ${row.字段名}獲取字段的值
      
      
        --
      
      
        %>
      
      
        21
      
                   ${row.id}---${row.username}---${row.password}
      
        <
      
      
        br
      
      
        />
      
      
        22
      
      
        </
      
      
        c:forEach
      
      
        >
      
      
        23
      
      
        <
      
      
        hr
      
      
        />
      
      
        24
      
      
        <
      
      
        h3
      
      
        >
      
      針對Oracle數據庫JNDI數據源測試
      
        </
      
      
        h3
      
      
        >
      
      
        25
      
      
        <%
      
      
        --
      
      
        使用sql:query標簽發送SQL語句去數據庫查詢數據,查詢的結果集保存到rs變量當中,dataSource屬性指明使用的數據源
      
      
        --
      
      
        %>
      
      
        26
      
      
        <
      
      
        sql:query 
      
      
        var
      
      
        ="rs"
      
      
         dataSource
      
      
        ="jdbc/OracleDataSource"
      
      
        >
      
      
        27
      
      
        <%
      
      
        --
      
      
        Oracle JNDI數據源測試 SQL
      
      
        --
      
      
        %>
      
      
        28
      
      
                    SELECT * FROM LEAD_OAMS_DBSOURCES


      
      
        29
      
      
        </
      
      
        sql:query
      
      
        >
      
      
        30
      
      
        <%
      
      
        --
      
      
        使用c:forEach標簽遍歷查詢結果集rs中的每一行
      
      
        --
      
      
        %>
      
      
        31
      
      
        <
      
      
        c:forEach 
      
      
        var
      
      
        ="row"
      
      
         items
      
      
        ="${rs.rows}"
      
      
        >
      
      
        32
      
      
        <%
      
      
        --
      
      
        ${row.字段名}獲取字段的值
      
      
        --
      
      
        %>
      
      
        33
      
                   ${row.RESOURCEID}---${row.DBSOURCE_NAME}---${row.DBSOURCE_TYPE}
      
        <
      
      
        br
      
      
        />
      
      
        34
      
      
        </
      
      
        c:forEach
      
      
        >
      
      
        35
      
      
        <
      
      
        hr
      
      
        />
      
      
        36
      
      
        </
      
      
        body
      
      
        >
      
      
        37
      
      
        </
      
      
        html
      
      
        >
      
    

?C3P0 自動重連相關參數
???? idleConnectionTestPeriod:C3P0會有一個Task檢測pool內的連接是否正常,此參數就是Task運行的頻率。默認值為0,表示不進行檢測
??? acquireRetryAttempts:pool請求取 新連接 失敗后重試的次數
???? C3P0目前存在問題:
???? 當數據庫重啟后,C3P0不會自動重新初始化數據庫連接池,當新的請求需要訪問數據庫的時候,此時回報錯誤(因為數據庫重啟,連接失效),同時刷新數據庫連接池,丟棄掉已經失效的連接,當第二個請求到來時恢復正常。
  C3P0目前沒有提供當獲取已建立連接失敗后重試次數的參數,只有獲取新連接失敗后重試次數的參數(acquireRetryAttempts )。
要解決此問題,可以通過設置idleConnectionTestPeriod 參數折中解決,該參數的作用是設置系統自動檢查連接池中連接是否正常的一個頻率參數,時間單位是秒。

JNDI學習總結(二)——Tomcat下使用C3P0配置JNDI數據源


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。?!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 日本一区二区高清不卡 | 久热久操 | 欧美成a高清在线观看www | 黄色三级在线观看 | 久久草在线视频免费 | 色综合欧美 | 欧美激情一区二区三区中文字幕 | 日本人丰满xxxxhd | 精品国产成人在线 | 亚洲免费人成 | 欧美成视频无需播放器 | 国产精品美女久久久久aⅴ国产馆 | 亚洲天堂视频在线观看 | 狠狠久 | 日本免费精品视频 | 国产精品v欧美精品v日韩精品 | 91情侣在线偷精品国产 | 双性精h调教灌尿打屁股的文案 | 九色福利 | 成人日韩 | 亚洲精品一区二区三区不 | 欧美日韩亚洲高清不卡一区二区三区 | 欧洲色综合 | 久久精品成人免费国产片桃视频 | 秋霞久久网 | 国产精品久久久久免费 | 黄视频网站大全 | 青娱在线 | 国产成人精品一区二区三区视频 | 91成人在线视频 | 天天干天天谢 | 日本视频免费 | 日本久久精品 | 国产成人福利视频在线观看 | 中文字幕三区 | 日本加勒比视频在线观看 | 男女免费爽爽爽在线视频 | 久久99热成人精品国产 | 黄色资源在线观看 | 亚洲va欧美va天堂v国产综合 | 免费在线观看www |