[英]Jdbc - connection refused Exception
我正在使用jdbc
將Java程序與Oracle
數據庫連接。 當對數據庫的命中率較低時,該程序運行良好,但是對數據庫的命中率增加時,我面臨以下異常:
java.sql.SQLException:Io異常:網絡適配器無法建立連接java.sql.SQLException:關閉的連接
附言:我在finally塊內已關閉連接。
try{
con.close();
}catch(Exception ex){
System.out.println(ex);
}
任何想法如何解決這個問題?
提前致謝
當數據庫命中率較低時,程序運行正常
似乎您的應用程序嘗試與數據庫建立連接,但是現有連接數等於數據庫允許的SESSIONS
數,因此數據庫拒絕建立其他連接。
要驗證相同的內容,您可以看到允許的和當前的會話詳細信息數量 ,對於Oracle,可以使用以下查詢:
數據庫配置為允許的會話數
SELECT name, value FROM v$parameter WHERE name = 'sessions'
當前活動的會話數
SELECT COUNT(*) FROM v$session
我不確定您的工作流程,但此問題看起來像是您嘗試使用封閉連接的連接泄漏問題。 每當您嘗試關閉連接時,請將其置於finally塊中。 因此,在出現異常情況時不要錯過它。 關閉結果集,語句和連接的順序應如下所示。
try
{
//open connection
//execute statement
//get resultset
//process resultset
}
catch(Exception e)
{
//Catch exception(using Exception just for example). It is a good programming practice to catch/throw specific exceptions instead of specifying super class Exception.
}
finally
{
rs.close();
stmt.close();
conn.close();
}
解釋是否粘貼了完整的代碼將很有幫助。 您也可以使用連接池,但是如果您沒有正確關閉或重新使用它們,您將面臨同樣的問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.