2011-12-08 242 views
0

我有兩個在Tomcat(6.0)下運行的Java Web應用程序,並使用Tomcat & c3p0連接池作爲Tomcat Data-source。如果我爲兩個不同的Oracle Connection定義兩個資源(server.xml)並將c3p0用於連接池低於我的,我們的應用程序使用,我的問題是:Tomcat連接池概念&c3p0連接池?

<Resource 
name="jdbc/OracleDB" 
auth="Container" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
driverClass="oracle.jdbc.OracleDriver" 
factory="xxx" 
jdbcUrl="jdbc:oracle:thin:@(DESCRIPTION= (LOAD_BALANCE=on)(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx) (PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=xxx)))" 
maxPoolSize="10" 
minPoolSize="0" 
maxIdleTime="60" 
maxConnectionAge="600" 
acquireIncrement="1" 
user="xxx=" 
password="xxx=" /> 


<Resource name="jdbc/xxx2DB" 
auth="Container" 
type="com.mchange.v2.c3p0.ComboPooledDataSource" 
driverClass="oracle.jdbc.OracleDriver" 
factory="xxx" 
jdbcUrl="jdbc:oracle:thin:@xxx:1527:xxx" 
maxPoolSize="10" 
minPoolSize="0" 
acquireIncrement="1" 
maxIdleTime="60" 
maxConnectionAge="600" 
user="xxx" 
password="xxx" 
/> 

Q1。 server.xml中的以下內容是否意味着Tomcat 內存中存在兩個連接池到兩個不同的Oracle實例?

Q2。我是否必須指定任何配置屬性(參考:http://www.mchange.com/projects/c3p0/index.html#configuration_properties),在我的情況下,我有一個到Oracle RAC實例的連接,另一個連接到單個Oracle實例。我應該在企業環境中考慮 任何其他配置屬性嗎?

Q3。下面的設置是否足夠有效?

Q4。如何啓用C3P0記錄(我只有在Tomcat的lib和上面設置的jar現在

任何意見

在此先感謝

回答

2

A1:??

A2不確定我是否有問題,但應該只指定那些默認值對您沒有意義的連接屬性。最好在單獨的c3p0.properties文件中執行此操作,並指定哪個連接哪個pro perty適用於。回答'其他配置屬性'的問題需要知道你的環境的具體情況。我建議您查看idle_test_period設置,因爲這些設置通常可能有錯誤的默認設置(請確保它與數據庫端的相關設置相匹配)。

A3:是的,這看起來不錯。

A4:您需要c3p0.properties指定日誌記錄的喜好或動態地將它們定義爲系統屬性。參考this chapter of the c3p0 manual

2

A1:

A2:權乍看起來。如果您使用分佈式事務,您需要小心RAC - 然後我相信您必須指定其他屬性。

A3:看起來不錯,但取決於你的任務和估計的負載,我會玩maxIdleTime,acquireIncrement和maxPoolSize。例如,對於60秒不活動狀態下的當前設置,連接將被關閉,以便在60秒後請求連接的下一個操作會在等待新連接打開時受到懲罰。

A4:http://www.mchange.com/projects/c3p0/index.html#configuring_logging

建議:

  1. 有從Tomcat 7,這可能在Tomcat的6被用作井的better connection pool。考慮,特別是如果你需要高性能

  2. 考慮connection testing使您的應用程序沒有得到(或獲得較少頻繁)異常時DB連接下降

  3. 這可能是最好封裝連接池,它的在你的應用程序和Tomcat中進行配置。這樣,應用程序WAR將自成一體,因此可以將其放入tomcat的wabapps目錄中。