天天看點

tomcat7的資料庫連接配接池tomcatjdbc的25個優勢

tomcat的jdbc連接配接池org.apache.tomcat.jdbc.pool更換或替代嗎apache commons dbcp連接配接池。

為什麼我們需要一個新的連接配接池?

這裡有幾個原因:

1.dbcp 1.x是單線程的。 為了成為線程安全的 共享鎖整個池在短時間内在兩個對象 配置設定和對象傳回。 注意,這并不适用 下議院dbcp 2.x。

2.dbcp 1.x可以緩慢。 邏輯cpu數量的增加和 并發線程的數量試圖借或傳回 對象的增加,性能會降低。 對高并發 系統可以顯著的影響。 請注意,這并不适用 commons dbcp 2.x。

3.dbcp超過60類。 tomcat-jdbc-pool核心是8類, 是以未來需求将需要更少的修改 的變化。 這是所有你需要運作連接配接池本身 休息是肉汁。

4.dbcp使用靜态接口。 這意味着你必須使用 正确的版本為給定的jre版本或您可能會看到nosuchmethodexception例外。

5.不值得重寫60多個類,當一個連接配接池 是一個更簡單的實作完成。

6.tomcat jdbc池實作檢索連接配接的能力 異步,無需增加額外的線程庫 本身。

7.tomcat jdbc池是tomcat子產品,這取決于tomcat朱莉·, 簡化的日志架構用于tomcat。

8.檢索底層連接配接使用javax.sql.pooledconnection接口。

9.饑餓的證明。 如果池是空的,和線程正在等待 傳回連接配接,連接配接時,将醒着 正确的線程等待。 大多數池隻會餓死。

10.特性增加了其他連接配接池實作

11.支援高并發環境和多核心/ cpu系統。

12.動态實作的接口,将支援java.sql和javax.sql接口 您的運作時環境(隻要你的jdbc驅動程式做了同樣的事情),即使編譯較低版本的jdk。

13.驗證間隔——我們不需要驗證我們每一次使用的連接配接,我們可以做到這一點 當我們借或傳回的連接配接,就不是我們可以配置比間隔更頻繁。

14.run-once查詢,一個可配置的查詢,将隻運作一次,當連接配接到資料庫。 非常有用的設定會話設定,您想要存在在整個時間建立連接配接。

15.配置自定義攔截器的能力。 這允許您編寫自定義攔截器來增強功能。 您可以使用攔截器收集查詢統計, 緩存會話狀态,重新連接配接失敗,重試查詢,緩存查詢結果,等等。 你的選擇是無盡的,攔截器是動态的,而不是綁定到一個jdk版本的java.sql/javax.sql接口。

16.高性能——我們将展示一些性能上的差異

17.非常簡單,由于非常簡化實作,行數和源檔案數量非常低,和c3p0相比 有200多個源檔案(上次我們檢查),tomcat jdbc 8的核心檔案,連接配接池本身就是一半 那 錯誤可能發生,他們會更快的追蹤,和更容易修複。 減少複雜性一直是重點從《盜夢空間》。

18.異步檢索——你可以連接配接你的連接配接請求和接收隊列future<connection>回來了。

19.更好的空閑連接配接處理。 而不是直接關閉連接配接,它仍然可以連接配接池大小和空閑池的智能算法。

20.你可以決定什麼時候連接配接被認為是放棄了,當池滿了,還是直接在逾時 通過指定一個池的使用門檻。

21.放棄連接配接計時器将重置/查詢活動發表聲明。 允許一個連接配接,在使用很長一段時間不逾時。 這是通過使用resetabandonedtimer

22.關閉連接配接後,連接配接為一個特定的時間。 年齡接近基于傳回到池中。

23.jmx通知,當連接配接被懷疑是廢棄的日志條目。 這類似于 的removeabandonedtimeout但它不采取任何行動,隻是報告的資訊。 這是通過使用suspecttimeout屬性。

24.連接配接可以從檢索java.sql.driver,javax.sql.datasource或javax.sql.xadatasource這是通過使用datasource和datasourcejndi屬性。

25.支援 jmx,支援 xa connection

tomcat7的資料庫連接配接池tomcatjdbc的25優勢