2012-12-18 164 views
0

我正在使用c3p0連接池,並且我有minPoolSize = 1 maxPoolSize = 5和InitialPoolSize = 5。c3p0連接池查詢

當服務器啓動時,我可以看到它有5個連接。但是,當第一個要求來臨時,不是。增加到10個。從那時起,它保持10個,因爲這10個連接處理該負載。現在我的問題是,即使maxPoolSize是5,爲什麼它會創建另一個5 conn。在游泳池。是否因爲initialPoolSize?

謝謝

回答

0

它聽起來像你有兩個活動池。你調用getConnection(用戶,密碼)而不是默認的getConnection()? c3p0爲每次認證創建一個不同的池。另外,您可以通過JMX關注主動認證的數量。

initialPoolSize不應該與它有任何關係。另外,嘗試瞭解c3p0問題時,總是一個好主意,以確保活動配置符合您的預期。再次,您可以通過JMX查看大多數配置參數,或者更簡單地檢查您的日誌文件。初始化時,c3p0 DataSources在INFO中轉儲其配置。

+0

我已驗證,在jmx中只有一個池,服務器啓動時總共爲5 conn(maxPoolSize),但只要req來了,它就會加倍(10)並永遠停留在那裏(2小時測試) – user509755

+0

one pool or一個DataSource?每個DataSource可以有多個池,每個DataSource都是一個mbean。您在JMX中查看哪些屬性? maxPoolSize的運行時間值是多少?請比較numConnectionsAllUsers和numConnectionsDefaultUser。他們是一樣的嗎? –

+0

你是對的,有多個池,因爲它是爲diff用戶配置的。對於混淆抱歉,應該閱讀文件 – user509755