// Token: 0x060019A1 RID: 6561 RVA: 0x0006B1F0 File Offset: 0x000693F0
        private ISetGeneration GetSetGenerationCallback()
        {
            IReplicaInstanceManager replicaInstanceManager = this.ConfigArgs.ReplicaInstanceManager;

            if (replicaInstanceManager == null)
            {
                return(null);
            }
            ISetGeneration setGeneration = null;

            try
            {
                setGeneration = replicaInstanceManager.GetSetGenerationCallback(this.SeederArgs.InstanceGuid);
            }
            catch (TaskServerTransientException ex)
            {
                ExTraceGlobals.SeederServerTracer.TraceError <Guid, TaskServerTransientException>((long)this.GetHashCode(), "GetSetGenerationCallback ({0}): ReplicaInstanceManager threw exception: {1}", this.SeederArgs.InstanceGuid, ex);
                this.LogError(ex);
            }
            catch (TaskServerException ex2)
            {
                ExTraceGlobals.SeederServerTracer.TraceError <Guid, TaskServerException>((long)this.GetHashCode(), "GetSetGenerationCallback ({0}): ReplicaInstanceManager threw exception: {1}", this.SeederArgs.InstanceGuid, ex2);
                this.LogError(ex2);
            }
            if (setGeneration == null)
            {
                ExTraceGlobals.SeederServerTracer.TraceDebug <Guid>((long)this.GetHashCode(), "GetSetGenerationCallback ({0}): The RI is not running even after re-running ConfigUpdater. The configuration must have gone away.", this.SeederArgs.InstanceGuid);
                throw new SeederOperationAbortedException();
            }
            return(setGeneration);
        }
예제 #2
0
 // Token: 0x06001B0A RID: 6922 RVA: 0x00074298 File Offset: 0x00072498
 internal SeedManager(IReplicaInstanceManager replicaInstanceManager, SeederInstances seederInstances, int maxDurationMs)
 {
     ExTraceGlobals.SeederServerTracer.TraceDebug((long)this.GetHashCode(), "SeedManager instance is now being constructed using the test constructor.");
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.m_seederInstances        = seederInstances;
     this.m_cleaner = new SeederInstanceCleaner(this.m_seederInstances, maxDurationMs);
 }
예제 #3
0
 // Token: 0x06001B09 RID: 6921 RVA: 0x0007424C File Offset: 0x0007244C
 public SeedManager(IReplicaInstanceManager replicaInstanceManager)
 {
     ExTraceGlobals.SeederServerTracer.TraceDebug((long)this.GetHashCode(), "SeedManager instance is now being constructed.");
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.m_seederInstances        = new SeederInstances();
     this.m_cleaner = new SeederInstanceCleaner(this.m_seederInstances);
 }
예제 #4
0
 // Token: 0x06000190 RID: 400 RVA: 0x00009C59 File Offset: 0x00007E59
 internal ActiveManagerCore(IReplicaInstanceManager replicaInstanceManager, IReplayAdObjectLookup adLookup, IADConfig adConfig)
 {
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.AdLookup          = adLookup;
     this.m_registryMonitor = new RegistryMonitor(adConfig);
     ActiveManagerServerPerfmon.GetServerForDatabaseServerCalls.RawValue       = 0L;
     ActiveManagerServerPerfmon.GetServerForDatabaseServerCallsPerSec.RawValue = 0L;
 }
예제 #5
0
        // Token: 0x06001ACD RID: 6861 RVA: 0x000735B8 File Offset: 0x000717B8
        private ISetPassiveSeeding GetPassiveSeederStatusCallback()
        {
            IReplicaInstanceManager replicaInstanceManager      = Dependencies.ReplayCoreManager.ReplicaInstanceManager;
            ISetPassiveSeeding      passiveSeederStatusCallback = replicaInstanceManager.GetPassiveSeederStatusCallback(this.DatabaseGuid);

            if (passiveSeederStatusCallback == null)
            {
                this.TraceError("GetPassiveSeederStatusCallback(): The valid RI is not running. The RI might be present after a retry.", new object[0]);
                throw new SeedingSourceReplicaInstanceNotFoundException(this.DatabaseGuid, Environment.MachineName);
            }
            return(passiveSeederStatusCallback);
        }
