Window server 2012 | Remote Desktop Connection Broker high available with SQL Server Mirror


In my previous post I have described how to create high available connection broker set up. But that setup depend on one SQL server, so SQL server became single point of failure. To address this I have checked HA for SQL server and found SQL server mirror is supported with RD broker HA. I have implemented this in test and production environment and its works really fine.


Deployment prerequisites

  1. Install the same SQL server version in the new server, use the same accounts as in mirror server.
  2. Witness server – this is for automatic fail over purpose. It can be another SQL server or Install SQL Express version on a server. No need of a dedicated server this can be a server that uses for other purpose.
  3. Added firewall exceptions to all SQL servers.

Step 01 – Configure SQL mirror

  1. Please refer the following technet articles when crating the mirror


  2. Login to principle SQL server and connect to mirror database and witness database server from that management consol. Perform this step to identify the connectivity to all principle, witness and mirror database servers.
  3. Change the principle server’s RD database to full recovery mode.
  4. Please refer the technet article, I’m just only giving the steps that you have to perform.


  5. Backup the principle database and restore it in mirror server using NO RECOVERY mode
  6. Backup the transactions and restore it in mirror server using NO RECOVERY mode
  7. Note – all SQL servers SQL service should run as a domain user. And check in mirror server side, Database should have sysadmin, owner, public right to the security group of RD brokers.
  8. Expand Databases, and select the database to be mirrored. Right-click the database, select Tasks, and then click Mirror. This opens the Mirroring Page of the Database Properties dialog box.
  9. Click Configure Security.

If the mirror successful, check the failover

Step 02 – Configure RD brokers to support SQL mirror.

When configuring HA broker you have to provide the Database connection string, this connection string is configured to point to the RD database and its SQL server. Please refer the previous blog post on this. But to support SQL mirror this connection string have to be changed. And it cannot edit in GUI mode, only PowerShell support this.

Use following PowerShell commands to edit Connection string

  1. Login to a Broker server and open PowerShell in run as a administrator.
  2. Type following commands

Import-Module remotedesktop

To check the current configurations type following command –


Set the connection string –

Set- RDDatabaseConnectionString -DatabaseConnectionString “DRIVER=SQL Server Native Client 10.0;SERVER=<Principle server name>;Failover_Partner=<Mirror Server>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;Database=<DatabaseName>;

If the command succeeds, confirm it in GUI mode.


To test the configurations, fail over the principle database to mirror using SQL management consol. And refresh the connections from Server manager – Remote desktop services- collections – connections and refresh. If mirror successful this connection remain as same. J.

If connections are empty, that means broker servers are not connecting to the mirror server database, most common problem is database security in mirror server. So check all brokers have full access to the mirror database and mirror database saved folder.


Hope this is helpful, cheers.


Remote Desktop Services 2012 | Remote desktop Connection broker High availability 2012

RD Connection Broker:

Remote Desktop Connection Broker (RD Connection Broker), formerly TS Session Broker, supports session load balancing and session reconnection in a load-balanced RD Session Host server farm. RD Connection Broker is also used to provide users access to RemoteApp programs and virtual desktops through RemoteApp and Desktop Connection. If the RD Connection Broker Load Balancing feature is enabled, RD Connection Broker also tracks the number of user sessions on each RD Session Host server in the farm, and redirects users who do not have an existing session to the server with the fewest sessions. This functionality enables you to evenly distribute the session load between servers in a load-balanced RD Session Host server farm.

High available Connection Broker Design


The Active/Active Broker feature in Windows Server 2012 is a full high availability deployment where every RD Connection Broker server is active and sharing the load. It provides high availability and high scalability benefits for medium to larger deployments. SQL Server is used for storing RD Connection Broker server runtime and configuration data thereby allowing admins to use SQL HA features for data high availability and scalability. This Active/Active Broker provides the administrator with an easily deployable high availability and scalability solution for RD Connection Broker servers

Deployment Prerequisites.

  • At least 2 servers required for connection broker high availability, (windows server 2012)
  • Specific database server or Sql database instance. SQL server 2008 R2 Standard or higher
  • Download and install SQL native client on all connection broker servers.
  • RD broker server have full permission to the SQL database and SQL installation folder.
  • Minimum one server required as session host server.
  • Firewall exemptions for SQL server should be defined before the implementations.

Connection broker Deployment.

Step 01

  • Add two connection broker servers, SQL server and session host servers to the domain
  • Create a DNS A record to represent both Connection broker servers with a single DNS. When using RDP, clients can connect to this DNS
  •  Image
  • Create a Security Group in the DC and add both Connection Broker servers to it.
  • Install SQL server 2008 R2 or SQL 2012 in Database server,
  • Create a folder in SQL server, both RD connection brokers servers should be have access to this folder, add the previously created security group to the folder security permissions and provide full access. This is where the database should be saved and both RD broker servers should have access to it.
  • Install SQL native client on both RD connection broker servers. If your SQL server is SQL server 2008 R2 then use SQL native client 10 and if its SQL server 2012, use SQL Native client 11.

Step 02

  • Login to a one Connection broker server and add all other servers to server manager,
  • Server Manager – Dashboard – Add role and Features
  • Select Remote desktop service installation

cb3 cb4

  • Select one connection broker servers


  • Select RD web access as the same Connection broker server
  • Select RD session host server


  • Select restart the destination server if required and Deploy
  • All 3 roles should complete as successful



Step 03

  • Go to server manager – remote desktop – Overview


  • Use previously created security group and give this group sysadmin, full permission to the SQL Server by using SQL Server Management Studio’s “Security” configuration.
    1. This security group also should have full permission to the SQL installation folder as mentioned in Step 01

cb9 cb10

  • Right click the connection broker and select connection broker high availability.



  • Enter the following three settings:
    1. The connection string to the SQL database containing the name of the database to be created for the RD Connection Broker server. This is the string that RD Connection Broker servers will use to connect to the RD Connection Broker database on the SQL Server.
      Example: DRIVER=SQL Server Native Client 10.0;SERVER=<SQL Server Name>;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=<DB Name>

(If you are using SQL 2012 use native client version as 11.0)

    1. The folder in which the database file is to be stored. If a local path is used, that folder should be on the SQL Server computer. This is the folder that previously created and added the broker security group as full permissions
      Example: C:\DbFiles
    2. The DNS Round Robin entry name containing IP addresses of all the RD Connection Broker servers. This will be used by RDP clients to connect to the RD Connection Broker servers.





  • Open SQL server manager in database server, the RD database is now created. Go to the security tab, Select the security group that previously added– right click properties, set default database as RDS database, and go to user mapping – tick the RD database and tick db_owner, public.


  • Right click the connection broker and select add connection broker server


Select the server and click next




This is the exact method that you can High available the RD connection broker servers. Now you can check this by using RD connection to Connection broker round robin DNS name. You can check the high availability by shutting down a one server or set active connection broker from remote desktop overview.



This article is only cover how to high available RD connection broker in windows server 2012 using one SQL server. But this scenario SQL server is became a single point of failure. So on my next blog post I will cover how to high available SQL server for RD broker using SQL mirroring.

Please create session collection and other configurations (User group adding to remote desktop security group) before use this setup because its only cover the RD broker HA.