// Token: 0x0600224A RID: 8778 RVA: 0x0009FE58 File Offset: 0x0009E058 public override void CopyLog(long fromNumber, string destinationFileName, out DateTime writeTimeUtc) { writeTimeUtc = (DateTime)ExDateTime.UtcNow; ExTraceGlobals.LogCopyClientTracer.TraceDebug <string>((long)this.GetHashCode(), "CopyLog {0} starting", destinationFileName); base.AllocateBuffer(); this.GetChannelLock(); try { this.OpenChannelIfFirstRequest(); CopyLogRequest msg = new CopyLogRequest(this.m_channel, this.DatabaseGuid, fromNumber); this.SendMessage(msg); ReplayStopwatch replayStopwatch = new ReplayStopwatch(); replayStopwatch.Start(); NetworkChannelMessage reply = this.GetReply(); CopyLogReply copyLogReply = reply as CopyLogReply; if (copyLogReply == null) { this.m_channel.ThrowUnexpectedMessage(reply); } long elapsedMilliseconds = replayStopwatch.ElapsedMilliseconds; ExTraceGlobals.LogCopyClientTracer.TraceDebug <long>((long)this.GetHashCode(), "Log Copy Response took: {0}ms", elapsedMilliseconds); this.m_endOfLog.SetValue(copyLogReply.EndOfLogGeneration, new DateTime?(copyLogReply.EndOfLogUtc)); writeTimeUtc = copyLogReply.LastWriteUtc; CheckSummer summer = null; if (this.m_channel.ChecksumDataTransfer) { summer = new CheckSummer(); } copyLogReply.ReceiveFile(destinationFileName, null, summer); elapsedMilliseconds = replayStopwatch.ElapsedMilliseconds; ExTraceGlobals.LogCopyClientTracer.TraceDebug <long>((long)this.GetHashCode(), "Transmit/Decomp took: {0}ms", elapsedMilliseconds); base.RecordThruput(copyLogReply.FileSize); ExchangeNetworkPerfmonCounters perfCounters = this.m_channel.PerfCounters; if (perfCounters != null) { perfCounters.RecordLogCopyThruputReceived(copyLogReply.FileSize); } replayStopwatch.Stop(); ExTraceGlobals.LogCopyClientTracer.TraceDebug((long)this.GetHashCode(), "{0}: LogCopy success: {1} for {2} after {3}ms", new object[] { ExDateTime.Now, replayStopwatch.ToString(), destinationFileName, replayStopwatch.ElapsedMilliseconds }); } finally { this.ReleaseChannelLock(); } }
// Token: 0x0600224B RID: 8779 RVA: 0x000A000C File Offset: 0x0009E20C internal static void CopyLog(Guid dbGuid, NetworkChannel ch, long logGen, string destinationFileName) { ExTraceGlobals.LogCopyClientTracer.TraceDebug <string>((long)ch.GetHashCode(), "static CopyLog {0} starting", destinationFileName); CopyLogRequest copyLogRequest = new CopyLogRequest(ch, dbGuid, logGen); copyLogRequest.Send(); ReplayStopwatch replayStopwatch = new ReplayStopwatch(); replayStopwatch.Start(); NetworkChannelMessage message = ch.GetMessage(); CopyLogReply copyLogReply = message as CopyLogReply; if (copyLogReply == null) { ch.ThrowUnexpectedMessage(message); } long elapsedMilliseconds = replayStopwatch.ElapsedMilliseconds; ExTraceGlobals.LogCopyClientTracer.TraceDebug <long>((long)ch.GetHashCode(), "Log Copy Response took: {0}ms", elapsedMilliseconds); CheckSummer summer = null; if (ch.ChecksumDataTransfer) { summer = new CheckSummer(); } copyLogReply.ReceiveFile(destinationFileName, null, summer); elapsedMilliseconds = replayStopwatch.ElapsedMilliseconds; ExTraceGlobals.LogCopyClientTracer.TraceDebug <long>((long)ch.GetHashCode(), "Transmit/Decomp took: {0}ms", elapsedMilliseconds); ExchangeNetworkPerfmonCounters perfCounters = ch.PerfCounters; if (perfCounters != null) { perfCounters.RecordLogCopyThruputReceived(copyLogReply.FileSize); } replayStopwatch.Stop(); ExTraceGlobals.LogCopyClientTracer.TraceDebug((long)ch.GetHashCode(), "{0}: LogCopy success: {1} for {2} after {3}ms", new object[] { ExDateTime.Now, replayStopwatch.ToString(), destinationFileName, replayStopwatch.ElapsedMilliseconds }); }