protected override void PostSaveAction() { using (MailboxReplicationServiceClient mailboxReplicationServiceClient = this.DataObject.CreateMRSClient(base.ConfigSession, this.mdbGuid, base.UnreachableMrsServers)) { mailboxReplicationServiceClient.RefreshMoveRequest(base.LocalADUser.ExchangeGuid, this.mdbGuid, MoveRequestNotification.Updated); } }
public static MRSHealthCheckOutcome VerifyServiceIsRespondingToRPCPing(string serverName, TestMRSHealth testMRSCmdlet = null) { MRSHealthCheckOutcome outcome = null; CommonUtils.CatchKnownExceptions(delegate { MailboxReplicationServiceClient mailboxReplicationServiceClient2; MailboxReplicationServiceClient mailboxReplicationServiceClient = mailboxReplicationServiceClient2 = MailboxReplicationServiceClient.Create(serverName); try { outcome = new MRSHealthCheckOutcome(serverName, MRSHealthCheckId.RPCPingCheck, true, Strings.MailboxReplicationServiceIsRespondingToRPCPing(mailboxReplicationServiceClient.ServerVersion.ToString())); } finally { if (mailboxReplicationServiceClient2 != null) { ((IDisposable)mailboxReplicationServiceClient2).Dispose(); } } }, delegate(Exception ex) { if (testMRSCmdlet != null) { testMRSCmdlet.MonitoringData.Events.Add(new MonitoringEvent("MSExchange Monitoring MRSHealth", 1002, EventTypeEnumeration.Error, Strings.MailboxReplicationServiceNotResponding(CommonUtils.FullExceptionMessage(ex, true)))); } outcome = new MRSHealthCheckOutcome(serverName, MRSHealthCheckId.RPCPingCheck, false, Strings.MailboxReplicationServiceNotResponding(CommonUtils.FullExceptionMessage(ex, true))); }); return(outcome); }
protected override void ValidateRequest(TransactionalRequestJob requestJob) { base.ValidateRequest(requestJob); base.ValidateRequestIsActive(requestJob); base.ValidateRequestProtectionStatus(requestJob); base.ValidateRequestIsRunnable(requestJob); base.ValidateRequestIsNotCancelled(requestJob); if (!requestJob.Suspend) { base.WriteVerbose(Strings.RequestNotSuspended(requestJob.Name)); } if (RequestJobStateNode.RequestStateIs(requestJob.StatusDetail, RequestState.Completion) && !RequestJobStateNode.RequestStateIs(requestJob.StatusDetail, RequestState.IncrementalSync)) { base.WriteError(new SuspendWhenReadyToCompleteCannotBeUsedDuringCompletionException(requestJob.Name), ErrorCategory.InvalidArgument, requestJob.Identity); } using (MailboxReplicationServiceClient mailboxReplicationServiceClient = requestJob.CreateMRSClient(base.ConfigSession, requestJob.WorkItemQueueMdb.ObjectGuid, base.UnreachableMrsServers)) { LocalizedString message = requestJob.Message; requestJob.Message = LocalizedString.Empty; try { List <ReportEntry> entries = null; using (mailboxReplicationServiceClient.ValidateAndPopulateRequestJob(requestJob, out entries)) { RequestTaskHelper.WriteReportEntries(requestJob.Name, entries, requestJob.Identity, new Task.TaskVerboseLoggingDelegate(base.WriteVerbose), new Task.TaskWarningLoggingDelegate(this.WriteWarning), new Task.TaskErrorLoggingDelegate(base.WriteError)); } } finally { requestJob.Message = message; } } }
protected override void PostSaveAction() { using (MailboxReplicationServiceClient mailboxReplicationServiceClient = this.DataObject.CreateMRSClient(base.ConfigSession, this.mdbGuid, base.UnreachableMrsServers)) { mailboxReplicationServiceClient.RefreshMoveRequest(base.LocalADUser.ExchangeGuid, this.mdbGuid, MoveRequestNotification.SuspendResume); } base.WriteVerbose(Strings.ResumeSuccessInformationalMessage(base.LocalADUser.ToString())); }
public static void TickleMRS(TransactionalRequestJob requestJob, MoveRequestNotification notification, Guid mdbGuid, ITopologyConfigurationSession configSession, List <string> unreachableServers) { using (MailboxReplicationServiceClient mailboxReplicationServiceClient = requestJob.CreateMRSClient(configSession, mdbGuid, unreachableServers)) { if (notification == MoveRequestNotification.Canceled && mailboxReplicationServiceClient.ServerVersion[3]) { mailboxReplicationServiceClient.RefreshMoveRequest2(requestJob.RequestGuid, mdbGuid, (int)requestJob.Flags, notification); } else { mailboxReplicationServiceClient.RefreshMoveRequest(requestJob.RequestGuid, mdbGuid, notification); } } }
protected override void PostSaveAction() { if (!base.ParameterSetName.Equals("MigrationMoveRequestQueue") && this.mrCondition == RemoveMoveRequest.MoveRequestCondition.None && this.DataObject != null) { TransactionalRequestJob dataObject = this.DataObject; using (MailboxReplicationServiceClient mailboxReplicationServiceClient = dataObject.CreateMRSClient(base.ConfigSession, this.mdbGuid, base.UnreachableMrsServers)) { if (mailboxReplicationServiceClient.ServerVersion[3]) { mailboxReplicationServiceClient.RefreshMoveRequest2(this.DataObject.ExchangeGuid, this.mdbGuid, (int)dataObject.Flags, MoveRequestNotification.Canceled); } else { mailboxReplicationServiceClient.RefreshMoveRequest(this.DataObject.ExchangeGuid, this.mdbGuid, MoveRequestNotification.Canceled); } } } }
public static MRSHealthCheckOutcome VerifyMRSProxyIsRespondingToWCFPing(string mrsServer, string mrsProxyServer, NetworkCredential credentials, TestMRSHealth testMRSCmdlet = null) { MRSHealth.< > c__DisplayClass7 CS$ < > 8__locals1 = new MRSHealth.< > c__DisplayClass7(); CS$ < > 8__locals1.mrsServer = mrsServer; CS$ < > 8__locals1.mrsProxyServer = mrsProxyServer; CS$ < > 8__locals1.credentials = credentials; CS$ < > 8__locals1.testMRSCmdlet = testMRSCmdlet; if (CS$ < > 8__locals1.mrsProxyServer == null) { CS$ < > 8__locals1.mrsProxyServer = CS$ < > 8__locals1.mrsServer; } CS$ < > 8__locals1.outcome = null; using (MailboxReplicationServiceClient mrsClient = MailboxReplicationServiceClient.Create(CS$ < > 8__locals1.mrsServer, MRSCapabilities.MrsProxyPing)) { CommonUtils.CatchKnownExceptions(delegate { if (CS$ < > 8__locals1.credentials != null) { mrsClient.PingMRSProxy(CS$ < > 8__locals1.mrsProxyServer, CS$ < > 8__locals1.credentials.UserName, CS$ < > 8__locals1.credentials.Password, CS$ < > 8__locals1.credentials.Domain, true); }
public static void GetUpdatedMRSRequestInfo(RequestStatisticsBase requestJob, bool diagnostic, string diagnosticArgument) { MoveRequestInfo requestInfo = null; CommonUtils.CatchKnownExceptions(delegate { string mrsServer = MailboxReplicationServiceClient.GetMrsServer(requestJob.WorkItemQueueMdb.ObjectGuid); using (MailboxReplicationServiceClient mailboxReplicationServiceClient = MailboxReplicationServiceClient.Create(mrsServer)) { requestInfo = mailboxReplicationServiceClient.GetMoveRequestInfo(requestJob.IdentifyingGuid); requestJob.UpdateThroughputFromMoveRequestInfo(requestInfo); if (RequestTaskHelper.NeedToUpdateJobPickupMessage()) { requestJob.UpdateMessageFromMoveRequestInfo(requestInfo); } if (diagnostic) { string jobPickupFailureMessage = (requestInfo == null) ? string.Empty : requestInfo.Message.ToString(); requestJob.PopulateDiagnosticInfo(new RequestStatisticsDiagnosticArgument(diagnosticArgument), jobPickupFailureMessage); } } }, null); }
protected virtual void InitializeMRSClient() { this.MRSClient = MailboxReplicationServiceClient.Create(this.ConfigSession, MRSJobType.RequestJobE15_TenantHint, this.MdbId.ObjectGuid, this.UnreachableMrsServers); }