Throttling Exchange 2010
This came up in a case and the cause wasn’t immediately obvious. The customer used MAPI to open a number of mailboxes using OpenMsgStore. They found that if they tried to multithread their code, they’d open a few mailboxes, then they’d start getting MAPI_E_FAILONEPROVIDER. The odd thing was the same code running against Exchange 2007 did not experience this problem.
It turns out what they were running in to was Exchange 2010’s new client throttling feature. The purpose of this feature is to prevent a single client from causing a Denial of Service on the Exchange server by throwing commands at it and dominating it’s time. You may find that for certain applications, the default throttling policy isn’t appropriate. You can build a new policy using New-ThrottlingPolicy. For MAPI applications (whether they use Outlook or Exchange’s MAPI), the settings starting with RCA (RPC Client Access) are the ones you want to set, particularly RCAMaxConcurrency. Once you’ve created a policy, you can apply it to a user using Set-Mailbox.
An important note: In the policy, you’ll see a CPUStartPercent setting. This setting only applies to EWS, as confirmed by David Sterling in his comment to this post.
Comments
Anonymous
January 25, 2010
May be I have a similar problem: Environment: MS-Windows: Microsoft Windows Server 2008 Enterprise Edition 64-bit Service Pack 2 (build 6002) (6.0.6002) MS-ExchangeServer: Microsoft Exchange Server 2010 (14.0.682.1) MAPICDO: Messaging API and Collaboration Data Objects 1.2.1 v6.5.8131.0 Reproduced with code: IMsgStore store1; HRESULT r = IMAPISession->OpenMsgStore(..., &store1); ATLASSERT(r == 0); IMsgStore store2; r = IMAPISession->OpenMsgStore(..., &store2); ATLASSERT(r == 0x8004011D); Works ok with: IMsgStore store1; HRESULT r = IMAPISession->OpenMsgStore(..., &store1); ATLASSERT(r == 0); store1->Release(); IMsgStore store2; r = IMAPISession->OpenMsgStore(..., &store2); ATLASSERT(r == 0x8004011D); Why IMsgStore must be released before IMAPISession->OpenMsgStore call via MAPI on Exchange 2010? On my side I have been met with a case that cannot support IMsgStore->Release workaround. It works without any problem under Exchange 2003 & 2007.Anonymous
March 31, 2010
The comment has been removedAnonymous
July 13, 2010
Hi Steve, I'm interested in the Client Throttling feature of Ex2010, and specifically what my MAPI application is going to see. I sometimes see MAPI_E_NETWORK_ERROR failures from (random) MAPI calls a while after MAPI has successfully made a logon to a mailbox and wondering if this could this be related. I haven't seen any mention in the documentation on Client Throttling what it does if it decides a client is too busy - will it just delay returning the response to the client's call or will it return something specific which the MAPI client end handles? If it's a delay, is it possible/likely that the delay might cause a timeout at the network layer causing MAPI to return something like MAPI_E_NETWORK_ERROR back to the caller? Thanks, Oliver Seaman, C2C SystemsAnonymous
July 14, 2010
Oliver - if you're seeing that error using the latest MAPICDO download, it may not be throttling. We're tracking an issue that might be related to a recent change in the MAPICDO download. If you do a netmon of your application talking to Exchange and see a number of RPC Orphan frames followed shortly by an RPC Fault you might be seeing that issue. I don't have an ETA on a fix yet.Anonymous
July 15, 2010
Hi, thanks very much Steve - yes, we are seeing that behaviour from Netmon. Do you have a reference number for the issue you're tracking that we can quote to the Exchange Support team? We have ticket 110071446516092 currently open with them on this issue. Regards, OliverAnonymous
October 03, 2010
Hi Steve, can you let me know if the fix for the issue you were looking at is available yet? I've not seen any update to the released version beyond 8165, is it available through direct request? Thanks, OliverAnonymous
October 03, 2010
Oliver - nothing's public yet. It'll be available to everyone at the same time, through an update on the Download site.Anonymous
November 03, 2010
Hi Steve, FYI your newly released 8190 of MAPI has fixed our customer issue - thanks :)Anonymous
December 12, 2012
To get more information on Client Throttling policies, you can refer the following articles: General