2016-10-07 3 views
0
SubscriptionClient receiver = messageFactory.CreateSubscriptionClient("NewTopic", subscriberId); 
     TimeSpan e = new TimeSpan(0, 0, 5, 0, 0); 
     RetryExponential x = new RetryExponential(e,e,e,e,2); 
      OnMessageOptions options = new OnMessageOptions(); 
      options.AutoComplete = false; 
      //options.AutoRenewTimeout = TimeSpan.FromMinutes(1); 
      options.ExceptionReceived += options_ExceptionReceived; 
      receiver.OnMessage(receivedMessage => 
      { 
       try 
       { 

        Console.WriteLine(receivedMessage.Label); 

        bool t = receivedMessage.IsBodyConsumed; 
        Console.WriteLine(string.Format("Message received: {0}", receivedMessage.GetBody<string>())); 
        Console.WriteLine(receivedMessage.SequenceNumber); 
        Console.WriteLine(receivedMessage.TimeToLive); 
        Console.WriteLine(receivedMessage.To); 

        Console.WriteLine(receivedMessage.DeliveryCount); 



        receivedMessage.Abandon(); 
       } 
       catch (Exception) 
       { 
        // Indicates a problem, unlock message in subscription. 
        receivedMessage.Abandon(); 
       } 
      }, options); 

こんにちはすべて、 を数える私は2 としてmaxRetryCountを設定すると私はdelibretly最大再試行回数をチェックするためのonMessageにメッセージを放棄再試行してください。再試行回数を2に設定した後でも、メッセージを2回以上受信しています。 --TIAマックスはretryExponentialコンストラクタでRetryExponentialクラスで動作していない

答えて

0

それはあなたがdead lettering.

とハンドリングtransient faultが混乱しているようにあなたが使用している再試行メカニズムは、分散コンピューティングの問題に対処するためであるに見えます。スロットリングやサービスが利用できないように。

着信メッセージを処理できない場合は、通常、いくつか試行した後にそのメッセージをDLQに移動します。

+0

AHAは、コードreceiver.RetryPolicy = xのこの部分を逃した(そして、あなたは 'X' 変数を使用していません)。受信者に再試行ポリシーを割り当てています。これは現在の最大試行回数を制御しますか? – user1844634

+0

SubscriptionClientレシーバ= messageFactory.CreateSubscriptionClient( "NewTopic"、subscriberId); receiver.RetryPolicy = 新しいRetryExponential( minBackoff:TimeSpan.FromSeconds(0)、 maxBackoff:TimeSpan.FromSeconds(30)、 deltaBackoff:TimeSpan.FromSeconds(3)、terminationTimeBuffer:TimeSpan.FromSeconds(3)、 maxRetryCount。 3)。 10回再試行していますが。再試行のためにメッセージ – user1844634

+0

を放棄してください。https://msdn.microsoft.com/library/azure/microsoft.servicebus.messaging.queuedescription.maxdeliverycount.aspx – LoekD

関連する問題