簡體   English   中英

JDBC-連接被拒絕異常

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM