Tuesday, October 13, 2009

Exchange 2010 - What is an arbitration mailbox?

If you found this searching you most likely found out about arbitration mailboxes much the way most people will. By either finding out they accidentally deleted them, or by finding out that you need to move, disable or remove them in order to delete a database, or uninstall Exchange 2010, or remove the mailbox role.

From TechNet:
"Arbitration mailboxes are used for managing approval workflow. For example, an arbitration mailbox is used for handling moderated recipients and distribution group membership approval."

This is part of the Moderated Transport features that are new in Exchange 2010.

A lot more information about using arbitration mailboxes can be found here: Understanding Moderated Transport

In short, arbitration mailboxes are where messages awaiting moderation are stored, as well as information about moderator decisions are kept.

Now back to getting over the two most common immediate needs for arbitration mailboxes.

I deleted my arbitration accounts from my AD
This isn't really all that bad. I did it the first time I installed Ex2010 and had a panic moment before I found the fixes. Pretty simply, you need to rerun the AD preparation steps from the 2010 media.

Setup.com /PrepareAD
Setup.com /PrepareSchema
Setup.com /PrepareDomain

Only /prepareAD is required to recreate these accounts, but I left the other steps in here as well just for documentations sake.

I am trying to remove Exchange 2010, or a database, or the Mailbox role and am being told there are arbitration mailboxes preventing me from continuing
This is also not too bad. When you try to remove the first DB in Exchange 2010, there are a few arbitration mailboxes that will prevent database deletion. You have the choice of moving, removing, or mail-disable these mailboxes. Since you cannot see these in the Exchange Management Console, you need to launch Exchange Management Shell (EMS)

Get-Mailbox -Arbitration

This will list the arbitration mailboxes. To narrow it down to a specific database, you can edit this to:

Get-Mailbox -Arbitration -Database DB1

If you are used to PowerShell cmdlets in Exchange 2007, one big change to recall here is that specifying servername\databasename won't work anymore. This is one of the reasons why the database names need to be unique to the organization - so you don't have to specify servers anymore!

Once you have your "get" command returning the correct list of mailboxes, it's time to move, disable or remove them. Disabling the last arbitration mailbox is not allowed, so I recommend moving them as the first preference here.

Move:
Get-Mailbox -Arbitration -Database db1 | New-MoveRequest -TargetDatabase db2

Disable:
Get-Mailbox -Arbitration -Database db1 | Disable-Mailbox -Arbitration

Remove:
Get-Mailbox -Arbitration -Database db1 | Remove-Mailbox -Arbitration -RemoveLastArbitrationMailboxAllowed

If there is enough interest a little later, I may do a write up on using the arbitration mailboxes, but at this point there is still a lot of other Exchange 2010 things to learn and figure out!

25 comments:

Unknown said...

I could not get the move command to work, I found the site below with the new-moverequest command that worked great.

http://markswinkels.nl/page/3/

Chris Lehr said...

Matt,

Thanks for letting me know - the Powershell commands were missing their "pipes" - I updated the post to reflect this.

Unknown said...

I tried to run setup.com /prepareAD to fix the missing/corrupted system mailboxes but it doesn't do anything.

Unknown said...

I tried to run setup.com /prepareAD to fix the missing/corrupted system mailboxes, but nothing comes up.
is it really necessary to have these arbitration mailboxes?

Matt said...

Hello Chris,
Thank you for the article. You got me going the right direction. A couple of additions for you:

1. You can check the status of the move request by running: Get-MoveRequest -SourceDatabase "Database Name". Make sure that all move requests have a status of Completed.

2. Before you can actually remove the database you will have to remove the Move Requests. To do this MAKE SURE that the requests have completed then run the following: Get-MoveRequest -SourceDatabase "Database Name" | Remove-MoveRequest.

3. You should now be able to remove the database from the Management Shell. Don't forget to go to the server in question and delete the old database files that are located in the file structure.

Unknown said...

