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.

19 thoughts on “Remote Desktop Services 2012 | Remote desktop Connection broker High availability 2012

  1. I keep getting an error when creating the database “Could not create the database ‘RDSDB'”. I am using a named instance, not the default, is this okay? I gave permission to the folder on the sql server and permission to the security group on the sql server that contains my connection broker server.

    Any insight?

    • Check porton sql server. then specified the port when creating the database
      DRIVER=SQL Server Native Client 10.0;SERVER=,14XX;Trusted_Connection=Yes;APP=Remote Desktop Services Connection Broker;DATABASE=

      • I believe it was because I was using a named instance. Once I added a default instance it connected. However, now I cannot connect to my servers at all. I am not sure if it is a licensing issue or actually a routing issue. Is it okay that my RDS Session Hosts do not have a public IP address? They have static internal addresses. The connection broker is the actual connection, correct?

      • It did work for a couple hours though, and then the connection stopped working. My environment did work before this configuration. Both the individual connection broker and RR name are in my public and internal DNS.

  2. Hello,

    I have been following your doc above and everything is working. Except that I can ‘t login using the address I am using for load balancing.

    no error is pop up. I am back to the login page.

    Thanks if you can help

      • HI,
        i am new to the blog, hope i can get some support from here,

        below is my scenario

        i have two physical server i need to use both of the for remote desktop server 2012 with session broker .
        can you please guide through the steps to configure the remote desktop server with session broker with two servers.

        Thank you

      • hi abdul
        yes you can use both servers to have session broker and session host roles, just add the servers as i have described in previous article, but you want to have HA on connection brokers, you have to have separate SQL server.

  3. Sir,

    How can I change the database connection string?
    Alwasy getting an error message in powershell, something like “loggend on user is not admin on server” and so on…

  4. Hi Asitha!

    I know it has been some time that you wrote this post. But, I am kind of struggeling with one error and I hope that you might help me. 🙂

    I deployed and configured all RDS servers as stated in your post, but when I try to connect with RDP via RDCB_LB i recieve following error:

    “The connection was denied because the user account is not authorized for remote login.”

    and RD Connection Broker logs following error:
    Remote Desktop Connection Broker Client failed to redirect the user domain\user. (Event ID 1306).

    I have tried all possible suggestions found on internet, but it seems like none of them works . So, I would apprecite very much if you had some suggestions for me.

    Tnx in advance.


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