Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Service Bus - "The server did not provide a meaningful reply; this might be caused by a premature session shutdown"

I'm following this implementation to receive Messages from service bus: http://msdn.microsoft.com/en-us/library/windowsazure/hh851744.aspx.

The problem is that sometimes I get this error and I can't figure out what can I do to solve this.

Microsoft.ServiceBus.Messaging.MessagingCommunicationException was unhandled by user code
  HResult=-2146233088
  Message=Error during communication with Service Bus. Check the connection information, then retry.
  Source=Microsoft.ServiceBus
  IsTransient=true
  StackTrace:
    Server stack trace: 
       at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)
       at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.ReceiveAsyncResult.<GetAsyncSteps>b__27(ReceiveAsyncResult thisPtr, IAsyncResult a)
       at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
    Exception rethrown at [0]: 
       at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
       at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.OnEndTryReceive(IAsyncResult result, IEnumerable`1& messages)
       at Microsoft.ServiceBus.Messaging.OpenOnceManager.OpenOnceManagerAsyncResult`1.OperationComplete(IAsyncResult result)
       at Microsoft.ServiceBus.Common.AsyncResult.AsyncCompletionWrapperCallback(IAsyncResult result)
    Exception rethrown at [1]: 
       at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at Microsoft.ServiceBus.Messaging.OpenOnceManager.OpenOnceManagerAsyncResult`1.End(IAsyncResult result, T& output)
       at Microsoft.ServiceBus.Messaging.OpenOnceManager.End[T](IAsyncResult result, T& output)
       at Microsoft.ServiceBus.Messaging.MessageReceiver.EndTryReceive(IAsyncResult result, IEnumerable`1& messages)
       at Microsoft.ServiceBus.Messaging.MessageReceiver.EndReceive(IAsyncResult result)
       at Microsoft.ServiceBus.Messaging.SubscriptionClient.EndReceive(IAsyncResult result)
       at Azure.WorkerCommandProcessor.WorkerRole.<>c__DisplayClass17.<messageHandler>b__10(IAsyncResult ar) in d:\TFS\DEV\Azure\Azure.Development\Azure.WorkerCommandProcessor\WorkerRole.cs:line 247
       at Microsoft.Practices.TransientFaultHandling.RetryPolicy.<>c__DisplayClass7.<ExecuteAction>b__4(IAsyncResult ar)
       at Microsoft.Practices.TransientFaultHandling.RetryPolicy.<>c__DisplayClass10`1.<>c__DisplayClass12.<ExecuteAction>b__c()
       at Microsoft.Practices.TransientFaultHandling.RetryPolicy.<>c__DisplayClass10`1.<ExecuteAction>b__d(Action a)
  InnerException: System.ServiceModel.CommunicationObjectFaultedException
       HResult=-2146233087
       Message=Internal Server Error: The server did not provide a meaningful reply; this might be caused by a premature session shutdown..TrackingId:bb1281ab-2334-4fa3-88bb-eadce71b0d37, Timestamp:07-01-2013 10:46:52
       Source=Microsoft.ServiceBus
       StackTrace:
         Server stack trace: 
         Exception rethrown at [0]: 
            at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.DuplexCorrelationAsyncResult.End(IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.EndRequest(IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<GetAsyncSteps>b__4(RequestAsyncResult thisPtr, IAsyncResult r)
            at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
         Exception rethrown at [1]: 
            at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
            at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
            at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.RequestAsyncResult.<>c__DisplayClass17.<GetAsyncSteps>b__a(RequestAsyncResult thisPtr, IAsyncResult r)
            at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
         Exception rethrown at [2]: 
            at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
            at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
            at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.EndRequest(IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.<GetAsyncSteps>b__4(RequestAsyncResult thisPtr, IAsyncResult r)
            at Microsoft.ServiceBus.Messaging.IteratorAsyncResult`1.StepCallback(IAsyncResult result)
         Exception rethrown at [3]: 
            at Microsoft.ServiceBus.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
            at Microsoft.ServiceBus.Common.AsyncResult`1.End(IAsyncResult asyncResult)
            at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)
            at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)
       InnerException: 
like image 551
Guilherme Ferreira Avatar asked Nov 04 '22 07:11

Guilherme Ferreira


1 Answers

That error most likely represents a timeout in some segment of the connection. This could be your client, the azure load balancers or the service bus machines actually hosting the messaging queues.

For this sort of transient error, the recommendation is to add a retry mechanism. This blog post has good guidance on that.

like image 196
Ramiro Berrelleza Avatar answered Nov 09 '22 15:11

Ramiro Berrelleza