Technology: Load Balancing the Exchange 2010 Client Access Server (CAS)

Today, I would like to discuss an issue that I have run across multiple times over the last couple years and it happened again today with a customer who called me.  

[Note:   This article and the RpcClientAccessArray applies to Exchange 2010With Exchange 2013, the RpcClientAccessArray is not needed.  In fact, the command to create it doesn’t exist in Exchange 2013]

This is the scenario.   You’re excited to install your first Exchange 2010 server so you walk through the setup wizard.   Next …, Next …, Next …, and Finish.   Yay, you just setup an Exchange server with all the Exchange roles on it (Client Access Server, Hub Transport, and Mailbox).   Since, it was so easy and you want high availability, you do the same thing again.   Now, you have two Exchange servers with all the roles on it.   Since you want high availability, now you do some reading and setup a load balancer to load balance Exchange.   Everything is good?  Right?

Aah.   There is a small step that you skipped.   It’s called creating the RPC Client Access Array.   The RPC Client Access Array is an object that you must create if you plan to have multiple CAS servers in a single AD site that you want to load balance.   You should ideally do this before you install an Exchange mailbox server because the Exchange databases have a field on them called the RpcClientAccessServer

Open an Exchange Management Shell on your Exchange server.  Enter the following command:   Get-MailboxDatabase | fl | more


Scroll down and look for the RpcClientAccessServer


Notice that its set to the Exchange server.  It should be set to the RpcClientAccessArray, but since it wasn’t created at the time that the database was created, it defaults to the servername.  We need to create the RPC Client Access Array and then update this field.

To check if you have already created the RpcClientAccessArray, enter the following command:   Get-ClientAccessArray

If nothing is returned, then the array hasn’t been created.


To create the array, enter the following command:  New-ClientAccessArray –FQDN <RPCClientAccess ArrayName> –Site <SiteName>

See the following blog article for a good description of what the RpcClientAccessArray does (

Now to associate the Exchange database to the RpcClientAccessArray, enter the following command:   Set-MailboxDatabase <Database_name> -RpcClientAccessServer <ClientAccess-ArrayName>

Then, you will need to create an A record in your internal DNS to point the “FQDN of the RPC Client Access Array” to the Virtual IP (VIP) of the load balancer.

The following articles have great information on the RpcClientAccessArray.

A key point article that is made in the Part 2 post is that the Outlook profile of the mailboxes that were created on the database before the update to the RpcClientAccessServer field need to be fixed manually.   Here are the ways to fix the Outlook profile:

“manual profile repair within Outlook, by publishing an Office PRF file via GPO (not going to work for non-domain joined machines), or by decommissioning the CAS server named in the users’ profiles so the endpoint is no longer available”

Another question that comes up is what load balancers have been tested with Exchange 2010.   Here is a article listing the load balancers tested with Exchange 2010. ; Load Balancers that have been completed solution testing with Exchange 2010

Note, if you have a load balancer that is not on the list, then it may work as well.   It just hasn’t gone through the solution testing at the time of the post.

Reference Articles: ; Exploring Exchange 2010 RPC Client Access service ; Demystifying the CAS Array Object – Part 1 ; Demystifying the CAS Array Object – Part 2 ; ; My good friend, Anderson Gobbi, wrote this article on configuring the Client Access Array. ; Client Access Server Build Template ; Load Balancers that have been completed solution testing with Exchange 2010

This entry was posted in Exchange, Technology and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s