通常我們的框架類hibernate將處理數據庫連接的打開和關閉。如何測試數據庫連接是否成功關閉?
但是由於一些技術要求,我們需要通過jndi直接調用數據庫來打開另一個數據庫連接。
對於這種情況,我們如何徹底的測試,我們打開連接和密切的聯繫預期將正常工作?
旁邊放conn.close
在一個異常終於阻止?
通常我們的框架類hibernate將處理數據庫連接的打開和關閉。如何測試數據庫連接是否成功關閉?
但是由於一些技術要求,我們需要通過jndi直接調用數據庫來打開另一個數據庫連接。
對於這種情況,我們如何徹底的測試,我們打開連接和密切的聯繫預期將正常工作?
旁邊放conn.close
在一個異常終於阻止?
把conn.close()
放在finally
看起來不錯。我想在那之後,你可能會有另一個try-catch
塊,你試圖對數據庫執行查詢。如果您遇到異常情況,則表示(很有可能)您的連接已完全關閉。
只是一個想法,希望有所幫助!
編輯:只要是明確的,以後你我的意思是做這樣的事情finally塊(注意到,我的Java語法是有點生疏了,所以這可能不會是完全正確的,但你的想法哈哈 )
try
{
s.executeQuery(sqlString);
}
catch(SQLException e)
{
//examine error here to make sure it's because the connection is already closed
}
它實際上取決於數據庫。大多數數據庫顯示連接到它們的數量,也可以顯示連接到它的IP地址。所以,檢入數據庫。
否則,請在關閉後嘗試運行模擬查詢,它應該失敗,捕獲異常,以便它不關閉連接。
+1,關於檢查數據庫連接的好主意(儘管我不知道如何以編程的方式執行該操作 - 查找出來會很有趣!)。 – jadarnel27
嘿,剛剛發現[SQL Server](http://stackoverflow.com/questions/1248423/how-to-see-active-sql-server-connections) – jadarnel27
相關問題 - http://stackoverflow.com/questions/274822/programmatically-checking-for-open-connection-in-jdbc和http://stackoverflow.com/questions/5075824/close-connection-to- db-does-not-close-all-connections – adatapost