public async Task InvokeDataLossAsync( InvokeDataLossDescription invokeDataLossDescription, TimeSpan timeout, CancellationToken cancellationToken) { this.ThrowIfNotReady(); TestabilityTrace.TraceSource.WriteInfo( TraceType, "{0} - Processing {1} PartitionSelector: {2}, DataLossMode: {3}", invokeDataLossDescription.OperationId, ActionType.InvokeDataLoss, invokeDataLossDescription.PartitionSelector, invokeDataLossDescription.DataLossMode); try { await this.MessageProcessor.ProcessDataLossCommandAsync( invokeDataLossDescription.OperationId, invokeDataLossDescription.PartitionSelector, invokeDataLossDescription.DataLossMode, timeout, null); } catch (Exception e) { TestabilityTrace.TraceSource.WriteWarning(TraceType, "{0} - Exception occurred: {1}", invokeDataLossDescription.OperationId, e.Message); FaultAnalysisServiceUtility.ThrowTransientExceptionIfRetryable(e); throw; } TestabilityTrace.TraceSource.WriteInfo(TraceType, "{0} - Intent saved for {1}", invokeDataLossDescription.OperationId, ActionType.InvokeDataLoss); }
NativeCommon.IFabricAsyncOperationContext NativeFaultAnalysisService.IFabricFaultAnalysisService.BeginStartPartitionDataLoss(IntPtr invokeDataLossDescription, uint timeoutInMilliseconds, NativeCommon.IFabricAsyncOperationCallback callback) { var managedDataLossDescription = InvokeDataLossDescription.CreateFromNative(invokeDataLossDescription); TimeSpan managedTimeout = TimeSpan.FromMilliseconds(timeoutInMilliseconds); return(Utility.WrapNativeAsyncMethodImplementation( (cancellationToken) => this.InvokeDataLossAsync( managedDataLossDescription, managedTimeout, cancellationToken), callback, "FaultAnalysisServiceBroker.InvokeDataLossAsync", ThreadErrorMessageSetter)); }
private Task InvokeDataLossAsync(InvokeDataLossDescription dataLossDescription, TimeSpan timeout, CancellationToken cancellationToken) { return(this.service.InvokeDataLossAsync(dataLossDescription, timeout, cancellationToken)); }