public ClusteredRecoveryJobState GetJobState(string identifier) { ClusteredRecoveryJobState state = new ClusteredRecoveryJobState(identifier); try { RecoveryConfiguration config = new RecoveryConfiguration(); config.Identifier = identifier; state.Identifier = identifier; if (_runningClusteredJobMap.ContainsKey(identifier)) { IClusteredRecoveryJob _job = ((IClusteredRecoveryJob)_runningClusteredJobMap[identifier]); state = _job.CurrentState(config) as ClusteredRecoveryJobState; } else { ClusterJobInfoObject clusterJobs = _configurationStore.GetRecoveryJobData(identifier); if (clusterJobs != null)// this should always be equyal { state = clusterJobs.ExecutionState; } else { state.Message = "Invalid identifier provided"; } // query db for } } catch (Exception ex) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsErrorEnabled) { LoggerManager.Instance.RecoveryLogger.Error("RecoveryManager.GetState()", ex.ToString()); } state.Message = ex.Message; } return(state); }
RecoveryOperationStatus IRecoveryManager.CancelRecoveryJob(string identifier) { RecoveryOperationStatus state = new RecoveryOperationStatus(RecoveryStatus.Failure); state.Message = "Failure during cancellation"; // change this default message try { RecoveryConfiguration config = new RecoveryConfiguration(); config.Identifier = identifier; state.JobIdentifier = identifier; if (_runningClusteredJobMap.ContainsKey(identifier)) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsInfoEnabled) { LoggerManager.Instance.RecoveryLogger.Info("RecoveryManager.CancelRecoveryJob()", "Explicit canceling initiated"); } IClusteredRecoveryJob _job = ((IClusteredRecoveryJob)_runningClusteredJobMap[identifier]); state = _job.Cancel(config, explicitCancel: true); // remove job from active config RemoveRunningJob(identifier); } else { state.Message = "Invalid identifier provided"; } } catch (Exception ex) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsErrorEnabled) { LoggerManager.Instance.RecoveryLogger.Error("RecoveryManager.Cancel()", ex.ToString()); } state.Message = ex.Message; } return(state); }
RecoveryOperationStatus[] IRecoveryManager.CancelAllRecoveryJobs() { RecoveryOperationStatus[] state = new RecoveryOperationStatus[_runningClusteredJobMap.Count];// new RecoveryOperationStatus(RecoveryStatusType.failure); //state.Message = "Failure during cancellation"; // change this default message try { foreach (string _key in _runningClusteredJobMap.Keys) { IClusteredRecoveryJob _job = ((IClusteredRecoveryJob)_runningClusteredJobMap[_key]); //state = _job.Cancel(_key); } } catch (Exception ex) { if (LoggerManager.Instance.RecoveryLogger != null && LoggerManager.Instance.RecoveryLogger.IsErrorEnabled) { LoggerManager.Instance.RecoveryLogger.Error("RecoveryManager.CancelAll()", ex.ToString()); } // state.Message = ex.Message; } return(state); }