コード例 #1
0
 // Token: 0x060023BC RID: 9148 RVA: 0x000A77E8 File Offset: 0x000A59E8
 internal void SetReportingCallbacksForAcll(ISetBroken setBroken, ISetDisconnected setDisconnected)
 {
     lock (this)
     {
         this.m_setBrokenForAcll       = setBroken;
         this.m_setDisconnectedForAcll = setDisconnected;
     }
 }
コード例 #2
0
 public PassiveBlockMode(LogCopier copier, ISetBroken setBroken, int maxConsumerDepthInBytes)
 {
     this.Copier                    = copier;
     this.Configuration             = copier.Configuration;
     this.m_maxConsumerDepthInBytes = maxConsumerDepthInBytes;
     this.m_maxBuffersInUse         = PassiveBlockMode.GetMaxBuffersPerDatabase(this.m_maxConsumerDepthInBytes);
     this.m_consumer                = new GranularWriter(copier, copier.PerfmonCounters, copier.Configuration, setBroken);
     this.m_timer                   = new Timer(new TimerCallback(this.WakeUpCallback));
 }
コード例 #3
0
 public void UseSetBrokenForIOFailures(ISetBroken setBroken)
 {
     this.m_setBroken = setBroken;
 }
コード例 #4
0
 // Token: 0x06001D0B RID: 7435 RVA: 0x00082924 File Offset: 0x00080B24
 protected ShipControl(string fromDir, string fromPrefix, long fromNumber, string fromSuffix, ISetBroken setBroken, IReplicaProgress replicaProgress)
 {
     this.m_className          = base.GetType().Name;
     this.m_fromDir            = fromDir;
     this.m_fromPrefix         = fromPrefix;
     this.m_fromNumber         = fromNumber;
     this.m_fromSuffix         = fromSuffix;
     this.m_shipLogsSetBroken  = new ShipLogsSetBroken(setBroken, null);
     this.m_setBroken          = this.m_shipLogsSetBroken;
     this.m_replicaProgress    = replicaProgress;
     this.m_countdownToGapTest = 6L;
 }
コード例 #5
0
 // Token: 0x06001D3E RID: 7486 RVA: 0x00083E24 File Offset: 0x00082024
 public LogInspector(IPerfmonCounters perfmonCounters, IReplayConfiguration replayConfig, string logfileBaseName, string logfileSuffix, string replayDir, FileState fileState, ILogTruncater logTruncater, ISetBroken setBroken, ISetGeneration setGeneration, IReplicaProgress replicaProgress, NetworkPath netPath, bool runningAcll) : base(replayConfig.LogInspectorPath, logfileBaseName, 0L, logfileSuffix, setBroken, replicaProgress)
 {
     this.Config          = replayConfig;
     this.m_logTruncater  = logTruncater;
     this.m_replayDir     = replayDir;
     this.m_fileState     = fileState;
     this.m_setGeneration = setGeneration;
     this.m_logVerifier   = new LogVerifier(logfileBaseName);
     ExTraceGlobals.LogInspectorTracer.TraceDebug((long)this.GetHashCode(), "LogInspector initialized - inspectDir = {0}, logfileBaseName = {1}, replayDir = {2}, fileState = {3}", new object[]
     {
         replayConfig.LogInspectorPath,
         logfileBaseName,
         replayDir,
         fileState
     });
     ExTraceGlobals.PFDTracer.TracePfd((long)this.GetHashCode(), "LogInspector initialized - inspectDir = {0}, logfileBaseName = {1}, replayDir = {2}, fileState = {3}", new object[]
     {
         replayConfig.LogInspectorPath,
         logfileBaseName,
         replayDir,
         fileState
     });
     this.Config.ReplayState.InspectorGenerationNumber = this.m_fileState.HighestGenerationPresent;
     this.m_logSource = LogSource.Construct(replayConfig, perfmonCounters, netPath, LogSource.GetLogShipTimeoutInMsec(runningAcll));
     if (0L != this.m_fileState.HighestGenerationPresent)
     {
         this.m_logContinuityChecker.Initialize(this.m_fileState.HighestGenerationPresent, this.Config.DestinationLogPath, this.Config.LogFilePrefix, logfileSuffix);
     }
 }
コード例 #6
0
 // Token: 0x060023BB RID: 9147 RVA: 0x000A77D0 File Offset: 0x000A59D0
 public ShipLogsSetBroken(ISetBroken setBroken, ISetDisconnected setDisconnected)
 {
     this.m_setBroken       = setBroken;
     this.m_setDisconnected = setDisconnected;
 }
コード例 #7
0
 // Token: 0x06001D3D RID: 7485 RVA: 0x00083DFC File Offset: 0x00081FFC
 public LogInspector(IPerfmonCounters perfmonCounters, IReplayConfiguration replayConfig, string logfileBaseName, string logfileSuffix, string replayDir, FileState fileState, ILogTruncater logTruncater, ISetBroken setBroken, ISetGeneration setGeneration, IReplicaProgress replicaProgress, NetworkPath netPath) : this(perfmonCounters, replayConfig, logfileBaseName, logfileSuffix, replayDir, fileState, logTruncater, setBroken, setGeneration, replicaProgress, netPath, false)
 {
 }
コード例 #8
0
 // Token: 0x06001D4C RID: 7500 RVA: 0x000844ED File Offset: 0x000826ED
 internal void SetReportingCallback(ISetBroken setBroken)
 {
     this.m_shipLogsSetBroken.SetReportingCallbacksForAcll(setBroken, null);
 }
