Video Screencast Help

How archiving task knows where to resume archiving?

Created: 10 Jul 2013 • Updated: 11 Jul 2013 | 6 comments
This issue has been solved. See solution.

Hi Experts,

I've got two questions to which I've not found any answer till now.

How the Exchange Mailbox Archiving Task knows where to resume with the scheduled archiving the next time?

Example: I've one Exchange mailbox server with four databases; let's say database 1-4 and the archiving task is scheduled from 5pm till 5am in the morning. During the day no archiving task are running. During the archiving period maybe only database 1-2 getting archived. So how the archiving task knows the next time where to continue so that the task is not starting again with database 1 and continue on database 3?

Thanks to all!


Operating Systems:

Comments 6 CommentsJump to latest comment

JesusWept3's picture

When the schedule starts, the first thing that happens is a message is posted to the A5 MSMQ for that exchange server saying "process server"

Archive task picks up the message, and finds all the enabled users for that exchange server
It then posts a message in the A5 queue for each user to archive, so if you have 2000 users on that exchange server that are enabled for archiving, you have 2000 messages

EV then goes through each archive, typically 5 at a time, depending on how many threads you allow on the task (five is the default)

it will then scans the mailbox for eligible items, once it has completed its scan, it then archives the first 1000 messages that are eligible, this can be set on the task properties under Items per pass, once it has archived 1000 messages, it then goes on to the next mailbox

If there are more items to archive , it marks it for another go around
Then once all mailboxes have been processed, it will then re-populate the A5 queue with archives that have items still to archive

So if you queued up 2000 mailboxes, and 120 of them have more than 1000 messages to archive, after all mailboxes are processed, it will queue the 120 archives etc, and it will keep requeueing them until either all eligible messages are archived OR until the schedule ends

IF the schedule ends, then the messages remain in the A5 queue.

When the schedule next kicks off, I believe it just clears the queue, and adds the Process Exchange Server message, and refills the queue with all enabled mailboxes, so I don't think really it does resuming.

Codec's picture

Thank you very much for your detailed explanation. In my case I believe some user mailboxes getting more frequently archived then others and I actually don’t know why.

One more question, when I restart the EVault services periodically does this have any negative impact of the archiving?

JesusWept3's picture

What you may want to do is try lowering the items per pass....
So lets say again you have 2000 mailboxes, and its only processing say 1000 of them
It could mean that you have archived 1,000,000 messages and time has just run out on attempting to process the rest of the mailboxes.

However if its 5pm to 5am, thats a 12 hour window, that would be 23 msgs archived per second or 83k an hour, which would seem a little slow.

But that being said, if you have huge mailboxes, like 10GB mailboxes, it can take quite a while to do the initial scan of the mailbox to determine the what items are eligible.

A really good test is to do a Run Now in Report Mode on all users, and see how long it takes to complete the report, if it takes like an hour to run, then that would suggest that you have one hour of your archiving window dedicated purely to scanning the mailboxes for eligible items.

If you have EV10 SP3 (actually maybe SP2, cant remember) you can go to
C:\Program Files (x86)\Enterprise Vault\Reports\Exchange Mailbox Archiving\exchServer\Scheduled\Scheduled_20130709\Full-130709-1700.htm

This will give you a pretty thorough Archiving Report of what the archiving did on that run

You could also try this query

SELECT  ESE.ExchangeComputer "Exchange Server",
        EMS.Name "Mailbox Store",
        DATEPART(hour, S.ArchivedDate) "Hour",
        COUNT(EME.MbxDisplayName) "Archives Processed",
        COUNT(S.IdTransaction) "Items Archived"
FROM    EnterpriseVaultDirectory.dbo.ExchangeMailboxEntry EME,
        EnterpriseVaultDirectory.dbo.ExchangeMailboxStore EMS,
        EnterpriseVaultDirectory.dbo.ExchangeServerEntry ESE,
        EVVSYourVaultStore_01.dbo.ArchivePoint AP,
        EVVSYourVaultStore_01.dbo.Saveset S
WHERE   S.ArchivePointIdentity = AP.ArchivePointIdentity
  AND   AP.ArchivePointId = EME.DefaultVaultId
  AND   EME.MbxStoreIdentity = EMS.MbxStoreIdentity
  AND   EMS.ExchangeServerIdentity = ESE.ExchangeServerIdentity
  AND   S.ArchivedDate > DATEADD(DAY, -1, GETDATE())
  AND   ESE.ExchangeComputer = 'Your Exchange Server'
GROUP BY ESE.ExchangeComputer, EMS.Name, DATEPART(hour, S.ArchivedDate)
JesusWept3's picture

And restarting the services typically does not have a negative impact, it can interrupt vault cache synchronizations, pst migrations, move archives etc, but typically these actions are handled gracefully

Its never a bad idea to restart the services every now and again, it can help for things like slow mapi memory leaks, the handle leak that exists in MonitoringMiddleTier etc

ManishN's picture

AFAIK when the task starts again, it will start on the last mailbox it processed assuming A5 queue is not empty or purged. If A5 queue is empty then it will start from the beginning



Codec's picture


Thanks a lot for your answers, now I see a bit more clearly.. ;-)