Wednesday, June 15, 2011

Increasing MAPI Concurency connections per user in Exchange 2010

Customer is using MAPI account for helpdesk to handle support requests purpose. They want to configure same MAPI account in multiple machines. He is able to configure it in 9 machines but when they go to configure 10th machine it does not work. at any point of time  It is supporting only 9 machines, when we deleting one account which I have configured earlier, later if we try to configure in new machine it is configuring.
How it got resolved -
“Client throttling” feature is introduced in Exchange 2010 to ensure that a user should not use exchange server high resource. 
Among other things, client throttling helps you make sure that:
              Users aren't intentionally taxing the system.
              Users aren't unintentionally taxing the system.
              Users of various connectivity methods are sharing resources proportionally.
Exchange 2010 has client throttling polices, which are enabled by default. You are probably exceeding your max connections configured value. For details,
                                          http://technet.microsoft.com/en-us/library/dd297964.aspx

"The RCAMaxConcurrency parameter indicates how many concurrent connections an RPC Client Access user can have against a server running Exchange 2010 at one time. A connection is held from the moment a request is received until the connection is closed or the connection is otherwise disconnected (for example, if the user goes offline). If users attempt to make more concurrent requests than their policy allows, the new connection attempt fails. However, the existing connections remain valid. The RCAMaxConcurrency parameter has a valid range from 0 through 2147483647 inclusive. The default value is 20. To indicate that the number of concurrent connections should be unthrottled (no limit), this value should be set to $null"
Generally we  try to increase the CPUStartPercentage  when encounter these kind of issues, The CPUStartPercent parameter only applies to CPU usage and not concurrent connection parameters. For example, you set CPUStartPercent to 75% and RCAPercentTimeInCAS to 50%, if the CPU hits 75% utilization, Exchange will limit the amount of time Outlook can spend executing Client Access requests to 30 seconds out of every minute. No matter what the CPUStartPercent is set to, all parameters ralated to max concurrent connections will always be enforced.
Each client can have multiple RCA connections to the server if it is opening additional mailboxes, public folders, or shared folders. It is especially a problem if you are using Outlook 2003 as it doesn't release RCA connections that have been generated by viewing another user's calendar. Where you have so many clients connecting to the same mailbox, I would suggest you increase the RCAConcurrency to a higher value. You will need to monitor the Exchange server to ensure this doesn't cause any performance issues
To higher the value of  RCA connection do follow below steps:
·         Open EMS >>Get-ThrottlingPolicy |fl IsDefault,RCA*
·         Copy the  default throttlingpolicy and use in below command.
·         Open EMS>>Set-ThrottlingPolicy -Identity DefaultThrottlingPolicy_XXXXXXXXXXX -RCAMaxConcurrency 30
·         After run the command  just restart   “ RPC Client access service”.

Sometimes higher  the value in Client access server will not solve your concern since cut of connection limit has been set less in  Mailbox Server.  At those scenarios do follow the below steps.
·         On your mailbox server >> open “Regedit”  >>  go to the following key - \\HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem
·         Create a new DWORD (32-bit) value called "Maximum Allowed Sessions Per User". Set this value to 100.
·         You may need to restart the information store for the change to take effect.

Your valuable feedback on this article is most appreciated

Regards, Raju
This posting is provided "as is" with no warranties and confers no rights.

7 comments:

  1. On your first EMS entry I didn't get the Name of Default Throttling Policy, but adding in Name I was able to.

    Get-ThrottlingPolicy |fl Name,IsDefault,RCA*

    Thanks for the article!!

    ReplyDelete
  2. Thanks Josiah Munson, I am glad to see your comments.

    ReplyDelete
  3. Hi Kotla, Im getting errors on mailbox server as follows

    Mapi session "ba396d5b-0123-48d5-89e4-e722088d0709: /o=CBH/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/cn=Recipients/cn=campbeld" exceeded the maximum of 32 objects of type "session".

    I have set a throttling policy for the users effected to $null however the errors persist.. I havent restarted the RPC Client access service as its in production hours - is this needed??

    ReplyDelete
  4. Hi Teaseler,
    Hope you don't mind me answering your question. You should indeed restart the cas service. The policy is loaded into cache... Sorry

    ReplyDelete
  5. great article . just what I needed , had so may problems with last change but registry entry fixed it .

    ReplyDelete
  6. Thank you so much. This article really help me on my Exchange 2010 SP2 environment. Navishkar from ZA

    ReplyDelete
  7. Hello, you made my day, Thank you, I searched the internet since 3 days, now I found the solution.

    ReplyDelete