2014-03-31 127 views
0

我有一個消息消失的情況。我有以下執行服務總線:Windows服務總線消息消失

BrokeredMessage msg = new BrokeredMessage(messageContent); 
msg.TimeToLive = messageLiveTime; 

queueClient.SendAsync(message); 

// Later 

var messageOptions = new OnMessageOptions() {MaxConcurrentCalls = maxConcurrentCallsToCallBack}; 
client.OnMessage((incomingMessage) => 
{ 
    T content = CommonServiceBus.ExtractMessageContent<T>(incomingMessage); 

    if (content != null) 
    { 
     callBack(content); 
    } 
}, messageOptions); 

我有3個MaxConcurrentCalls,並且消息TTL是12小時;但是,我發送了大約10條消息(每條消息需要大約30秒才能完成),前9條消息得到處理,但第10條消息從未收到。

事情我已經嘗試:

  1. 的消息沒有被任何人所消耗。
  2. 該消息未到期(至少它們的TTL的設置是否正確)

如果我降低到1它變得更糟的MaxConcurrentCalls。有消息(或消息即將過期),但我不知道在哪裏或如何。

回答

1

我們遇到了類似的問題,事實證明,如果郵件比容器TTL短,則僅使用TTL消息。確保你沒有設置容器的TTL或者將它設置爲比你將使用的最大消息TTL更大的東西。