public void SubmitRecoveryState(object state) { if (state != null) { RecoveryJobStateBase jobState = (RecoveryJobStateBase)state; try { if (_databaseJobMap.ContainsKey(jobState.Identifier)) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsInfoEnabled) { LoggerManager.Instance.RecoveryLogger.Info("ShardRecoveryManager.SubmitState()", jobState.Identifier + " : " + jobState.Name + " : " + jobState.PercentageExecution + " : " + jobState.Name + " : " + jobState.MessageTime + " : " + jobState.Status); } lock (_mutex) { //update status _databaseJobMap[jobState.Identifier].ExecutionState.UpdateEntityState(jobState); } } } catch (Exception ex) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsErrorEnabled) { LoggerManager.Instance.RecoveryLogger.Error("ShardRecoveryManager.SubmitState()", jobState.Identifier + " : " + ex.ToString()); } } finally { CheckJobState(jobState.Identifier, false); } } }
internal RecoveryJobBase(string identifier, string database, List <string> collectionList, RecoveryJobType jobType, RecoveryPersistenceManager _manager, string cluster) { _jobIdentifier = identifier; _database = database; _collections = collectionList; _jobType = jobType; string entityName = database; switch (jobType) { case RecoveryJobType.ConfigBackup: case RecoveryJobType.ConfigRestore: entityName = "ConfigServer"; break; } _executionStatus = new RecoveryJobStateBase(identifier, entityName); _persistenceManager = _manager; _cluster = cluster; }