This event manager code is generated when your Exchange Server 2007 environment has run out of rows to write to in a database column, that hold unique mail header information, per each mail server. There are many posts on the internet as to how to raise the threshold for this table up to the max (database crashing) limit of 32768.
If you've temporarily raised the ceiling, just as congress keeps raising the debt ceiling, you probably realize just as congress does that eventually a limit is going to be reached and everything is going to then crash and burn.
Fortunately for you, Microsoft decided to build a way to monitor this ceiling/threshold.
Open up regedit and navigate to
HKLM\System\CurrentControlSet\Services\MSEXchangeIS\Performance
• Modify the string value "Library" from (notice the dll name) [drive you have exchange program files on]\Program Files\Microsoft\Exchange Server\Bin\Perf\%Processor_Architecture%\mdbperf.dll
to
[drive you have exchange program files on]\Program Files\Microsoft\Exchange Server\Bin\Perf\%Processor_Architecture%\mdbperfx.dll
• Go to each server and apply the attached registry file change (rename the file extension appropriately)
• Open perfmon after registry change
• Right click and add counters and then select “MsExchangeIS Mailbox” under the counters and expand it
• Scroll down to “Rows in ReplidMap Table” and click once on it
• In the “Instances of selected object” window below, highlight each database individually and click add and then ok
• Next scale your counters and determine if any of them are approaching the 16383 out of the box limit
• Save the counter report as an html file so you can go back later, run the report again and calculate the rate of change each day, you can also export them as a .tsv (Tab Separated Value) file for sharing.
At this point you can spot check all other databases to see which are also approaching the replica id limit you've coded into the registry. You can also check these values with a powershell command after you've altered the registry key mentioned above.
The code for that is:
Get-mailboxserver | foreach {get-counter –counter “\MSExchangeIS Mailbox(*)\Rows in ReplidMap Table” –sampleinterval 2 –maxsamples 1}
This is the blog of DJ (@gkrew) and Brad, two guys who are just engineers on a messaging team supporting Microsoft Exchange Server. DJ is an IT Pro with experience as an Enterprise System Administrator in Microsoft Windows and Unix. Brad is a self-taught coder who develops code to assist with Exchange Administration using C# and PowerShell. There will be posts about Exchange, PowerShell, Active Directory, C# and scripts that you can use in your job as well as anything IT related.
Subscribe to:
Post Comments (Atom)
Good step-by-step guide, helpful!
ReplyDelete