2017-10-12 68 views
0

望着Service Remoting article,我可以看到以下內容:什麼「瞬態異常」由ServiceProxy處理?

如果出現瞬態異常,代理重試呼叫。

什麼具體被認爲是由代理的「瞬態異常」?

在我們處理超時,InvalidOperation(See here),FabricNotReadableException(See here)和FabricTransientExceptions身處地爲操作可靠集合了過去 - 我們應該做同樣爲我們的使用SF Remoting的其他服務互動?

作爲一個例子:

//Get Proxy 
var serviceProxy = ServiceProxy.Create<IService>(GetServiceUri(), GetPartitionKey()); 
//Make Call to method which has no internal handling for transient SF failures... 
//Should this be wrapped with a retry policy? 
var result = await serviceProxy.GetAll(); 
+1

它可能是某處[在代碼中](https://github.com/Azure/service-fabric-services-and-actors-dotnet/blob/develop/src/Microsoft.ServiceFabric.Services.Remoting/Client /ServiceRemotingExceptionHandler.cs#L118),所以也許可以得到代碼,然後進行一些挖掘。 –

+0

@PeterBons謝謝!我沒有意識到這一切都是開源的......看起來它包含了FabricNotPrimaryException,當主移動時以及FabricTransientException和FabricNotReadableException的所有實例 –

回答

0

具體根據異常處理程序用於在遠程(ServiceRemotingExceptionHandler.cs),看來該代理將處理如下錯誤:

  • FabricNotPrimaryException當主移動
  • FabricTransientException異常
  • FabricNotReadableException異常

您可能仍希望自己處理Timeout異常。