2013-04-22 122 views
0

我完全熟悉連接池庫,比如c3p0等等......我很酷,有一個由Web容器(如Tomcat和WebSphere)管理的連接池。第三方連接池軟件?

但是,如果您擁有獨立的批處理模式Java應用程序(某種主方法),並且希望它能夠利用連接池?我的意思是,如果獨立程序管理池,它將運行,創建池,使用連接然後退出,破壞池。如果您希望應用程序運行並利用現有的連接池,這並不會真正爲您購買任何東西。

我問的是,是否有一層軟件可以在數據庫和可以管理連接池的Java命令行應用程序之間運行?該軟件將爲您的Java應用程序提供一個端口,以便通過JDBC訪問連接池。任何帶有指向此端口的JDBC URL的應用程序都可以使用連接池。現在,即使沒有中間件服務器(tomcat,glassfish),獨立應用程序也可以使用連接池。

聽起來很酷。它存在嗎?它是否存在對Oracle :)

+1

獨立批處理應用程序可能只需要一個或兩個連接。爲什麼不簡單地完全避免使用一個池,或者使用最少數量連接的本地池? – 2013-07-28 08:18:38

+0

獨立應用程序可能需要連接池,原因與在容器中運行的應用程序需要一個連接池相同:不會因爲其他原因導致單個連接超時或出現故障時發生崩潰。不需要直接使用連接,應用程序在需要時使用DataSource獲取良好的連接。 DataSource然後提供孤立連接無法提供的可靠性。 – user250343 2016-07-14 02:27:14

回答

0

我沒有測試它,但它看起來有趣:

DBPool : Java Database Connection Pooling

是什麼了DBPool?

一個基於Java的數據庫連接池實用程序,支持 基於時間的到期,語句緩存,連接驗證以及使用池管理器的簡單配置 。

0

正如我瞭解您的設置池必須是一個獨立的過程。這意味着批處理使用正確的JDBC驅動程序作爲數據庫,但應該與池進行通信。這意味着,池必須談論數據庫的專有協議。通過合理的努力,一件產品無法做到這一點。

因此,您不應該要求一個通用的解決方案,而是針對特定數據庫的解決方案。

對於PostgreSQL,例如有兩個這樣的池:PgBouncer和pgpool。