Dynamic memory for Exchange 2013 – why not supported?

Recommendation why to not to use dynamic disks on crucial applications might be explained quite easily – since system is saving new stuff on the disk, each save operation equals disk expansion – which takes valuable time. But what is so special with Exchange and dynamic memory which usage is also not recommended by Microsoft?

Bhargav Shukla and Paul Robichaux in their book “Core Solutions of Microsoft Exchange Server 2013 (MCSE)” explain why dynamic memory might be a problem for Exchange 2013, here is the piece that is very interesting:

“Exchange 2013 code is optimized to strike a balance between the efficient use of memory and reducing the I/O footprint. To achieve these efficiencies, Exchange relies on a calculated cache for each database being hosted on the server, as well as the memory reserved for Exchange subsystems. When dynamic memory is in use, this can result in incorrect memory calculations and it can cause Exchange to start with less memory than is available.”

So that makes sense, and here is the place where RAM allocation is shown in a really nice way:


Also interesting thing is that oversubscription of processor is supported, the recommended ratio is 1:1 (of course ;]), but supported is 2:1, so that would mean that for ex. 1 physical CPU of an ESX host, can be shared only between two machines (Exchange or any other).

Check mailbox replication network

Have you even wondering how to check over which network your mailbox replication is running?

Below command allows you to check that easily:

Get-MailboxDatabaseCopyStatus wrodb01 -ConnectionStatus | fl Name,OutgoingConnections,IncomingLogCopyingNetwork


Here is a nice article telling now to deal in a situation when after network outage replication network is suddenly changed to the MAPI one:


Enjoy 🙂

Removing mailbox database, word about arbitration mailboxes, and mailbox move statuses.

I was doing some work on my lab and re-configuring DAG on Exchange 2013, after creating new databases I decided to remove the old ones that were created along with exchange installation. I have moved all mailboxes, also I have checked if any archives are there, but surprisingly I got below error when trying to remove mailbox database through a PowerShell:

This mailbox database contains one or more mailboxes, mailbox plans, archive mailboxes, public folder mailboxes or
arbitration mailboxes. To get a list of all mailboxes in this database, run the command Get-Mailbox -Database
<Database ID>. To get a list of all mailbox plans in this database, run the command Get-MailboxPlan. To get a list of
archive mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Archive. To get a list of all
public folder mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -PublicFolder. To get a
list of all arbitration mailboxes in this database, run the command Get-Mailbox -Database <Database ID> -Arbitration.
To disable a non-arbitration mailbox so that you can delete the mailbox database, run the command Disable-Mailbox
<Mailbox ID>. To disable an archive mailbox so you can delete the mailbox database, run the command Disable-Mailbox
<Mailbox ID> -Archive. To disable a public folder mailbox so that you can delete the mailbox database, run the command
Disable-Mailbox <Mailbox ID> -PublicFolder. Arbitration mailboxes should be moved to another server; to do this, run
the command New-MoveRequest <parameters>. If this is the last server in the organization, run the command
Disable-Mailbox <Mailbox ID> -Arbitration -DisableLastArbitrationMailboxAllowed to disable the arbitration mailbox.
Mailbox plans should be moved to another server; to do this, run the command Set-MailboxPlan <MailboxPlan ID>
-Database <Database ID>.
    + CategoryInfo          : InvalidOperation: (Mailbox Database 0027173074:DatabaseIdParameter) [Remove-MailboxDatab
   ase], AssociatedUserMailboxExistException
    + FullyQualifiedErrorId : [Server=WROEX13A,RequestId=70a73e2f-b187-4e19-879d-67f6978b2d68,TimeStamp=8/29/2015 5:44
   :21 PM] [FailureCategory=Cmdlet-AssociatedUserMailboxExistException] E6FCD23B,Microsoft.Exchange.Management.System
    + PSComputerName        : wroex13a.zaic12.local


Same was with Exchange Administrative Center:


I must admit it was a…


…for me.

I was pretty sure I’ve moved everything:


Buuut… after getting into the actual message, noticed it was saying about one thing I haven’t checked – arbitration mailboxes.

More information about arbitration mailboxes can be found on Technet:


This one and many others are really nice described on this blog:


So after reading the actual error I have moved the mailboxes to a different database and removal worked properly:


giphyWhat you may have noticed are statuses of move requests above. “Finalization”, “Reliquished”, “Cleanup” and “InitialSeeding”, being honest I have never been patient enough to look on those statuses when working on production 🙂

So seeing those I was curios as previously all I remember to see were just a few statuses, decided to check help for that, unfortunately Technet is not explaining those under:


The only statuses described there are:


InitialSeeding” I guess is the first status that move is getting after being “Queued“, later status might go to “InProgress“, “Finalization” I guess is something that happens just after “CompletionInProgress” and “Cleanup“.

Here we can find even some more…:


…like “CopyingMessages” or “LoadingMessages“.

Status “Reliquished” was received while restarting “Microsoft Exchange Mailbox Replication” service (MRS) whilst mailbox was queued, or maybe I thought it was queued but changed to “InProgress” just a second after I checked that (or maybe I was just a little bit impatient :P)

Anyway, would be great if there was as article with explanation for each step within the move mailbox operation, also with those that have been mentioned here as we see that Technet is missing some of these.