0
我正在開發一個財務應用程序,其中有很多代理非常頻繁地擊中數據庫(使用UI)。我正在使用Oracle UniversalConnectionPool進行數據庫連接。但很快它會與數據庫創建大量非活動會話。我沒有非活動會話的問題,因爲它將它們放入池中,但問題是在達到最大限制後,出現錯誤:「獲取連接時發生異常:oracle.ucp.UniversalConnectionPoolException:通用連接池中的所有連接都是在使用」這裏是代碼,請看看,並幫助Java-Oracle UniversalConnectionPool
private static PoolDataSource pds = null;
static UniversalConnectionPoolManager mgr = null;
try{
pds = PoolDataSourceFactory.getPoolDataSource();
pds.setConnectionFactoryClassName("oracle.jdbc.pool.OracleDataSource");
pds.setConnectionPoolName("JDBC_UCP");
pds.setInitialPoolSize(2);
pds.setMinPoolSize(2);
pds.setMaxPoolSize(10);
pds.setURL("jdbc:oracle:thin:@192.168.4.5:1521:CDIM");
pds.setUser("baseline");
pds.setPassword("baseline");
mgr = UniversalConnectionPoolManagerImpl.getUniversalConnectionPoolManager();
mgr.createConnectionPool((UniversalConnectionPoolAdapter)pds);
mgr.startConnectionPool("JDBC_UCP");
}catch(Exception e){
LogManager.error(DBConnection.class, "getConnection : " + e.getMessage());
}
得到這樣
pds.getConnection();
這樣
con.close();
con = null;
關閉連接連接
謝謝
請檢查連接是否正在關閉,以防數據庫調用異常。 – Jk1
不知道,你如何關閉你的連接。但是,如果您使用純JDBC,請確保在finally塊中執行此操作。另外,如果你使用任何ORM實現或者Spring DAO,他們會爲你做。 – IndoKnight
這已被妥善處理,最終關閉連接。 –