2011-07-28 18 views
1

我的Java應用程序確實使用數據庫連接池。其中一項功能今天開始因此錯誤而失敗: [BEA] [SQLServer JDBC Driver]沒有更多數據可供讀取如何修復錯誤:[BEA] [SQLServer JDBC Driver]沒有更多數據可供閱讀

這不會每天都發生。一旦我重新啓動我的應用程序服務器,看起來好幾天,這個錯誤再次回來。

任何人都遇到此錯誤?理由可能會有所不同,但我想知道減輕我的問題的各種理由。

回答

1

有可能數據庫或網絡連接短暫中斷?您可能預期任何當前打開的結果集隨後會因導致的錯誤而失效。

我從來沒有見過這個特定的錯誤,但後來我不使用BEA或SQL Server,但一個快速的谷歌確實顯示其他人建議這樣的原因。

當您使用連接池時,如果確實出現這樣的故障,那麼池中的所有連接都會變得「過時」或無效。我的應用程序服務器(WebSphere)可以選擇在檢測到特定錯誤後丟棄整個連接池。結果是,一個不幸的請求看到錯誤,但隨後的請求獲得一個新的連接並恢復。如果你沒有丟棄整個池,那麼當每個陳舊的連接被使用和丟棄時你會失敗。

我建議你調查看看a)。無論你的應用服務器是否具有這樣的能力b)。如果數據庫被反彈,應用程序如何響應,如果這複製了錯誤,那麼您可能找到了原因。

+0

thnq。我也做了一些'Google'。是的,你提到的似乎是可能的原因。處理WebLogic上過時或無效連接的一種方法是將Test Frequencty秒設置爲1,以便WebLogic每隔一秒測試一次連接,並用新的連接替換舊連接。 我在尋找是否也有其他原因。有人可能會遇到此錯誤可能是! – rajugaadu