2012-11-08 40 views
0

我正在努力瞭解持久訂閱。我明白,當一個Listener將自己註冊爲一個主題的持久訂閱者時,它會告訴JMS - 「嘿,我是持久訂閱者,從現在開始,如果我不在那裏,則需要將所有消息存儲在主題中,並將這些消息傳遞給我當我回來「什麼是JMS中的重複持久訂單

現在,如果是這樣的話,爲什麼兩個訂戶不能要求這種持久訂閱?

我錯過了什麼嗎?

回答

3

Java EE tutorial

持久訂戶引述通過指定由所述JMS提供者保持的 唯一標識寄存器持久訂閱。隨後的 具有相同身份的訂戶對象在前一訂戶留下的狀態下恢復訂購 。如果一個 持久訂閱沒有活動訂戶,則JMS提供商 將保留該訂閱的消息,直到它們被 訂閱收到或直到它們到期。

爲了使長期訂閱的多個用戶的工作1個持久訂閱經紀人則必須從創作主題的各個消息(由第一次用戶)存儲在其有效期內,即有可能永遠,如果沒有消息TTL被指定,因爲在任何時間點,新訂戶可以彈出並聲明它「錯過」的所有消息(即自訂閱創建以來的所有消息)。這是不可行的。

我可能在這裏錯過了這一點,但我看不到如何讓多個同時訂閱者共享訂閱比定義兩個單獨的訂閱更實用?

0

對重複持久訂閱的理解不正確。

持久訂閱並不意味着沒有多個訂閱者可以訂閱。這意味着沒有一個用戶可以擁有兩個不同的標識符以保證持久。