2014-09-30 38 views
1

我們有一個JMS隊列,多個競爭客戶端正在從此隊列讀取數據。 一旦消息被髮送併成功處理,我們想發送確認消息(即客戶確認) 但是,我們要確保如果一個客戶端選擇了消息,另一個客戶端不應該從隊列中取出它。 activeMQ是否使用某種配置提供此功能?阻止競爭客戶從ActiveMQ獲取消息

此外: 如果郵件處理在拾取郵件後失敗,因此無法確認回來,在這種情況下,我們應該像其他客戶端線程來拾取郵件。是否可以開箱即用配置,可以指定超時值?

問候, JE

回答

1

你需要花一些時間來了解爲了理解爲什麼第一個問題是不是一個問題,一個Topic and a Qeueue之間的差異。

對於第二個問題,它取決於您使用的ACK模式以及您如何處理消息同步或異步。正常情況下,要處理要控制重新傳輸的位置,您可以在事務內部完成工作,並且如果處理失敗,那麼當TX回滾時將重新傳遞消息。 ActiveMQ支持客戶端和代理端的redelivery policies,用於控制消息在發送到DLQ之前將被重新發送的時間。