[英]How good is Oracle Universal Connection Pool (UCP)
有沒有人有在實際生產負載下使用Oracle UCP的經驗? 它是否能很好地處理數據庫重新連接? 有任何多線程問題嗎? 有沒有人將它與C3P0或Apache DBCP進行比較?
我評估了UCP 11.2.0.1作為我們傳統連接池的替代品,我不推薦它 :
setPoolable()
) PoolDataSource
和一個ConnectionPool
- 兩者都是相關的,但調用方式不同,並提供稍微不同的功能。)
更新1(2014年4月) :
雖然略顯偏離主題:作為我評估的結果,我決定使用新的tomcat jdbc-pool - 它在幾個生產系統中運行幾年以來幾乎完美。 它設計精良,定期更新,可擴展,並且apache tomcat團隊在回答問題/修復問題方面做得很好 。
更新2(2016年7月) :
我現在強烈推薦HikariCP ,我目前支持所有其他連接池。
它的架構,注重正確性和性能真是太棒了。
我在一個系統中使用UCP,每秒約10次事務(平均值)和每秒360次事務處理峰值,並且沒有問題。 (每個應用服務器的數量為8台服務器)
但是,從UCP獲得的主要好處是,當您使用Oracle RAC和TAF / FAN功能,UCP與Dataguard或您在 appserver 之外運行時。
我已經描述了我在UCP中觀察到的性能/可伸縮性問題與隱式連接緩存相比: https : //stackoverflow.com/a/27512252/676877
我見過很多客戶在生產中使用UCP。 我沒有看到你關心的問題。 它在負載下表現很好。 並且可以處理重新連接。 重新連接策略是可配置的。 它也很好地支持RAC。
但使用商業連接池的真正好處是,有人對您遇到的任何問題負責。 你會驚訝於有多少人試圖開發和維護自己的連接池。
我剛剛使用基於Eclipse Link的應用程序嘗試了UCP,並且遇到了ORA-0100:每次都超出了最大打開游標數。 我已將參數MaxStatements設置為10,但這沒有任何效果。 我已經檢查了堆,並且有數百個T4CPreparedStatement對象存活但少於10個包裝語句。 所以在我無法控制的地方有一個巨大的語句緩存。
Tomcat jdbc池就像一個魅力。
通過使用連接池(IBM RAD)到oracle,我得到了更快的結果。與正常編程概念相比,在連接池屬性中,默認情況下,最大連接數為10,理想超時為180秒。
在這里我們可以設置最大用戶用戶訪問權限....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.