Long-running MAPI 'SetColumns' operation
Topic Last Modified: 2007-01-23
The Microsoft® Exchange Server Analyzer Tool uses the Exchange Server User Monitor (ExMon) tool to determine whether user MAPI operations are taking longer than should reasonably be expected on a healthy server that is running Exchange Server.
As part of its analysis, the Exchange Server Analyzer reviews the ExMon data for user-issued MAPI SetColumns operations that have taken longer than 30 seconds to be completed.
A basic view is created by using the MAPI call SetColumns. The call to SetColumns defines the properties which will be columns in the new view table.
The first time that a property is requested in a view, the server must do extra work to generate the view. After that property is requested in a view, it will always be present for future views. This means that the first time new properties are requested, the call to SetColumns can take much longer. The time that is required is proportional to the number of new properties and the number of items in the folder. For example, the first time that a user views their inbox after a mailbox move, the server will take longer to generate the view. This is because views are not moved with a mailbox move. The views will be recreated.
It is generally very expensive to add properties to the view. The cost of adding properties is proportional to the number of items in the folder and to the number of properties that are being added. General Microsoft Office® Outlook® usage will not cause many properties to be added to the message folder table, but more can be added manually. This is not generally a problem. However, you may experience delays if an application regularly adds columns, adds many columns, or if any client adds several columns over many items. The more columns in the message folder table, the more overhead there is to all other actions on items in that folder. As soon as a column is added, it cannot be removed. Each property in the Message-Folder table adds overhead to insert items in that folder.
If the Exchange Server Analyzer determines that a user-issued MAPI SetColumns operation has taken longer than 30 seconds, the Exchange Server Analyzer displays an error.
The first time that a user accesses their mailbox after it has been moved to a new database or a new server, the server will have to create new views. In that case, long SetColumns and long Restrict calls are expected. You can safely ignore these errors for several days after you move a mailbox.
Some applications will create new views and cause properties to be promoted to internal store data structures. This can have a long-term performance effect on the server when the server accesses that user's data. If the identified user or users experience frequent delays or delays that adversely affect their messaging experience, you should understand why. Work with the user who is experiencing the high latency to determine the following:
Whether the item counts in folders are high.
What applications the user is running.
To address this issue, follow these steps:
Encourage users who have many items in their folders to reduce the number of items per folder. It is recommended that you keep items in the Inbox, Calendar, Sent Items, Contacts and Deleted Items folders to fewer than 5,000.
Configure the most operationally expensive client computers to use Cached Exchange Mode. Pay extra attention to client computers that have long latencies on Restrict, SetColumns or FindRow operations. Cached Exchange Mode isolates the server from most of the excess RPC traffic.
Try turning off all the applications. Then turn them on one by one to find which one might be causing the problem. Permanently turn off any problem applications or update them to reduce the load to an appropriate level if either of the following conditions is true:
The application is not required for business.
The application has a published update.
- The application is not required for business.
|Some applications can significantly increase server load without issuing lots of MAPI operations. This is because some operations are more expensive than other operations. It may take only a small increase in the number of costly operations to noticeably affect server performance. In ExMon, users are reported as having a high CPU effect, without necessarily having issued many MAPI operations.|
Also, you should be aware that when there is a bottleneck for resources, generally a disk or CPU bottleneck, the latencies for the SetColumns operations will increase.
For more information, see the following Exchange Server resources:
"Performance and Scalability Guide for Exchange Server 2003" (http://go.microsoft.com/fwlink/?LinkId=47576)
"Troubleshooting Microsoft Exchange Server Performance" (http://go.microsoft.com/fwlink/?LinkId=47588)
Exchange Server 2003 Performance: 10 Things to Think About (http://go.microsoft.com/fwlink/?LinkId=56460)
Microsoft Knowledge Base article 905803, "Outlook users experience poor performance when they work with a folder that contains many items on a server that is running Exchange Server 2003 or Exchange 2000 Server" (http://go.microsoft.com/fwlink/?linkid=3052&kbid=905803)