Retrying count in Reliable Messaging
I have implemented relieable messaging for my service, its working fine. But when the service is down, client is trying to connect to service only 3 times, after that its throwing, server unvailable exception.
I have tried various option in reliable messaging setting, following is the sample configuration for reliable session setting i have used.
<
reliableSessionacknowledgementInterval="00:10:10"enableFlowControl="true"inactivityTimeout="00:10:00"maxPendingChannels="128"maxRetryCount="8"maxTransferWindowSize="32"ordered="true" />In all the cases, its trying only 3 times in case of Jan CTP. In Feb CTP, its trying only two times, after that its throwing the server unavailable error. The exact inner exception is,
{"Unable to connect to the remote server"}
Is there is any other setting to specify exactly how many times client can try to connect to service before it throws server unavaible exception.
Thanks in advance,
Saravana.
[2512 byte] By [
Saravana] at [2007-12-20]
I tried with the sample provided in Windows SDK for reliable messaging.This is happening when client is trying to send createsequence message, its trying to createSequence message to service only three times. Afterwards, its throwing exception. Exact exception is shown below,
System.ServiceModel.ServerTooBusyException was unhandled
Message="The Http service located at http://<machinename>/Service/service.svc is too busy. "
Source="mscorlib"
StackTrace:
Server stack trace:
at System.ServiceModel.Channels.HttpChannelUtilities.ProcessGetResponseWebException(WebException webException, WebRequest request)
at System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.WaitForReply(TimeSpan timeout)
at System.ServiceModel.Channels.RequestChannel.Request(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ClientReliableChannelBinder`1.RequestClientReliableChannelBinder`1.OnRequest(TRequestChannel channel, Message message, TimeSpan timeout, MaskingMode maskingMode)
at System.ServiceModel.Channels.ClientReliableChannelBinder`1.Request(Message message, TimeSpan timeout, MaskingMode maskingMode)
at System.ServiceModel.Channels.ClientReliableSession.Open(TimeSpan timeout)
at System.ServiceModel.Channels.ReliableRequestSessionChannel.OnOpen(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open(TimeSpan timeout)
at System.ServiceModel.Channels.CommunicationObject.Open()
at System.ServiceModel.Channels.DatagramAdapter.DatagramAdapterChannelBase`1.GetChannel()
at System.ServiceModel.Channels.DatagramAdapter.RequestDatagramAdapterChannel.Request(Message request, TimeSpan timeout)
at System.ServiceModel.Dispatcher.RequestChannelBinder.Send(Message message, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs, TimeSpan timeout)
at System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs)
at System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation)
at System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage message)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at RMProxy.IOrder.Add(Double n1, Double n2)
at RMProxy.OrderProxy.Add(Double n1, Double n2) in D:\SoapBox\Downloads\ReliableSession\CS\client\Service References\RMProxy.cs:line 72
at Microsoft.ServiceModel.Samples.Client.Main() in D:\SoapBox\Downloads\ReliableSession\CS\client\client.cs:line 27
at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Threading.ThreadHelper.ThreadStart()
Let me know if you need any other details.
Regards
Saravana
We tried OpenTimeout property on the binding section in FebCTP, but still we are facing the same issue.
Steps to replicate the issue,
- Stop the IIS service where WCF Service is hosted.
- Run the WCF client, after two CreateSequence tries (we checked it using Fiddler), it will throw endpoint not found exception or server is too busy exception.
We have tried this using both customBinding and wsHttpBinding. Please let me know if you need more details on this.
Thanks
Saravana
Actually send timeout and Max retry count matters.
Anyway ,i worked with Reliable Message team and Sarvana,This is bug in FEB CTP,we fixed this problem in recent build
-Thank you
Madhu