我開發一個非常負載(請求)的應用程序。 我曾經在我的appliation以下技術:無法打開連接
- JPA/Hibernate作爲persistense層
- 春春道
- C3P0作爲連接池
我的問題是:我跑我的應用程序,當請求數增加時,拋出異常在「不能打開連接」的 附加層 我增加oracle max session但是我的問題沒有解決 我在C3p0 doc中檢測並且測試它的選項,但是我的問題沒有解決。
感謝您的關注
我開發一個非常負載(請求)的應用程序。 我曾經在我的appliation以下技術:無法打開連接
我的問題是:我跑我的應用程序,當請求數增加時,拋出異常在「不能打開連接」的 附加層 我增加oracle max session但是我的問題沒有解決 我在C3p0 doc中檢測並且測試它的選項,但是我的問題沒有解決。
感謝您的關注
您增加了Oracle上的最大會話數,但您並未增加連接池的最大大小。例外是告訴你你的游泳池已經用完了。要麼找到保持連接打開的狀態並儘早讓它們釋放,要麼增加池中最大活動連接的數量。
是否有可能爲您的DataSource發佈Spring配置。我希望是這樣的:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="${jdbc.connection.url}"/>
<property name="user" value="${jdbc.connection.username}"/>
<property name="password" value="${jdbc.connection.password}"/>
<property name="initialPoolSize" value="5"/>
<property name="minPoolSize" value="5"/>
<property name="maxPoolSize" value="100"/>
</bean>
隨着配置的其他bean,其中數據源是通過引用傳遞:
<bean id="mySampleDao" class="com.example.dao.MySampleDao">
<property name="dataSource" ref="dataSource" />
</bean>
這是你有什麼?
您使用的是哪個版本的Oracle?
超時是,我有上述結構。我正在使用'Oracle 11g'。 – MJM
我很難理解這個問題。你介意編輯它,並且將所有重要信息(連接池設置,甲骨文輪廓限制等),以便有足夠的清晰度? –
我C3P0設置爲:\t \t initialPoolSize = 5 了MinPoolSize = 5 maxPoolSize = 100 maxIdleTime = 30000 unreturnedConnectionTimeout = 90 propertyCycle = 60 acquireRetryDelay = 1000 maxConnectionAge = 0 acquireIncrement = 1個 acquireRetryAttempts = 0 當然 我測試C3p0幾個值和其他選項,但不改變。 – MJM
你可以發佈一個完整的堆棧跟蹤?這可能是因爲你有太多打開的連接,因爲你不知何故泄漏連接(不太可能與Hibernate),或者它可能是你突然因爲某些其他原因訪問數據庫(或許真的是將其關閉) – Pace