Chris and Robin, thanks so much for you easy to follow writeup... You have save half a head of hair for me, as I was really feeling the burn of pulling it out....Thanks

Donny D

Unknown said...

Great post, thanks for the help.

Unknown said...
This comment has been removed by a blog administrator.
Unknown said...

Two mailbox servers. One has a default database with 3 arbitration mailboxes in it. The other server created 4 default databases of which there are no arbitration mailboxes.

Should I be concerned?

Chris Lehr said...

Not at ALL!

Arbitration mailboxes are created on the first Exchange 2010 server in your organization.

Unknown said...

Great post! saved me a lot of time.

BADBOY said...

Hello, i have a Exchange 2007 SP2 with Rollup 2 installed on a child domain. I am installing an additional Exchange 2010 Mailbox Role on the father domain, i get this error about arbitration databases it's secure to delete those objects?

comclusive said...

I'd love to read this post but the page reloads every 2 seconds

Chris Lehr said...

Check your URL. Should be blog.chrislehr.com

http://blog.chrislehr.com/2009/10/exchange-2010-what-is-arbitration.htm

Unknown said...

With Exchange 2010 SP1, you can't remove the two "SystemMailbox([GUID])" mailboxes when trying to remove the last mailbox database. Instead, you can disable them using the command shown above, with the addition of the parameter "-DisableLastArbitrationMailboxAllowed".

To recap, when removing the last Exchange 2010 mailbox database, remove the arbitration mailboxes first, then disable the remaining ones.

Unknown said...

Excellent post, thank you very much. I struggled quite a bit before finding this as I couldn't delete my last Mailbox Database. Thanks again!

Rami said...

it work with me after adding -comaincontroller

Sammaa said...

Hi,

Is it possible to move from a unmounted database? ... My Default database is corrupt and cannot be mounted, but I cannot remove it because it contains arbitration mailboxes. I need to get rid of it because having an unmounted database with arbitration mailboxes is apparently the reason why the search indexer uses 90% of CPU....

Chris Lehr said...

Sammaa - you can not move from an unmounted mailbox, however you can force delete the database, and then re-prepare the domain to recreate the arbitration accounts and mailboxes.

Relevant content:
http://www.microsoft.com/exchange/en-us/licensing-exchange-server-email.aspx

Unknown said...

You might want to update your article to include the info that Matt supplied in his comment about removing the move requests afterward ("Before you can actually remove the database you will have to remove the Move Requests. To do this MAKE SURE that the requests have completed then run the following: Get-MoveRequest -SourceDatabase "Database Name" | Remove-MoveRequest.").

Otherwise you can be sure to get errors about stale references for the arbitration mailboxes in Active Directory!

Unknown said...

Hi Chris and Robin.

Hoping you guys might be able to help me with this. How do I remove an old arbitration mailbox. My predecessors attempt at installing exchange 2007 many years ago didn't go well. It's not causing issues, just like to keep things clean.

Error

SystemMailbox{e0dc1c29... SystemMailbox{e0d... communicate unlimited
WARNING: The object lawactive.co.za/Users/SystemMailbox{e0dc1c29-89c3-4034-b678-e6c29d823ed9} has been corrupted, and
it's in an inconsistent state. The following validation errors happened:
WARNING: Database is mandatory on UserMailbox.
WARNING: Database is mandatory on UserMailbox.

Lars said...

This was very helpful. Had this situation today for the first time.

Thank you.

Gus Gallows said...

One other note. If you do not see any arbitration mailboxes, you probably have more than one domain in the forest and you aren't seeing the forest root. To make that happen, run the following cmdlet first, then you should be able to see the arbitration mailboxes:
set-adserversettings -ViewEntireForest $true

Unknown said...

Thank you for this great post!

Unknown said...

Thanks! Awesome post. It'd probably be easier for people to actually read the error and find the switch that allows you to remove the last arbitration mailbox LOL. It's always easier to read from website. Again, thank you for putting this together!!!