0
當消費者由於某些致命錯誤而停止運行時,沒有任何xml與該消費者相關。 但是,如果我們忽略致命錯誤並且消費者不下來,那麼與該消費者有關的所有消息將被取消。消費者因甲骨文高級隊列而宕機
但是,致命錯誤來的消息不會被取消,它將作爲數據或信息的損失。
如何避免數據丟失?
當消費者由於某些致命錯誤而停止運行時,沒有任何xml與該消費者相關。 但是,如果我們忽略致命錯誤並且消費者不下來,那麼與該消費者有關的所有消息將被取消。消費者因甲骨文高級隊列而宕機
但是,致命錯誤來的消息不會被取消,它將作爲數據或信息的損失。
如何避免數據丟失?
在消費者的最高級別使用一個WHEN OTHERS THEN封裝異常處理程序,並且如果發現致命錯誤,則將足夠的信息寫入由某人(支持團隊,管理員等等)監視的「錯誤」隊列)足以識別導致致命的消息,因此可以「重新處理」或以某種方式處理。
感謝您的回覆..絕大多數的例外情況都處理完畢。一些如何致命的錯誤可能是由於web服務down.A很多的信息是在那裏。如果我們想手動做是可以的。但是我們怎麼能重新處理那個致命的錯誤已經通過編碼僅僅來處理的消息。如何處理它?我們是否創建臨時表來存儲致命的消息或什麼? – vashisht
將足夠的信息推送到錯誤隊列(臨時表只是一個基本錯誤隊列)以再次標識消息後,您可以添加一個計數器並讓重試使用者每n分鐘嘗試重新處理它x次,直到它無論是經歷還是失敗 - 此時都有人需要調查。 –
Oracle AQ有哪些替代方案? – vashisht