Monday, May 2, 2011

MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)

Problem

I am performing cross-forest migration and I am having a had an issue when attempting to perform cross-forest mailbox moves.

A "user" for each "mailbox user" in the source forest exists in the destination forest. These objects were created by Identity Lifecycle Manager. These "user" objects were then prepared to be "mail users" by using the Prepare-MoveRequest.ps1 script for each user using the following syntax:

.\Prepare-MoveRequest.Ps1 -Identity "CN=Paul,OU=User Accounts,DC=source,DC=local" -RemoteForestDomainController "sourceforest-dc1.source.local" -RemoteForestCredential $Remote -LocalForestDomainController "destinationforest-dc01.destination.local" -LocalForestCredential $Local -TargetMailUserOU "OU=FromILM,DC=destination,DC=local" –UseLocalObject

I am trying to perform the mailbox move using the following command:

New-MoveRequest -Identity "CN=Paul,OU=FromILM,DC=destination,DC=local" -RemoteLegacy -TargetDatabase "Mailbox Database 0205912051" -RemoteGlobalCatalog "sourceforest-dc1.source.local" -RemoteCredential $Remote -TargetDeliveryDomain "contoso.com"

When I create the move request, the move request status update does not change, it just stays at "InProgress".

[PS] C:\>Get-MoveRequest

DisplayName Status TargetDatabase
----------- ------ --------------
Tamara InProgress Mailbox Database 0205912051


I bumped up the EventLogLevel for MSExchangeIS\9002 System\Move Mailbox" to medium by using the following powershell command:

Set-EventLogLevel "MSExchangeIS\9002 System\Move Mailbox" -Level Medium

In the destination Exchange 2010 server the following event logs were logged under "Application Log" with the EventLogLevel turned up.

Log Name: Application
Source: MSExchange Mailbox Replication
Date: 2/05/2011 4:27:37 PM
Event ID: 1101
Task Category: Mailbox Move
Level: Warning
Keywords: Classic
User: N/A
Computer: Ex2010.destination.local
Description:
Mailbox move for 'destination.local/FromILM/Paul' (fcfdc22e-d8d8-44f1-bdfe-140fdbc0d1ca) encountered a transient failure. The operation will be retried (9 out of 60).
Error code: -2147467259
MapiExceptionMailboxInTransit: Unable to open message store. (hr=0x80004005, ec=1292)
Diagnostic context:
Lid: 18969 EcDoRpcExt2 called [length=132]
Lid: 27161 EcDoRpcExt2 returned [ec=0x0][length=132][latency=0]
Lid: 23226 --- ROP Parse Start ---
Lid: 27962 ROP: ropLogon [254]
Lid: 17082 ROP Error: 0x50C
Lid: 26937
Lid: 21921 StoreEc: 0x50C
Lid: 27962 ROP: ropExtendedError [250]
Lid: 1494 ---- Remote Context Beg ----
Lid: 26426 ROP: ropLogon [254]
Lid: 22787 Error: 0x0
Lid: 13032 StoreEc: 0x8004010F
Lid: 7588 StoreEc: 0x8004010F
Lid: 6564 StoreEc: 0x8004010F
Lid: 24316
Lid: 2199 StoreEc: 0x50C
Lid: 17097 StoreEc: 0x50C
Lid: 8620 StoreEc: 0x50C
Lid: 1750 ---- Remote Context End ----
Lid: 26849
Lid: 21817 ROP Failure: 0x50C
Lid: 26297
Lid: 16585 StoreEc: 0x50C
Lid: 32441
Lid: 1706 StoreEc: 0x50C
Lid: 24761
Lid: 20665 StoreEc: 0x50C
Lid: 25785
Lid: 29881 StoreEc: 0x50C



Log Name: Application
Source: MSExchangeIS
Date: 2/05/2011 4:27:37 PM
Event ID: 9660
Task Category: Logons
Level: Warning
Keywords: Classic
User: N/A
Computer: Ex2010.destination.local
Description:
User Paul (/o=Destination/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=Paul) failed to log on because their mailbox is in the process of being moved.



In the "System Log" I also noticed the Microsoft Exchange Mailbox Replication service crashing during the move.

Log Name: System
Source: Service Control Manager
Date: 3/05/2011 9:07:13 AM
Event ID: 7031
Task Category: None
Level: Error
Keywords: Classic
User: N/A
Computer: Ex2010.destination.local
Description:
The Microsoft Exchange Mailbox Replication service terminated unexpectedly. It has done this 1 time(s). The following corrective action will be taken in 5000 milliseconds: Restart the service.




My Environment

In the destination domain I have:
- A single Exchange 2010 server with CAS, MB and HT roles installed running SP1, Update Rollout 4.
- Public folders

In the source domain I have:
- A single Exchange 2003 server running Service Pack 2
- An Exchange 2010 SP1 Server running Update Rollout 4 only running the CAS role. This is for MRSProxy.

Resolution

The problem occured because MRSProxy was not enabled on the Exchange 2010 Client Access Server in the source forest. When mailboxes are moved from one Exchange 2010 forest to another Exchange 2010 forest, the process is handled through Exchange 2010 Client Access Servers using the MRSProxy service. The only port required to be open between the forests for MRSProxy to use HTTPS traffic is port 443. This works even if the source mailboxes are on 2003 or 2007 MBX servers as long as an Exchange 2010 CAS server exists in both organizations.

MRSProxy is not enabled on client access servers by default. You need to enable this on the source forest client access server. To enable this navigate to the following directory on the Exchange 2010 CAS server in the source forest.

Exchange Installation Path\V14\ClientAccess\ExchWeb\EWS\web.config

Open the web.config in a text editor and find where it says under MRSProxyConfiguration

IsEnabled="false"
MaxMRSConnections="100"
DataImportTimeout="00:01:00




Change IsEnabled to true:



I then rebooted the Exchange 2010 CAS server in the source forest. Upon reboot the cross-forest mailbox moves worked.

The Exchange 2010 CAS Server in the source domain will proxy the move request from the Ex2003 mailbox server.

I also found a TechNet article that explains how to enable this:

http://technet.microsoft.com/en-us/library/ee732395.aspx

5 comments:

  1. Cross-forest mailbox moves are also known as Remote mailbx moves. There are two types of cross mailbox moves that Exchange 2010 server supports. Read more here for detail information: http://technet.microsoft.com/en-us/library/dd351280%28EXCHG.140%29.aspx.

    Sometimes the Exchange Mailbox move request fails because the Exchange mailbox has more corrupted items than the move request is configured to skip. In this situation, you should use appropriate corrective measures to resolve the issue. However, if you are unable to solve the problem then you should use a third-party Exchange recovery tool to repair and move the corrupt Exchange Mailboxes.

    ReplyDelete
  2. This is a really excellent read for me. Must admit that you are one of the coolest bloggers I ever saw. Thanks for posting this informative article.
    data recovery services nj

    ReplyDelete
  3. What about Exchange 2007? How do we enable MRSProxy? By default, Exchange 2007 does not leverage on MRSProxy for mailbox replication

    ReplyDelete
  4. Hi, Very nice article about Unable to open message store.
    During cross forest migration there is the possibility of corruption of Exchange Server Mailboxes. In these situations Exchange Recovery Software could make the work easier. There are many tools in the market for repairing corrupt exchange mailboxes.

    ReplyDelete