2016-03-24 52 views
1

我有一個訂閱主題的隊列。我的MQTT客戶端將消息發佈到主題。我的Java程序使用JCSMP API從隊列中消費消息。但是,我注意到我的Java程序從Queue接收到的消息的傳遞模式是DIRECT或有時是NON-PERSISTENT。那麼,這是否意味着我的消息不會被緩存到SAN?是否可以爲我的隊列設置主題訂閱,以便從主題接收並存儲在此隊列中的所有消息都將保持持久性?隊列訂閱主題時的持久郵件傳遞模式

謝謝。

回答

2

當Solace設備收到一條消息,該消息已發佈到與在隊列上設置的主題訂閱相匹配的主題時,消息將被傳遞到隊列並被假脫機。如果此消息最初是使用DIRECT傳送模式設置的,則傳送模式將被提升爲NON-PERSISTENT。非持久消息被視爲保證消息並將被假脫機。

如果您收到NON-PERSISTENT消息,則會將消息正確地假脫機到隊列中。

當Solace設備收到發佈到與直接在客戶端上應用的主題訂閱相匹配的主題的消息時,它們的消息將不會被假脫機,而是直接傳遞給客戶端而不會排入隊列。如果此消息最初是以非持續或持續發送模式發佈的,則它將被降級並由客戶作爲DIRECT接收。

如果您正在接收傳遞模式爲DIRECT的郵件,請驗證客戶端是否未直接訂閱該主題。該主題應該應用於客戶端綁定的隊列中。

+0

感謝您的澄清。 –