コード例 #9
0
        // Token: 0x06000A21 RID: 2593 RVA: 0x0002F2C0 File Offset: 0x0002D4C0
        public static void MoveLogFiles(ReplayConfiguration config, FileState fileState, ISetBroken setBroken, long corruptLogGen)
        {
            string    text = Path.Combine(config.E00LogBackupPath, "SkippedLogs");
            Exception ex   = DirectoryOperations.TryCreateDirectory(text);

            if (ex != null)
            {
                setBroken.SetBroken(FailureTag.Configuration, ReplayEventLogConstants.Tuple_FailedToCreateDirectory, ex, new string[]
                {
                    text,
                    ex.ToString()
                });
                return;
            }
            string currentDateString = FileOperations.GetCurrentDateString();
            string text2             = Path.Combine(text, currentDateString);

            ex = DirectoryOperations.TryCreateDirectory(text2);
            if (ex != null)
            {
                setBroken.SetBroken(FailureTag.Configuration, ReplayEventLogConstants.Tuple_FailedToCreateDirectory, ex, new string[]
                {
                    text2,
                    ex.ToString()
                });
                return;
            }
            string destinationLogPath = config.DestinationLogPath;
            string text3 = string.Empty;
            string path  = string.Empty;

            try
            {
                ReplayEventLogConstants.Tuple_MovingFilesToRestartLogStream.LogEvent(null, new object[]
                {
                    config.DatabaseName,
                    EseHelper.MakeLogfileName(config.LogFilePrefix, config.LogFileSuffix, corruptLogGen),
                    text2
                });
                foreach (string text4 in Directory.GetFiles(destinationLogPath, "*." + config.LogExtension))
                {
                    text3 = text4;
                    path  = Path.GetFileName(text4);
                    long logfileGenerationFromFilePath = EseHelper.GetLogfileGenerationFromFilePath(text4, config.LogFilePrefix);
                    if (logfileGenerationFromFilePath >= fileState.LowestGenerationRequired)
                    {
                        ExTraceGlobals.ReplicaInstanceTracer.TraceError <string>(0L, "MoveLogFiles(): Cannot move logfile '{0}' because it is required by the database.", text4);
                    }
                    else
                    {
                        File.Move(text4, Path.Combine(text2, path));
                    }
                }
                foreach (string text5 in Directory.GetFiles(destinationLogPath, "*.jsl"))
                {
                    text3 = text5;
                    path  = Path.GetFileName(text5);
                    File.Move(text5, Path.Combine(text2, path));
                }
                ExTraceGlobals.ReplicaInstanceTracer.TraceError <string>(0L, "Moved log files successfully from '{0}'", config.DestinationLogPath);
            }
            catch (IOException ex2)
            {
                ExTraceGlobals.ReplicaInstanceTracer.TraceError <string, string, IOException>(0L, "Moving file '{0}' to '{1}' failed with exception: {2}", text3, text2, ex2);
                setBroken.SetBroken(ReplicaInstance.IOExceptionToFailureTag(ex2), ReplayEventLogConstants.Tuple_CouldNotDeleteLogFile, ex2, new string[]
                {
                    text3,
                    ex2.ToString()
                });
            }
            catch (UnauthorizedAccessException ex3)
            {
                ExTraceGlobals.ReplicaInstanceTracer.TraceError <string, string, UnauthorizedAccessException>(0L, "Moving file '{0}' to '{1}' failed with exception: {2}", text3, text2, ex3);
                setBroken.SetBroken(FailureTag.AlertOnly, ReplayEventLogConstants.Tuple_CouldNotDeleteLogFile, ex3, new string[]
                {
                    text3,
                    ex3.ToString()
                });
            }
        }
コード例 #10
0
 public LogTruncater(IPerfmonCounters perfmonCounters, IFileChecker fileChecker, ISetBroken setBroken, IReplayConfiguration configuration, ITruncationConfiguration truncationConfig, IReplicaInstanceContext replicaInstanceContext, ManualOneShotEvent shuttingDownEvent) : base(TimeSpan.Zero, TimeSpan.FromMilliseconds((double)RegistryParameters.LogTruncationTimerDuration), "LogTruncater")
 {
     this.m_perfmonCounters        = perfmonCounters;
     this.m_fileChecker            = fileChecker;
     this.m_configuration          = configuration;
     this.m_truncationConfig       = truncationConfig;
     this.m_replicaInstanceContext = replicaInstanceContext;
     this.m_shuttingDownEvent      = shuttingDownEvent;
     this.m_localInspectorGen      = this.m_configuration.ReplayState.InspectorGenerationNumber;
     this.m_localReplayerGen       = this.m_configuration.ReplayState.ReplayGenerationNumber;
     this.m_perfmonCounters.TruncatedGenerationNumber = this.m_genTruncatedLocally;
     LogTruncater.Tracer.TraceDebug <IReplayConfiguration>((long)this.GetHashCode(), "LogTruncater initialized - configuration = {0}", configuration);
 }
コード例 #11
0
 public GranularWriter(LogCopier logCopier, IPerfmonCounters perfmonCounters, IReplayConfiguration replayConfiguration, ISetBroken setBroken)
 {
     this.m_logCopier       = logCopier;
     this.m_setBroken       = setBroken;
     this.m_perfmonCounters = perfmonCounters;
     this.m_config          = replayConfiguration;
     this.m_perfmonCounters.GranularReplication = 0L;
 }