我有一些從Oracle檢索數據的JDBC代碼。java jdbc和oracle - 超出最大打開遊標數
在我的方法我用事先準備好的聲明,但我不關閉準備好的聲明。 爲了測試它,我在一個循環跑了這一點,果然我有一個例外:
ORA-01000: maximum open cursors exceeded
我的問題是在託管環境(代碼中使用連接池部署Java EE應用服務器上)的情況下:
- 應用程序會發生什麼?
- 除非連接被關閉/回收,否則永遠無法啓動對數據庫的任何SQL查詢嗎? (假設池中只有1個連接)
我假設池中的連接並沒有真正關閉 - oracle會話仍然存在。
感謝斯蒂芬 - 是的,這部分了解有關如何防止這種情況的發生 - 我的問題是更相關的是什麼,如果發生這種情況的影響 - 這是像泄漏的連接,可以使應用程序停頓 - 但在遊標被泄露的情況下 - 它是否會導致應用程序停頓? – akila 2011-12-19 02:18:17
@akila - ResultSet對象的泄漏(即未能關閉它們)將導致查詢失敗,並可能導致應用程序停頓。 – 2011-12-19 14:24:34
謝謝 - 我想我會嘗試使用一些應用程序服務器,並確認 – akila 2011-12-21 10:07:12