2014-03-27 85 views
1

我使用Spring連接到WebSphere MQ話題持久訂閱:的WebSphere MQ持久主題超時

<jms:message-driven-channel-adapter 
    channel="springChannel" 
    destination-name="wmqTopic" 
    connection-factory="connectionFactory" 
    destination-resolver="destinationResolver" 
    subscription-durable="true" 
    durable-subscription-name="myDurableSubscriptionName" /> 

由於這是一個持久訂閱,我Concious酒店,雖然該應用程序沒有簽約WMQ中的主題是我下次連接的消息堆積在磁盤上或內存中。我擔心的結果是,除非在某處指定了超時,否則WMQ將耗盡內存或磁盤空間。

有沒有人知道我的選項是什麼指定超時?它應該在message-driven-channel-adapter或WMQ中,還是應該在發佈之前在消息上設置過期時間?

+0

只是好奇 - 爲什麼不使用非持久訂閱,當你沒有消息過期? – Shashi

+0

@Shashi在發生故障時,如果我們沒有過期消息,恢復時間可能會很長。我們寧願失去信息並更快地恢復。顯然,理想的解決方案是快速處理所有消息,但目前無法實現。 – James

回答

2

或者它應該在發佈之前在消息上設置過期嗎?

是。

+0

謝謝Gary。您是否確定無論發佈是否過期,都無法配置主題使郵件過期(即主題上任何郵件的全局超時)?此外,一旦斷開連接,永久訂閱會永遠持續(直到手動刪除),或者WMQ中是否存在一個參數,用於在X時間範圍內未連接的情況下移除持久訂閱? – James

+0

您將不得不諮詢IBM的文檔;我的答案來自純粹的JMS(標準)視角。 –