예제 #6
0
 public AutoReseedContext(IVolumeManager volumeManager, IReplicaInstanceManager replicaInstanceManager, IADDatabaseAvailabilityGroup dag, IADDatabase database, IEnumerable <IADDatabase> databases, AmServerName targetServerName, IADServer targetServer, CopyStatusClientCachedEntry targetCopyStatus, IEnumerable <CopyStatusClientCachedEntry> dbCopyStatuses, IEnumerable <CopyStatusClientCachedEntry> serverCopyStatuses, Dictionary <AmServerName, IEnumerable <CopyStatusClientCachedEntry> > dagCopyStatuses, AutoReseedServerLimiter reseedLimiter, IMonitoringADConfig adConfig)
 {
     this.VolumeManager          = volumeManager;
     this.ReplicaInstanceManager = replicaInstanceManager;
     this.Dag              = dag;
     this.Database         = database;
     this.Databases        = databases;
     this.TargetServerName = targetServerName;
     this.TargetServer     = targetServer;
     this.TargetCopyStatus = targetCopyStatus;
     this.CopyStatusesForTargetDatabase = dbCopyStatuses;
     this.CopyStatusesForTargetServer   = serverCopyStatuses;
     this.CopyStatusesForDag            = dagCopyStatuses;
     this.ReseedLimiter = reseedLimiter;
     this.AdConfig      = adConfig;
 }
 // Token: 0x060019F7 RID: 6647 RVA: 0x0006C738 File Offset: 0x0006A938
 internal ConfigurationArgs(IReplayConfiguration config, IReplicaInstanceManager replicaInstanceManager, bool isTestCode)
 {
     this.IsTestEnvironment        = isTestCode;
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.m_identityGuid           = config.IdentityGuid;
     this.m_name                           = config.Name;
     this.m_logFilePrefix                  = config.LogFilePrefix;
     this.m_destinationSystemPath          = config.DestinationSystemPath;
     this.m_destinationEdbPath             = config.DestinationEdbPath;
     this.m_destinationLogPath             = config.DestinationLogPath;
     this.m_inspectorLogPath               = config.LogInspectorPath;
     this.m_ignoredLogsPath                = config.E00LogBackupPath;
     this.m_sourceMachine                  = config.SourceMachine;
     this.m_LogFileSuffix                  = config.LogFileSuffix;
     this.m_autoDagVolumesRootFolderPath   = config.AutoDagVolumesRootFolderPath;
     this.m_autoDagDatabasesRootFolderPath = config.AutoDagDatabasesRootFolderPath;
     this.m_autoDagDatabaseCopiesPerVolume = config.AutoDagDatabaseCopiesPerVolume;
     this.CircularLoggingEnabled           = config.CircularLoggingEnabled;
     this.BuildDebugString();
 }
예제 #8
0
 public DiskReclaimerManager(IMonitoringADConfigProvider adConfigProvider, ICopyStatusClientLookup statusLookup, IReplicaInstanceManager replicaInstanceManager) : base(TimeSpan.FromSeconds((double)RegistryParameters.DiskReclaimerDelayedStartInSecs), TimeSpan.FromSeconds((double)RegistryParameters.DiskReclaimerPollerIntervalInSecs), "DiskReclaimerManager")
 {
     DiskReclaimerManager.Tracer.TraceDebug((long)this.GetHashCode(), "DiskReclaimer instance being constructed");
     this.m_adConfigProvider       = adConfigProvider;
     this.m_statusLookup           = statusLookup;
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.m_volumeManager          = new VolumeManager();
 }
예제 #9
0
        // Token: 0x06001956 RID: 6486 RVA: 0x00068DD4 File Offset: 0x00066FD4
        private void UpdateVolumeInfoCopyState(Guid dbGuid)
        {
            IReplicaInstanceManager replicaInstanceManager = base.Context.ReplicaInstanceManager;

            base.Context.VolumeManager.UpdateVolumeInfoCopyState(dbGuid, replicaInstanceManager);
        }
예제 #10
0
 public AutoReseedManager(IMonitoringADConfigProvider adConfigProvider, ICopyStatusClientLookup statusLookup, IReplicaInstanceManager replicaInstanceManager) : base(TimeSpan.FromSeconds((double)RegistryParameters.AutoReseedManagerPollerIntervalInSecs), TimeSpan.FromSeconds((double)RegistryParameters.AutoReseedManagerPollerIntervalInSecs), "AutoReseedManager")
 {
     AutoReseedManager.Tracer.TraceDebug((long)this.GetHashCode(), "AutoReseedManager instance is now being constructed.");
     this.m_adConfigProvider       = adConfigProvider;
     this.m_statusLookup           = statusLookup;
     this.m_replicaInstanceManager = replicaInstanceManager;
     this.m_launcher      = new AutoReseedWorkflowLauncher();
     this.m_volumeManager = new VolumeManager();
 }
 // Token: 0x060019F6 RID: 6646 RVA: 0x0006C72C File Offset: 0x0006A92C
 public ConfigurationArgs(IReplayConfiguration config, IReplicaInstanceManager replicaInstanceManager) : this(config, replicaInstanceManager, false)
 {
 }