2015-09-23 100 views
1

拋出異常後,我們的Java MDB應用程序的MQ消息端點被暫停與消息如何防止Java MDB暫停IBM Websphere WAS 8.5上的錯誤?

CWWMQ0007W: The message endpoint <APP> has been paused by the system. Message delivery failed to the endpoint more than <N> times. 

我明白,這是每個應用規範,並且這種行爲是合理的許多應用。

在我們的例子中,我們希望MQ消息導致異常從隊列中消耗,並且應用程序仍在運行,即,處理下一個消息。

除了通過捕獲MDB onMessage方法中的任何Throwable外,是否有任何方法可以實現這種方式?

回答

2

閱讀此文章How WebSphere Application Server V8.x handles poison messages,它描述了各種情況。

如果您只想繼續處理而不停止端點,那麼請取消選中Stop endpoint if message delivery fails或將Number of sequential delivery failures before suspending endpoint設置爲激活規範配置中的某個更高值。您還必須在WebSphere MQ中配置Backout threshold (BOTHRESH)屬性。

這樣異常消息將由MQ放入DEAD.LETTER.QUEUE,並允許您處理下一個消息。

相關問題