2013-03-26 292 views
1

在JMS發佈/訂閱模式中,兩個消費者訂閱相同的主題。一個消費者正在運行,但另一個消費者發送消息時,它仍然爲消費者保存未運行的消息?JMS消息持久

感謝

回答

1

我相信你可以的,如果你使用持久性的消息傳遞和長期訂閱的組合的話題。

來源:http://docs.oracle.com/javaee/5/tutorial/doc/bncdx.html

發佈/訂閱消息具有以下特點。

每個消息可以有多個消費者。

發佈者和訂閱者具有時間依賴性。 訂閱主題的客戶端只能使用 客戶端創建訂閱之後發佈的消息,並且訂閱者必須繼續使用 才能使用消息。

JMS API在一定程度上通過允許 訂閱者創建持久訂閱來放鬆這種時間依賴性,該訂閱在訂戶不活動時接收發送的消息 。持久訂閱 提供了隊列的靈活性和可靠性,但仍允許 客戶端向多個收件人發送消息。有關持久訂閱的更多信息 ,請參閱創建持久訂閱。

0

這是我們使用javax.jms.Session.createDurableSubscriber

的JMS提供者保留了這一長期訂閱的記錄,並確保了從主題的發佈者的所有消息被保留,直到它們被此持久訂閱者或承認他們有過期。