• <menu id="eeoky"><tt id="eeoky"></tt></menu>
  • <nav id="eeoky"></nav>
  • Tomca教程
    Tomcat Manager
    Tomcat Realm 配置
    Tomcat 安全管理
    Tomcat JNDI 資源
    Tomcat JDBC 數據源
    Tomcat 類加載機制
    Tomcat JSPs
    Tomcat SSL/TLS配置
    Tomcat SSI
    Tomcat CGI
    Tomcat 代理支持
    Tomcat MBean 描述符
    Tomcat 默認 Servlet
    Tomcat 集群
    Tomcat 連接器
    Tomcat監控與管理
    Tomcat 日志機制
    Tomcat 基于 APR 的原生庫
    Tomcat 虛擬主機
    Tomcat 高級 IO 機制
    Tomcat 附加組件
    Tomcat 安全性注意事項
    Tomcat Windows 服務
    Tomcat Windows 認證
    Tomcat 的 JDBC 連接池
    Tomcat WebSocket 支持
    Tomcat 重寫機制

    JDBC連接池高級用法

    1. JDBC 攔截器

    要想看看攔截器使用方法的具體范例,可以看看 org.apache.tomcat.jdbc.pool.interceptor.ConnectionState。這個簡單的攔截器緩存了三個屬性:autoCommit、readOnly、transactionIsolation,為的是避免系統與數據庫之間無用的往返。

    當需求增加時,姜維連接池核心增加更多的攔截器。歡迎貢獻你的才智!

    攔截器當然并不局限于 java.sql.Connection,當然也可以對方法調用的任何結果進行包裝。你可以構建查詢性能分析器,以便當查詢運行時間超過預期時間時提供 JMX 通知。

    2. 配置 JDBC 攔截器

    JDBC 攔截器是通過 jdbcInterceptor 屬性來配置的。該屬性值包含一列由分號分隔的類名。如果這些類名非完全限定,就會在它們的前面加上 org.apache.tomcat.jdbc.pool.interceptor. 前綴。

    范例:
    jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState; org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
    它實際上等同于:
    jdbcInterceptors="ConnectionState;StatementFinalizer"

    攔截器也同樣有屬性。攔截器的屬性指定在類名后的括號里,如果設置多個屬性,則用逗號分隔開。

    范例:

    jdbcInterceptors="ConnectionState;StatementFinalizer(useEquals=true)"

    系統會自動忽略屬性名稱、屬性值以及類名前后多余的空格字符。

    org.apache.tomcat.jdbc.pool.JdbcInterceptor

    所有攔截器的抽象基類,無法實例化。

    屬性

    描述

    useEquals

    (布爾值)如果希望 ProxyConnection 類使用 String.equals,則設為 true;當希望在對比方法名時使用 ==,則設為 false。默認為 true。

    org.apache.tomcat.jdbc.pool.interceptor.ConnectionState

    它能為下列屬性緩存連接:autoCommit、readOnly、transactionIsolation 及 catalog。這是一種性能增強功能,當利用已設定的值來調用 getter 與 setter 時,它能夠避免往返數據庫。

    org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer

    跟蹤所有使用 createStatement、prepareStatement 或 prepareCall 的語句,當連接返回池后,關閉這些語句。

    屬性

    描述

    trace

    (以字符串形式表示的布爾值)對未關閉語句進行跟蹤。當啟用跟蹤且連接被關閉時,如果相關語句沒有關閉,則攔截器會記錄所有的堆棧跟蹤。默認值為 false。

    org.apache.tomcat.jdbc.pool.interceptor.StatementCache

    緩存連接中的 PreparedStatement 或 CallableStatement 實例。

    它會針對每個連接對這些語句進行緩存,然后計算池中所有連接的整體緩存數,如果緩存數超過了限制 max,就不再對隨后的語句進行緩存,而是直接關閉它們。

    屬性

    描述

    prepared

    (以字符串形式表示的布爾值)對使用 prepareStatement 調用創建的 PreparedStatement 實例進行緩存。默認為 true

    callable

    (以字符串形式表示的布爾值)對使用 prepareCall 調用創建的 CallableStatement 實例進行緩存。默認為 false

    max

    (以字符串形式表示的整型值)連接池中的緩存語句的數量限制。默認為 50

    org.apache.tomcat.jdbc.pool.interceptor.StatementDecoratorInterceptor

    請參看 48392。攔截器會包裝語句和結果集,從而防止對使用了 ResultSet.getStatement().getConnection() 和 Statement.getConnection() 方法的實際連接進行訪問。

    org.apache.tomcat.jdbc.pool.interceptor.QueryTimeoutInterceptor

    當新語句創建時,自動調用 java.sql.Statement.setQueryTimeout(seconds)。池本身并不會讓查詢超時,完全是依靠 JDBC 驅動來強制查詢超時。

    屬性

    描述

    queryTimeout

    (以字符串形式表示的整型值)查詢超時的毫秒數。默認為 1000 毫秒。

    org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReport

    當查詢超過失敗容差值時,記錄查詢性能并發布日志項目。使用的日志級別為 WARN。

    屬性

    描述

    threshold

    (以字符串形式表示的整型值)查詢應超時多少毫秒才發布日志警告。默認為 1000 毫秒

    maxQueries

    (以字符串形式表示的整型值)為保留內存空間,所能記錄的最大查詢數量。默認為 1000

    logSlow

    (以字符串形式表示的布爾值)如果想記錄較慢的查詢,設為 true。默認為 true

    logFailed

    (以字符串形式表示的布爾值)如果想記錄失敗查詢,設為 true。默認為 true

    org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReportJmx

    這是對 SlowQueryReport 的擴展,除了發布日志項目外,它還發布 JMX 通知,以便監視工具作出相關反應。該類從其父類繼承了所有屬性。它使用了 Tomcat 的 JMX 引擎,所以在 Tomcat 容器外部是無效的。使用該類時,默認情況下,是通過 ConnectionPool MBean 來發送 JMX 通知。如果 notifyPool=false,則 SlowQueryReportJmx 也可以注冊一個 MBean。

    屬性

    描述

    notifyPool

    (以字符串形式表示的布爾值)如果希望用 SlowQueryReportJmx MBean 發送 JMX 通知,則設為 false。默認為 true

    objectName

    字符串。定義一個有效的 javax.management.ObjectName 字符串,用于將這一對象注冊到平臺所用的 mbean 服務器上。默認值為 null??梢允褂?nbsp;tomcat.jdbc:type=org.apache.tomcat.jdbc.pool.interceptor.SlowQueryReportJmx,name=the-name-of-the-pool 來注冊對象。

    org.apache.tomcat.jdbc.pool.interceptor.ResetAbandonedTimer

    當連接簽出池中后,廢棄計時器即開始計時。這意味著如果超時為 30 秒,而你使用連接運行了 10 個 10秒的查詢,那么它就會被標為廢棄,并可能依靠 abandonWhenPercentageFull 屬性重新聲明。每次成功地在連接上執行操作或執行查詢時,該攔截器就會重設簽出計時器。

    全部教程
    疯狂婬荡乱婬A片中文,特级西西人体444WWw高清大胆,国产性XXXX18免费观看视频,中文字幕乱伦,free性满足HD国产精品,牛人女厕偷拍1区2区