Azure Service Bus and EPI

Vote:
 

I'm currently working on a deployment in Azure.

  • 2 instances of Web Sites is running the application
  • Azure Service Bus is setup and configured accordingly to http://world.episerver.com/documentation/Items/Developers-Guide/EPiServer-CMS/75/Deployment/Deployment-scenarios/Deploying-to-Azure-websites/

The broadcast of events is working, I can see the expected number of subscribers is registered (w3wp instances) on the topic configured and that messages is posted and retrieved… but…

I also encounter a lot of exceptions thrown from in calls made by EPI-->Service Bus trying to read messages , that is à EPiServer.Azure.Events.AzureEventProvider.ReceiveMessage…

This exception-behavior makes me a little pensive if this is an expected behavior, a bug in EPI or if specific configuration setting is missing (not explained in the deployment scenario)?

 

Best Regards Daniel

WindowsAzure.ServiceBus  2.6.1
EPiServer.CMS.UI.Core  7.19.1

Stack trace

2015-02-26 13:13:57,778 [12] ERROR EPiServer.Azure.Events.AzureEventProvider: Failed to receive message

System.OperationCanceledException: The operation cannot be performed because the entity has been closed or aborted. ---> Microsoft.ServiceBus.Messaging.MessagingException: The server was unable to process the request; please retry the operation. If the problem persists, please contact your Service Bus administrator and provide the tracking id. eba8fb61-695b-46f6-9890-0b6d3c842ba9_G28 ---> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The server was unable to process the request; please retry the operation. If the problem persists, please contact your Service Bus administrator and provide the tracking id. eba8fb61-695b-46f6-9890-0b6d3c842ba9_G28

 

Server stack trace:

   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.ThrowIfFaultMessage(Message wcfMessage)

   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.HandleMessageReceived(IAsyncResult result)

 

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.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.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.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.RequestAsyncResult.<>c__DisplayClass17.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.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.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.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)

   --- End of inner exception stack trace ---

   --- End of inner exception stack trace ---

 

Server stack trace:

   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)

   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.Messaging.Sbmp.SbmpMessageReceiver.OnEndTryReceive(IAsyncResult result, IEnumerable`1& messages)

   at Microsoft.ServiceBus.Messaging.MessageReceiver.RetryReceiveAsyncResult.b__72(RetryReceiveAsyncResult 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.Messaging.MessageReceiver.RetryReceiveAsyncResult.TryReceiveEnd(IAsyncResult r, IEnumerable`1& messages)

   at Microsoft.ServiceBus.Messaging.MessageReceiver.EndReceive(IAsyncResult result)

   at EPiServer.Azure.Events.AzureEventProvider.ReceiveMessage(IAsyncResult ar)

System.OperationCanceledException: The operation cannot be performed because the entity has been closed or aborted. ---> Microsoft.ServiceBus.Messaging.MessagingException: The server was unable to process the request; please retry the operation. If the problem persists, please contact your Service Bus administrator and provide the tracking id. eba8fb61-695b-46f6-9890-0b6d3c842ba9_G28 ---> System.ServiceModel.FaultException`1[System.ServiceModel.ExceptionDetail]: The server was unable to process the request; please retry the operation. If the problem persists, please contact your Service Bus administrator and provide the tracking id. eba8fb61-695b-46f6-9890-0b6d3c842ba9_G28

 

Server stack trace:

   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.ThrowIfFaultMessage(Message wcfMessage)

   at Microsoft.ServiceBus.Messaging.Sbmp.DuplexRequestBindingElement.DuplexRequestSessionChannel.HandleMessageReceived(IAsyncResult result)

 

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.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.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.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.RequestAsyncResult.<>c__DisplayClass17.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.Messaging.Sbmp.RedirectBindingElement.RedirectContainerChannelFactory`1.RedirectContainerSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.RequestAsyncResult.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.Messaging.Channels.ReconnectBindingElement.ReconnectChannelFactory`1.RequestSessionChannel.EndRequest(IAsyncResult result)

   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)

   --- End of inner exception stack trace ---

   --- End of inner exception stack trace ---

 

Server stack trace:

   at Microsoft.ServiceBus.Messaging.Sbmp.SbmpMessageReceiver.EndReceiveCommand(IAsyncResult result, IEnumerable`1& messages)

   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.Messaging.Sbmp.SbmpMessageReceiver.OnEndTryReceive(IAsyncResult result, IEnumerable`1& messages)

   at Microsoft.ServiceBus.Messaging.MessageReceiver.RetryReceiveAsyncResult.b__72(RetryReceiveAsyncResult 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.Messaging.MessageReceiver.RetryReceiveAsyncResult.TryReceiveEnd(IAsyncResult r, IEnumerable`1& messages)

   at Microsoft.ServiceBus.Messaging.MessageReceiver.EndReceive(IAsyncResult result)

   at EPiServer.Azure.Events.AzureEventProvider.ReceiveMessage(IAsyncResult ar)

 

#118125
Feb 27, 2015 12:30
Vote:
 

Some exceptions is expected under short intervals, it's a cloud service so there is a lot of retry logic to deal with rescaling and reassigning happening in Azure Service Bus and other network related resources. Maybe we should not log exceptions that automatically is fixed by a retry within shorter intervals.

I would not expect longer periods of errors unless Microsoft has stability issues posted on their status page, that could indicate that an error happening that the EPiServer provider does not deal with correctly or a bug in the code.

If you have support for Azure there is always the possibility to use the tracking token in the exception to get an answer of the error from Microsoft.

#118130
Feb 27, 2015 13:36
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.