Wednesday, October 13, 2010

DAG with two Servers will databases fail over automatically if one server dies?

This seems to be one of the most asked question and answer will be yes and also no it depends the given setup scenario. I think the main point to understand is the new attribute called “RpcClientAccessServer” and the term Middle tier speaking of MAPI locating user mailbox.

let me try to elaborate in a simple way , now in your scenario you have two server member of let's say DAG1

  • Ex1= DB1, DB2, DB3, DB4
  • EX1= DB1, DB2, DB3, DB4


Now let’s take a look at your MAPI clients (they are the outlook clients) if I am user A and my mailbox is located on DB1 , how will I get to my mailbox?

In a simple way, I open outlook , my outlook finds out the DNS server configured in the TCP/IP Stack and DNS server finds out what DC (Domain controller to talk too) , DC has bunch of information in regards to my E210 Servers and their configurations , the DAG configuration is also is located in the ADDS database.

My outlook simply is trying to find out which mail server to connect too to get the mails. So outlook says, hey I need to know the mailbox box for user A , which mail server I need to connect too???? The DC will check ADDS database and look for attribute


  • This is where the magic happens , this attribute tells the MAPI client & clients which DB to connect too.

Great, if you have not configured your CAS array yet, the attribute is set to first CAS server introduced within the SMTP domain, so most likely EX1 in this example ( Assuming we installed EX1 first and have not configured CAS Array yet)

Now let’s make assumption of this to connect this information to your question , you have two servers called EX1 and EX2 and you have 4 DB on these servers ( each)

Ex1= DB1, DB2 (Mounted, ACTIVE) --------DB3,DB4 (Healthy, WAITING TO BE ACTIVE IF NEEDED)

Ex2= DB3, DB4 (Mounted, ACTIVE)-------DB1,DB2 (Healthy, WAITING TO BE ACTIVE IF NEEDED)


  • If user A mailbox is located on DB3 meaning my outlook needs to connect to DB4 on EX2 to get my mail.
  • Now, I open my outlook
  • Outlook asked the question-What is the value of the attribute
  • RpcClientAccessServer
  • Outlook Gets the Answer  by finding out the value in the attribute called RpcClientAccessServer=EX1
  • EX1 says hey the DB is mounted-ACTIVE on EX2 this time
  • DNS give the IP Address to MAPI to connect too
  • I get connected to EX2

This is the story about “Middle Tier” has been removed from MAILBOX to CAS servers, you no longer connect to your mailbox server directly.

  • Now lets come back to your question, EX1 is hard DOWN !!!!!! crashed what happens ????
  • You go through same process and get same answer which is RpcClientAccessServer=EX1
  • Your Outlook tries to connect to EX1 ( Which has blue screen) won’t happen , you see the Christmas balloon “Outlook trying to retrieve blah blah and desktop start difficult to manage (-: , uppsssss

**** IN reality EX2 is perfectly up and running you cannot get to it**** Because the ADDS is telling you to connect to RpcClientAccessServer=EX1

  • To remedy this now we configured this attribute

I made this up “” call it anything you like this is DNS A record

  • ( IP Address)


  • EX1=
  • EX2= ,  Are you seeing what is going on here??????

  • If EX1 is death, all I need to do is to do to DNS and update the IP Address of existing A record
  • NOW THIS IS EX2 which will make your outlook happy (-:

To make this automated you need load balancer or use poor man method to update DNS (-: your own

Create a Database Availability Group

Oz Casey, Dedeal
MCSE 2003, M+, S+, MCDST
Security+, Project +, Server + (Blog (Blog) (Blog)


EV SSL said...

Very interesting article here you post not only as well useful so thanks for sharing this wonderfully stuff with regard

SorG said...


If you are creating a CAS array with the FQDN of the cluster node name, your failover will works automatically without any other additional software or DNS changes ! The virtual cluster IP will stay the same, but will balance between the first and the second server (just be sure that the Windows clustering is configured with at least a witness network folder and a shared IP address as ressource).

New-ClientAccessArray –Name “CAS Array” –Fqdn “” –Site “Default-First-Site-Name”

Set-MailboxDatabase DatabaseName -RpcClientAccessServer “”

Tested, it works !



Oz Casey, Dedeal said...

.It is not supported, having Virtual IP in the cluster or adding VIP IP of CAS ARRAY into CAS servers as additional IP are also not supported. Running your environments in “un supported scenario” is not something you would want to do. Especially in enterprise level networks, so the correct way to do this is to get HLB or fallow “poor man DNS” method
Once again the argument here is not, if it is working or not………Simply is not supported.

Prashant said...

I have configured 2 exch 2013 on 2 diff’nt windows box’s.And i need to map this 2 exch mail database to one of my vip address..Please find the below details.

1.ipadd : (ADS,DNS)
2.ipadd : (Member of domain,Exch 2013)
3.ipadd : (Member of domain.Exch 2013)
4. ipadd : (VIP address)..I need to map mail database to (This is my vip address).Please let me know..and also i am trying this below cmd..It not working


New-ClientAccessArray -Fqdn -Site Default-First-Site-Name

Get-MailboxDatabase | Set-MailboxDatabase -RpcClientAccessServer

Set-MailboxDatabase cmdlet with –Identity ‘mailbox database name’