Tuesday, August 15, 2006

Exchange 2003 SP2 move mailbox issue (Guid-ReplID Caching) Part 2

This little script will do all the work for you.. Some of our servers have nine stores so this takes a second to run as opposed to minutes doing it manually.

const HKEY_LOCAL_MACHINE = &H80000002
If (Wscript.Arguments.Count)<>2 Then
WScript.Echo ("Usage : cscript guidstore.vbs -s ")
End If
If lcase(WScript.Arguments(0))="-s" Then
End If

Set StdOut = WScript.StdOut

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
strComputer & "\root\default:StdRegProv")
strKeyPath = "SYSTEM\CurrentControlSet\Services\MSExchangeIS\" & strcomputer
oReg.EnumKey HKEY_LOCAL_MACHINE, strKeyPath, arrSubKeys
For Each subkey In arrSubKeys
StdOut.WriteLine subkey
SubKeys = "SYSTEM\CurrentControlSet\Services\MSExchangeIS\" & strcomputer & "\" & subkey
strValueName = "Guid-Replid Caching"
dwValue = 0
oReg.SetDWORDValue HKEY_LOCAL_MACHINE,SubKeys,strValueName,dwValue

Monday, August 07, 2006

Exchange 2003 SP2 move mailbox issue (Guid-ReplID Caching)

After moving mailboxes to an Exchange 2003 SP2 server, Outlook users may experience a crash when changing folders. The crash is a stack overflow caused by corruption in the GUID/Replid Mapping (GRM) cache on the target server. Remounting the mailbox store or restarting the Information Store service will resolve the crashing for affected users. Some users that have experienced the crashing problem may also experience problems with duplicate folders, delegate issues, and Free/Busy information. These problems persist after the restart and must be manually corrected.

More Information
In Exchange 2003 SP1, the GRM cache is disabled by default. In Exchange 2003 SP2, it is enabled by default. Enabling the GRM cache can lead to problems during mailbox moves to a target SP2 store. Its purpose is to handle lock contention that can affect performance during the move mailbox operation. The odds of the perf hit being severe are very low, but there is a slight chance. In most scenarios, a chance of slow is better than the alternative so we are working on a post-SP2 hotfix to disable it by default. In the meantime, you can disable the GRM cache on a per-database basis with the following registry value:

HKLM\System\CurrentControlSet\Services\MSExchangeIS\[server name]\Private-[store guid]
Value Name: Guid-Replid Caching
Value Type: DWORD
Value Data: 0

- For the registry change to take effect, remount the affected mailbox stores.
- The hotfix is still under investigation. There is no ETA at this time for its release.
- Disabling the cache will not affect users that have already experienced the problem, it only prevents mailboxes from getting into the problem state while moving them.