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));
        }
示例#2
0
        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));
 }
示例#4
0
 public Task <OperationRetryControl> ReportOperationExceptionAsync(
     IServiceRemotingClient client,
     ExceptionInformation exceptionInformation,
     OperationRetrySettings retrySettings,
     CancellationToken cancellationToken) =>
 m_serviceRemotingClientFactory.ReportOperationExceptionAsync(
     Unwrap(client),
     exceptionInformation,
     retrySettings,
     cancellationToken);
示例#5
0
        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));
 }
示例#7
0
        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));
        }