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);
         }
     }
 }
Beispiel #2
0
        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;
        }