## Secondary Publishing Agents A secondary Publishing Agent is added to a Site for redundancy. This way if the primary Publishing Agent fails, the secondary Publishing Agent is still available to handle the requests. Publishing Agents work in active/active manner to ensure high availability. In case of a Publishing Agent failure, the next agent is always ready to handle the load. In general, the N+1 redundancy approach should be used per Site. Note that for auto-promotion you shouldn't have more than three Publishing Agents (auto-promotion is described later in this section). When you have one more secondary Publishing Agents installed, the runtime data is replicated on each agent, so if any service fails, the downtime is reduced to a minimum. In addition, any active Publishing Agent is used for authentication purposes with both the AD and any 2nd level authentication provider used. The primary Publishing Agent performs the same tasks as secondary Publishing Agents but has additional responsibilities. It manages certain processes that must be managed by a single Publishing Agent. The following table lists processes managed by the primary Publishing Agent and secondary Publishing Agents:
Process | Primary Publishing Agent | Secondary Publishing Agents
Monitor PAs (counters) | Yes | Yes
Monitor RD Session Hosts (counters) | Yes | Yes
Monitor VDI providers (counters) | Yes | Yes
Monitor RDS Sessions (reconnection) | Yes | Yes
Monitor Deployed RDS applications | Yes | Yes
Monitor VDI session (reconnections) | Yes | Yes
Manage system settings | Yes | No
Send licensing information & heart beat | Yes | No
Process and send CEP information | Yes | No
Send information to reporting server | Yes | No
Manage RDS scheduler | Yes | No
Reporting engine information | Yes | Future versions
Shadowing | Yes | Future versions
Send email notifications | Yes | No
As a demonstration of how load distribution between multiple Publishing Agents works, consider the following example: Suppose we have two Publishing Agents: PA1 (primary) and PA2 (secondary). Suppose we also have 10 RD Session Hosts: RDS1, RDS2 ... RDS10 The resulting load will be distributed as follows: RDS1, RDS2 ... RDS4 will use PA1 as their preferred Publishing Agent. RDS5, RDS6 ... RDS10 will use PA2 as their preferred Publishing Agent. Planning for secondary Publishing Agents RAS Publishing Agents running on the same Site communicate with each other and share the load. The amount of data being transmitted from one agent to another is quite large, so a reliable high-speed communication channel must be ensured (e.g. a subnetwork can be configured for Publishing Agent communications). When adding a secondary Publishing Agent to a Site, you specify an IP address for it. Make sure that the IP addresses of all agents belong to the same network segment. The port that Publishing Agents use to communicate with each other is TCP 20030. There's no physical limit to how many Publishing Agents you can add to a Site. However, the best results are achieved with only two-three agents present. The three-agent scenario is highly recommended, especially when you have VDI providers and want to enable high availability for VDI. Adding more than two secondary Publishing Agents to a Site may have a reverse effect and actually degrade the system performance. Note that this does not apply to secondary Publishing Agents in standby mode, which is explained in Configuring RAS Publishing Agents. Adding a secondary RAS Publishing Agent to a Site To add a secondary Publishing Agent: In the RAS console, navigate to Farm / <Site> / Publishing Agents. Click the Tasks drop-down menu and choose Add to launch the Add RAS Publishing Agent wizard. The Server field specifies the FDQN or IP address of the server that hosts the RAS Publishing Agent. To automatically resolve IP address to FQDN, enable the global Name Resolution option. For details, see Host Name Resolution. The IP field specifies the server IP address. Click the Resolve button to obtain the IP address automatically using the FQDN specified in the Server field. The Alternative IPs field specifies one or more alternative IP addresses, separated by a semicolon. These addresses will be used if RAS Secure Client Gateways fail to connect to the RAS Publishing Agent using its FQDN or the address specified in the IP field. This can happen, for example, if Gateways are connecting from a different network, which is not joined to Active Directory. Select the Install a gateway with a publishing agent option if you also want to install a RAS Secure Client Gateway on the specified server. If you select this option, you may also select the Add an SSL certificate and enable HTML5 Gateway option (for more info, see Configure HTML5 Client). Select the Add Firewall Rules option to automatically configure the firewall on the server. See Port Reference for details. Click Next. On the next page, click Install to install the RAS Publishing Agent on the server. The Installing RAS Redundancy Service dialog opens. Select the server on which the RAS Publishing Agent is to be installed and click Install. Click Done. Click OK to add the server to the Farm.