2010-03-08 101 views
1

所以我有一個connection pool設置。這是非常好的,因爲我有一個真正需要它的應用程序。但是,我想知道的是,是否可以與其他J2SE應用程序共享此連接池?這是否值得,而不是根據每個應用程序需求創建連接池?如果這將是謹慎的,我怎麼能做到這一點?Java:與其他J2SE應用程序共享連接池...?

回答

3

不難具有在單個JVM連接池做多件事情 - 那就是

有趣的部分是應用程序服務器(使用JNDI扔跨類加載器的對象)每天做什麼,當你在連接池與需要它的客戶端代碼分離的JVM,因爲這不會立即允許從池中請求並獲得連接並在之後返回。

基本上,你有兩個選擇:

  1. 做你所有的JDBC命令,通過網絡遠程請求。這很可能意味着數據將通過網絡傳播兩次,從數據庫到連接池,然後從連接池傳輸到您的應用程序。如果數據庫連接是非常昂貴的對象,那麼這可能是一個可行的解決方案。

  2. 使用RMI將連接對象從連接池JVM獲取到自己的機器。這是一個非常昂貴的操作,但是據我所知,可以包含實際的驅動程序類,從而允許連接池提供到應用程序JVM不知道的數據庫的連接。對我來說,這隻有在數據庫連接非常昂貴時纔有意義,或者需要能夠在部署後支持額外的數據庫,而無需更改原始部署。

請注意,有連接池的主要原因是因爲連接創建成本很高,使用很短,然後丟棄。一些數據庫比其他數據庫更多MySQl是(或者當我嘗試時)非常便宜,所以它可能是最簡單的做法。

所以。首先:衡量您的連接池及時購買您的產品,然後考慮是否值得您進一步集中化。

相關問題