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

業餘草發表於2014-07-16
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優勢

相關文章