Blog Post

Exchange Team Blog
3 MIN READ

Alternative Method for Gathering Data for Version Store Issues on Exchange Server 2007

The_Exchange_Team's avatar
Oct 04, 2011

By now, you have probably read the two previous blogs written by Nagesh Mahadev and Sushil Sharma on this subject. If you haven’t read them lately (or bookmarked them), I urge you to do so now.

This blog is going to discuss alternative methods for collecting data for Exchange Server 2007 and how to setup a data collector set to collect performance data for Version Buckets Allocated and two scheduled tasks to dump the store running on Windows Server 2008.

As part of the data collection, it is important that you download the Exchange 2007/2010 Performance Data Collection Script as discussed in http://archive.msdn.microsoft.com/ExPerfwiz and run it as per instructions to start capturing Performance data.

Here is our Event ID 623 that we will be using in our example:

Source: ESE
Event ID: 623
Task Category: Transaction Manager
Level: Error
Description:
MSExchangeIS (5828) SG4: The version store for this instance (1) has reached its maximum size of 155Mb. It is likely that a long-running transaction is preventing cleanup of the version store and causing it to build up in size. Updates will be rejected until the long-running transaction has been completely committed or rolled back.

Our calculation is the same as it has been in the past: x/1024 *32 = y, where x is the number of version buckets allocated and y is the total Version Store memory. Now, we know that the maximum Version Store memory is 155Mb from the event above and we can therefore work out the maximum number of version buckets allocated. x= (155*1024)/32 so we can see that this is 4960.

Here is where we deviate from the prior blogs. We are going to only get two store dumps:

  • One when the version buckets allocated exceeds 80% of the total available
  • One when the Event ID 623 is triggered

Our first step is to setup two batch files. One to dump the store when the version buckets allocated triggers and one when the Event ID 623 is triggered:

VersionBucket.bat contents:

C:\procdump\procdump.exe store.exe -MA -accepteula c:\store.dmp  

EventID623.bat contents:

C:\procdump\procdump.exe store.exe -MA -accepteula c:\store.dmp  

Then we create a User Defined Data Collector set named Version Buckets that we are going to use to run VersionBucket.bat. Note that these steps are for Windows Server 2008. If you are running Windows Server 2003, please see the steps here.

1. Open Performance Monitor

2. Under Data Collector Sets, right click User Defined

3. Give it any name, like Version Buckets, select Create manually (Advanced) and click Next.

Ver_Store_01

4. Select Performance Counter Alert and click Next

clip_image003[4]

5. Click Add; Select the MSExchange Database==>Instances as the Performance object, then under Counters select Version Buckets Allocated. Make sure that only SG4 is selected under Instances. Select Add and then Close

clip_image005[4]

6. Set Alert when to Above and the Limit value is 3968 (4960*.80) and click Next

clip_image006[4]

7. Select Start this data collector set now and click Finish

 clip_image007[4]

We then set up two scheduled tasks to run the batch files:

Creating scheduled task for dumping store when the version buckets allocated triggers

1. Launch Task Scheduler

2. Select Create Basic Task from the action pane

3. Give it any name, like Version Buckets and click Next

clip_image009[4]

4. Select When a specific event is logged and click Next

5. Select Microsoft-Windows-Diagnosis-PLA/Operational  for Log

Select Diagnosis-PLA for Source

Enter 2031 for the Event ID and click Next

clip_image011[4]

6. Select Start a program and click Next

7. Under Program/script, browse to the directory containing VersionBucket.bat and click Next and click Finish

clip_image013[4]

Creating scheduled task for dumping store when Event ID 623 is recorded

1. Launch Task Scheduler

2. Select Create Basic Task from the action pane

3. Give it any name, like Event ID 623 and click Next

4. Select When a specific event is logged  and click Next

5. Select Application for Log, Select Application for Source, Enter 623 for the Event ID and click Next

clip_image015[4]

6. Select Start a program and click Next

7. Under Program/script, browse to the directory containing EventID623.bat and click Next and click Finish

clip_image017[4]

Send in the dump files, application log and performance monitor log that were running when the dump was collected to CSS for further analysis.

Many thanks to Mike Edwards, Michael Blanton and Eric Romer o Rodriguez for their assistance with this article.

Eileen O’Rourke

Updated Jul 01, 2019
Version 2.0
  • Update for the batch files. Add a line to delete the batch files after the dumps are processed.

    VersionBucket.bat contents:

    C:procdumpprocdump.exe store.exe -MA -accepteula c:store.dmp  

    del c:VersionBucket.bat

    EventID623.bat contents:

    C:procdumpprocdump.exe store.exe -MA -accepteula c:store.dmp  

    del c:EventID623.bat