• Sign In
 
  • MSDN Blogs
  • Microsoft Blog Images
  • More ...

  • Advanced search options...
  • Blog Home
  • About
  • Email Blog Author
  • Share this
  • RSS for posts
  • Atom
  • RSS for comments
  • CDO (20)
  • Code Snippet (42)
  • Custom Providers (15)
  • Debugging (7)
  • DevMsgTeam (278)
  • Documentation (101)
  • DST (8)
  • EWS (7)
  • Exchange (100)
  • Gotchas (91)
  • Hotfix (28)
  • MAPI (220)
  • MAPI Download (48)
  • MFCMAPI (92)
  • MSDN (54)
  • Non Dev (11)
  • OOM (17)
  • Outlook (163)
  • Outlook 2007 Auxiliary Reference (45)
  • Outlook Integration API (11)
  • Protocol Docs (20)
  • PST/OST (22)
  • Referrals (8)
  • Vista (12)
  • WrapPST (15)
Links:
  • Download MFCMAPI
  • MFCMAPI on Facebook
  • Troubleshooting Outlook Crashes
  • Office Update Center
  • Developer Messaging Team Blog
This site is provided "AS IS" with no warranties, and confers no rights. Use of included code samples are subject to the terms specified in the Terms of Use.
Archives
  • May 2012 (1)
  • April 2012 (3)
  • March 2012 (3)
  • February 2012 (3)
  • January 2012 (1)
  • December 2011 (3)
  • November 2011 (1)
  • October 2011 (3)
  • September 2011 (1)
  • August 2011 (1)
  • July 2011 (4)
  • June 2011 (3)
  • May 2011 (3)
  • April 2011 (3)
  • March 2011 (5)
  • February 2011 (1)
  • January 2011 (2)
  • December 2010 (1)
  • November 2010 (4)
  • October 2010 (1)
  • September 2010 (3)
  • August 2010 (5)
  • July 2010 (3)
  • June 2010 (3)
  • May 2010 (1)
  • April 2010 (3)
  • March 2010 (3)
  • February 2010 (3)
  • January 2010 (2)
  • December 2009 (3)
  • November 2009 (5)
  • October 2009 (4)
  • September 2009 (5)
  • August 2009 (5)
  • July 2009 (11)
  • June 2009 (6)
  • May 2009 (5)
  • April 2009 (3)
  • March 2009 (18)
  • February 2009 (10)
  • January 2009 (3)
  • December 2008 (2)
  • November 2008 (2)
  • October 2008 (5)
  • September 2008 (4)
  • August 2008 (10)
  • July 2008 (6)
  • June 2008 (8)
  • May 2008 (2)
  • April 2008 (4)
  • March 2008 (2)
  • February 2008 (2)
  • January 2008 (5)
  • December 2007 (3)
  • November 2007 (2)
  • October 2007 (3)
  • September 2007 (1)
  • August 2007 (4)
  • July 2007 (5)
  • June 2007 (3)
  • May 2007 (4)
  • April 2007 (1)
  • March 2007 (6)
  • February 2007 (3)
  • January 2007 (2)
  • December 2006 (4)
  • November 2006 (3)
  • October 2006 (1)
  • August 2006 (1)
  • June 2006 (5)
  • May 2006 (5)
  • December 2005 (1)
  • November 2005 (4)
  • October 2005 (2)
  • September 2005 (1)
  • April 2005 (3)
  • December 2004 (2)
  • September 2004 (2)
  • August 2004 (3)
  • July 2004 (3)

Throttling Exchange 2010

MSDN Blogs > SGriffin's MAPI Internals > Throttling Exchange 2010

Throttling Exchange 2010

Stephen Griffin - MSFT
7 Jan 2010 7:25 AM
  • Comments 8

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.

  • 8 Comments
Exchange, Outlook, MAPI, Gotchas, MAPI Download, DevMsgTeam
Comments
  • k.dzenisevich
    26 Jan 2010 6:06 AM

    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.

  • Eriq VanBibber
    31 Mar 2010 7:07 PM

    Steve,

    Can you provide details on the following?

    In some cases, the user token used to do mapi work may not have a mailbox (it could be a plain user account); what/how do you set a policy using set-mailbox if the user doesn't have one?

    Also, how do you handle this for Resource Forest style (linked Mailbox)?  Does remote user need the policy or the disabled user with the mailbox in the exchange forest?  If the remote user needs the policy, how would you assign such?

    Should we also assume that the concurrency limit applies regardless of whether you 'jump' (using CreateStoreEntryID) or directly?  I sure hope that a 'jump' does not count as 2 sessions!

    Also, does RPC-over-HTTPS have different behavior with regards to these limits?

    Look forward to the replies.

  • Oliver Seaman
    14 Jul 2010 7:22 AM

    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 Systems

  • Stephen Griffin - MSFT
    14 Jul 2010 8:16 AM

    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.

  • Oliver Seaman
    16 Jul 2010 7:40 AM

    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,

    Oliver

  • Oliver Seaman
    4 Oct 2010 3:20 AM

    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, Oliver

  • Stephen Griffin - MSFT
    4 Oct 2010 6:55 AM

    Oliver - nothing's public yet. It'll be available to everyone at the same time, through an update on the Download site.

  • Oliver Seaman
    4 Nov 2010 5:45 AM

    Hi Steve, FYI your newly released 8190 of MAPI has fixed our customer issue - thanks :)

Page 1 of 1 (8 items)
Leave a Comment
  • Please add 4 and 3 and type the answer here:
  • Post
  • © 2012 Microsoft Corporation.
  • Terms of Use
  • Trademarks
  • Privacy Statement
  • Report Abuse
  • 5.6.402.223