簡體   English   中英

如何處理陳舊的連接?

[英]How to handle stale connections?

Ours是一個J2EE應用程序,在大型機/ DB2后端的Websphere 6.1上使用Struts-EJB-Hibernate,最近已轉移到生產環境。

當用戶第一次登錄應用程序或有時間歇性地發生此異常時, 我們會收到過時的連接異常

在第二次嘗試用戶能夠登錄到應用程序。 我得到的確切錯誤消息是

empcom.ibm.websphere.ce.cm.StaleConnectionException: 
Execution failed due to a distribution protocol error that caused deallocation of the conversation.  
The command requested could not be completed because of a permanent error condition detected at the target system.  
DB2ConnectionCorrelator: AC100B80.A260.090107181206

我在webshere設置中啟用了PRETEST選項,並將間隔設置為60秒,但我仍然遇到此問題..

請分享您的觀點並幫助我

如果需要,我可以給你更多細節。

我們在其中一個生產系統上首次登錄時遇到了同樣的問題。 解決方案是將連接池的最小大小設置為零。

將最小大小設置為大於零的值(例如,一個),當檢測到無效時,從池中刪除超時連接,但其中一些(在上面的示例中,最后一個)保留在池中(如果最小大小為1,則一個連接保留在池中,即使它還不是有效連接)。

下次應用程序請求連接時,將提供無效的連接,從而導致異常。

將最小大小設置為零,從池中刪除所有無效連接,因此提供給應用程序的連接不可能有效(因為,如果它有效,它將保留在池中,如果不是,從池中刪除)。

使用預測試可能是一種有效的替代方案,但需要額外的努力,因為每次為應用程序提供連接時,都會進行測試。

我得到了答案

使用pretest舊連接和新連接我們可以解決這個問題..預測試查詢應該是一個基本的查詢(從...中選擇sysdate),它隨時運行..

和時間間隔應該是最大的,因此應用程序服務器不會得到開銷

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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