Generally there are two situations the Databases need to be switchovered from one server to another: Maintenance and Failover.
For Maintenance, it is often a manul process. For instance, you want to install a patch and restart the active server. Before you do it, you need to mannualy activate the Database on the standby server.
For Failover, it is an automatic process. As I talked in my post named What is DAG, the underlying cluster used by DAG will trigger the Database switchover action once the failover criterias has been met, like losing the several heartbeat.
In my current Exchange project, the DAG members are located in different subnet in different countries’ office. One in China, one in US. Overall the Internet connection between the two offices is in a good condition, it may experience transitory packet loss and high latency which does not impact the communications that much. However, the default cluster is very sensitive to this, everytime it happens the failover is triggered. To make the cluster less sensitive to this, I changed the value of CrosssSubnetDelay and CrossSubnetThreshold to a bigger number. And I have been monitoring the DAG since the change for more than one week, it works perfect so far.
Here is command that I used
cluster /cluster:<ClusterName> /prop CrossSubnetDelay=<value> (value range: 250 – 4000)
cluster /cluster:<ClusterName> /prop CrossSubnetThreshold=<value> (vlaue range: 3 – 10)
More details can be found at:
http://technet.microsoft.com/en-us/library/dd197562%28WS.10%29.aspx