public Exception TrySendLogWithStandardHandling(long logGen, NetworkChannel ch) { Exception result = null; try { this.SendLog(logGen, ch, null); } catch (FileIOonSourceException ex) { result = ex; Exception innerException = ex.InnerException; bool flag = false; if (innerException is CorruptLogDetectedException) { flag = true; } else if (innerException is IOException) { int hresult = 0; if (FileOperations.IsCorruptedIOException(innerException as IOException, out hresult)) { flag = true; int num; FileOperations.ConvertHResultToWin32(hresult, out num); ReplayEventLogConstants.Tuple_FatalIOErrorEncountered.LogEvent(this.Identity, new object[] { this.DatabaseName, ex.FileFullPath, innerException.Message, num, innerException.ToString() }); } } if (flag) { ReplayEventLogConstants.Tuple_LogCopierErrorOnSourceTriggerFailover.LogEvent(this.Identity, new object[] { this.DatabaseName, ch.PartnerNodeName, innerException.Message }); this.ProcessSourceLogCorruption(logGen, innerException); } else { ReplayEventLogConstants.Tuple_LogCopierErrorOnSource.LogEvent(this.Identity, new object[] { this.DatabaseName, ch.PartnerNodeName, ex.Message }); } ch.SendException(ex); } return(result); }
// Token: 0x06001ABD RID: 6845 RVA: 0x00072630 File Offset: 0x00070830 public static void ProcessSourceSideException(Exception ex, NetworkChannel channel) { if (ex is NetworkTransportException || ex is OperationCanceledException) { channel.Close(); return; } channel.SendException(ex); }
public void SendE00Generation(NetworkChannel channel) { long logGeneration = 0L; string e00Filename = this.BuildLogFileName(0L); Exception e00Generation = this.GetE00Generation(out logGeneration, e00Filename); if (e00Generation != null) { channel.SendException(e00Generation); return; } new GetE00GenerationReply(channel) { LogGeneration = logGeneration }.Send(); }