我正在使用oracle數據庫。假設我在運行在eclipse中的tomcat服務器上部署的java web應用程序中使用了jdbc連接,並且在使用它後忘記在代碼中關閉此連接。然後,如果我停止tomcat服務器,連接是否會被釋放並且一切正常,否則會導致oracle數據庫中出現一些副作用,例如某些死連接,並逐漸導致數據庫關閉?如何調試oracle連接?
以及如何調試這類問題?我的意思是,是否有任何工具可以讓我看到數據庫中的活動(和「死」,如果有的話)連接,以及他們的客戶端地址等?
我正在使用oracle數據庫。假設我在運行在eclipse中的tomcat服務器上部署的java web應用程序中使用了jdbc連接,並且在使用它後忘記在代碼中關閉此連接。然後,如果我停止tomcat服務器,連接是否會被釋放並且一切正常,否則會導致oracle數據庫中出現一些副作用,例如某些死連接,並逐漸導致數據庫關閉?如何調試oracle連接?
以及如何調試這類問題?我的意思是,是否有任何工具可以讓我看到數據庫中的活動(和「死」,如果有的話)連接,以及他們的客戶端地址等?
您可以在Tomcat的META-INF/context.xml文件中設置數據庫連接池。它可以進行設置,以便廢棄的數據庫連接被刪除並回收。
更多信息:
Apache Tomcat 7 JNDI Datasource HOW-TO
您可以查詢Oracle的V $ SESSION和V $過程,瞭解連接,如果他們鎖定,發起連接的進程的名稱,機器名稱和其他信息。
你可以在你的數據庫
select * from v$session
使用和發現死會話然後
kill session 'sid,serial#'