Ejemplo n.º 1
0
        public static void Tickle(Guid mailboxGuid, Guid requestQueueMdbGuid, MoveRequestNotification operation)
        {
            MrsTracer.Service.Debug("Processing tickled mailbox: {0}, requestQueueMdbGuid: {1}, operation: {2}", new object[]
            {
                mailboxGuid,
                requestQueueMdbGuid,
                operation
            });
            if (MailboxSyncerJobs.ProcessJob(mailboxGuid, false, delegate(BaseJob job)
            {
                job.NeedToRefreshRequest = true;
            }))
            {
                return;
            }
            MRSQueue mrsqueue = MRSQueue.Get(requestQueueMdbGuid);

            switch (operation)
            {
            case MoveRequestNotification.Created:
            case MoveRequestNotification.Canceled:
                mrsqueue.Tickle(MRSQueue.ScanType.Heavy);
                return;

            case MoveRequestNotification.Updated:
            case MoveRequestNotification.SuspendResume:
                mrsqueue.Tickle(MRSQueue.ScanType.Light);
                mrsqueue.Tickle(MRSQueue.ScanType.Heavy);
                return;

            default:
                return;
            }
        }
 public void RefreshMoveRequest(Guid requestGuid, Guid mdbGuid, MoveRequestNotification op)
 {
     this.CallService(delegate()
     {
         this.Channel.RefreshMoveRequest(requestGuid, mdbGuid, op);
     });
 }
Ejemplo n.º 3
0
 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);
         }
     }
 }
 void IMailboxReplicationService.RefreshMoveRequest2(Guid requestGuid, Guid mdbGuid, int requestFlags, MoveRequestNotification op)
 {
     this.RefreshMoveRequest(requestGuid, mdbGuid, requestFlags, op);
 }
 void IMailboxReplicationService.RefreshMoveRequest(Guid requestGuid, Guid mdbGuid, MoveRequestNotification op)
 {
     this.RefreshMoveRequest(requestGuid, mdbGuid, 0, op);
 }
        private void RefreshMoveRequest(Guid mailboxGuid, Guid mdbGuid, int requestFlags, MoveRequestNotification op)
        {
            this.ForwardKnownExceptions(delegate
            {
                Guid empty = Guid.Empty;
                switch (op)
                {
                case MoveRequestNotification.Created:
                    MRSService.ProcessMoveRequestCreatedNotification(mailboxGuid, mdbGuid);
                    MRSService.Tickle(mailboxGuid, mdbGuid, op);
                    return;

                case MoveRequestNotification.Updated:
                    MRSService.Tickle(mailboxGuid, mdbGuid, op);
                    return;

                case MoveRequestNotification.Canceled:
                    MRSService.Tickle(mailboxGuid, mdbGuid, op);
                    return;

                case MoveRequestNotification.SuspendResume:
                    MRSService.Tickle(mailboxGuid, mdbGuid, op);
                    return;

                default:
                    return;
                }
            }, null);
        }