大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

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 重寫機制

Tomcat 的 JDBC 連接池

Tomcat 的 JDBC 連接池簡介

JDBC 連接池 org.apache.tomcat.jdbc.pool 是 Apache Commons DBCP 連接池的一種替換或備選方案。

那究竟為何需要一個新的連接池?

原因如下:

  1. Commons DBCP 1.x 是單線程。為了線程安全,在對象分配或對象返回的短期內,Commons 鎖定了全部池。但注意這并不適用于 Commons DBCP 2.x。
  2. Commons DBCP 1.x 可能會變得很慢。當邏輯 CPU 數目增長,或者試圖借出或歸還對象的并發線程增加時,性能就會受到影響。高并發系統受到的影響會更為顯著。注意這并不適用于 Commons DBCP 2.x。
  3. Commons DBCP 擁有 60 多個類。tomcat-jdbc-pool 核心只有 8 個類。因此為了未來需求變更著想,肯定需要更少的改動。我們真正需要的只是連接池本身,其余的只是附屬。
  4. Commons DBCP 使用靜態接口,因此對于指定版本的 JRE,只能采用正確版本的 DBCP,否則就會出現 NoSuchMethodException 異常。
  5. 當DBCP 可以用其他更簡便的實現來替代時,實在不值得重寫那 60 個類。
  6. Tomcat JDBC 連接池無需為庫本身添加額外線程,就能獲取異步獲取連接。
  7. Tomcat JDBC 連接池是 Tomcat 的一個模塊,依靠 Tomcat JULI 這個簡化了的日志架構。
  8. 使用 javax.sql.PooledConnection 接口獲取底層連接。
  9. 防止饑餓。如果池變空,線程將等待一個連接。當連接返回時,池就將喚醒正確的等待線程。大多數連接池只會一直維持饑餓狀態。

Tomcat JDBC 連接池還具有一些其他連接池實現所沒有的特點:

  1. 支持高并發環境與多核/CPU 系統。
  2. 接口的動態實現。支持 java.sql 與 java.sql 接口(只要 JDBC 驅動),甚至在利用低版本的 JDK 來編譯時。
  3. 驗證間隔時間。我們不必每次使用單個連接時都進行驗證,可以在借出或歸還連接時進行驗證,只要不低于我們所設定的間隔時間就行。
  4. 只執行一次查詢。當與數據庫建立起連接時,只執行一次的可配置查詢。這項功能對會話設置非常有用,因為你可能會想在連接建立的整個時段內都保持會話。
  5. 能夠配置自定義攔截器。通過自定義攔截器來增強功能。可以使用攔截器來采集查詢統計,緩存會話狀態,重新連接之前失敗的連接,重新查詢,緩存查詢結果,等等。由于可以使用大量的選項,所以這種自定義攔截器也是沒有限制的,跟 java.sql/javax.sql 接口的 JDK 版本沒有任何關系。
  6. 高性能。后文將舉例展示一些性能差異。
  7. 極其簡單。它的實現非常簡單,代碼行數與源文件都非常少,這都有賴于從一開始研發它時,就把簡潔當做重中之重。對比一下 c3p0 ,它的源文件超過了 200 個(最近一次統計),而 Tomcat JDBC 核心只有 8 個文件,連接池本身則大約只有這個數目的一半,所以能夠輕易地跟蹤和修改可能出現的 Bug。
  8. 異步連接獲取。可將連接請求隊列化,系統返回 Future。
  9. 更好地處理空閑連接。不再簡單粗暴地直接把空閑連接關閉,而是仍然把連接保留在池中,通過更為巧妙的算法控制空閑連接池的規模。
  10. 可以控制連接應被廢棄的時間:當池滿了即廢棄,或者指定一個池使用容差值,發生超時就進行廢棄處理。
  11. 通過查詢或語句來重置廢棄連接計時器。允許一個使用了很長時間的連接不因為超時而被廢棄。這一點是通過使用 ResetAbandonedTimer 來實現的。
  12. 經過指定時間后,關閉連接。與返回池的時間相類似。
  13. 當連接要被釋放時,獲取 JMX 通知并記錄所有日志。它類似于 removeAbandonedTimeout,但卻不需要采取任何行為,只需要報告信息即可。通過 suspectTimeout 屬性來實現。
  14. 可以通過 java.sql.Driver、javax.sql.DataSource 或 javax.sql.XADataSource 獲取連接。通過 dataSource 與 dataSourceJNDI 屬性實現這一點。
  15. 支持 XA 連接。
全部教程
主站蜘蛛池模板: 99最新网址 | 国产ww久久久久久久久久 | 久久黄色网 | 风流一代在线播放 | 亚洲欧美日韩综合精品网 | 日本精品视频一区二区三区 | 欧美成人午夜视频在线观看 | 亚洲综合在线另类色区奇米 | 乱码一区二区三区完整视频 | 免费视频精品一区二区 | 欧美japanese孕交 | 亚洲天堂久久精品 | 中文字幕亚洲欧美 | 免费大片黄在线观看yw | 国产成人精品视频免费 | 免费视频 久久久 | 高清一区二区三区 | 欧美一级毛片日本 | 欧美乱妇高清无乱码视频在线 | 五月狠狠亚洲小说专区 | 一道本不卡免费视频 | 免费看真人a一级毛片 | 一级啊片| 久草在线视频资源站 | 久久久久久综合一区中文字幕 | 国产美女流白浆的免费视 | 日本aaaa级毛片在线看 | 亚洲在线久久 | 久久久久久久久久免费视频 | 香蕉视频在线看 | 狠狠操在线观看 | 亚洲国产二区三区 | 欧美日韩中文一区二区三区 | 97精品在线播放 | 久久久亚洲欧美综合 | 日韩欧美视频在线一区二区 | 特级毛片全部免费播放a一级 | 国产精品18久久久久久久久久 | 久久精品亚洲精品国产欧美 | 国内精品亚洲 | 国产成人亚洲日本精品 |