public Task <OperationRetryControl> ReportOperationExceptionAsync(IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { IServiceRemotingClient effectiveClient = (client as IWrappingClient)?.InnerClient ?? client; return(_innerClientFactory.ReportOperationExceptionAsync(effectiveClient, exceptionInformation, retrySettings, cancellationToken)); }
public async Task <OperationRetryControl> ReportOperationExceptionAsync(IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { if (client is CorrelatingServiceRemotingClient correlatingClient) { client = correlatingClient.Inner; } return(await _inner.ReportOperationExceptionAsync(client, exceptionInformation, retrySettings, cancellationToken)); }
public async Task <OperationRetryControl> ReportOperationExceptionAsync( IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { return(await _serviceRemotingClientFactory.ReportOperationExceptionAsync( ((ServiceRemotingClient)client)._serviceRemotingClient, exceptionInformation, retrySettings, cancellationToken)); }
public Task <OperationRetryControl> ReportOperationExceptionAsync( IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) => m_serviceRemotingClientFactory.ReportOperationExceptionAsync( Unwrap(client), exceptionInformation, retrySettings, cancellationToken);
public Task <OperationRetryControl> ReportOperationExceptionAsync( IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { IServiceRemotingClient innerClient = ((ActivityServiceRemotingClient)client)._inner; return(_inner.ReportOperationExceptionAsync( innerClient, exceptionInformation, retrySettings, cancellationToken)); }
public Task <OperationRetryControl> ReportOperationExceptionAsync( IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { return(_InnerClientFactory.ReportOperationExceptionAsync( // This expects a an object of type FabricTransportServiceRemotingClient, hence // why we need to expose the InnerClient here. // https://github.com/Azure/service-fabric-services-and-actors-dotnet/issues/43 ((TrackingFabricTransportServiceRemotingClient)client).InnerClient, exceptionInformation, retrySettings, cancellationToken)); }
public async Task <OperationRetryControl> ReportOperationExceptionAsync(IServiceRemotingClient client, ExceptionInformation exceptionInformation, OperationRetrySettings retrySettings, CancellationToken cancellationToken) { var exceptionTelemetry = new ExceptionTelemetry(); exceptionTelemetry.Context.Operation.Id = CallContext.GetData(Constants.CorrelationId)?.ToString(); exceptionTelemetry.Exception = exceptionInformation.Exception; exceptionTelemetry.Message = "An unhandled exception occured"; _telemetryClient.TrackException(exceptionTelemetry); //Use the inner client since this is the one who does all the requests etc var wrapperClient = client as ServiceRemotingClientWrapper; var innerClient = await _inner.GetClientAsync(wrapperClient.ResolvedServicePartition, TargetReplicaSelector.Default, wrapperClient.ListenerName, retrySettings, cancellationToken); return(await _inner.ReportOperationExceptionAsync(innerClient, exceptionInformation, retrySettings, cancellationToken)); }