欧美三区_成人在线免费观看视频_欧美极品少妇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级 | 成人午夜视频网站 | 久久华人 | 欧美一级在线免费 | 亚洲国产综合人成综合网站00 | 一级黄色播放 | 色偷偷成人网免费视频男人的天堂 | 亚洲精选久久 | 久久久久国产视频 | 欧美在线a | 这里只有精品99re | 欧美精品免费xxxxx视频 | 欧美精品综合一区二区三区 | 成人久久 | 精品成人一区二区 | 成人免费网站在线观看 | 男人j进女人j啪啪无遮挡动态 | 99久久精品国产片久人 | 一级黄色片播放 | 国产麻豆剧传媒精品网站 | 午夜视频一区二区三区 | 久操欧美 | 狠狠操在线视频 | www.99riav.com | 播播成人网 | 五月婷婷 六月丁香 | 久久久久欧美精品网站 | 国产亚洲综合一区二区 | 国产精品久久久久免费视频 | 国产高清毛片 | 欧美电影网站在线观看影片 | 日本最色网站 | 国产目拍亚洲精品99久久精品 | 久草手机视频在线观看 | 无遮挡又黄又刺激的视频 |