Using Verastream Host Integrator with a Third-Party Load Balancer

  • 7021541
  • 02-Mar-2006
  • 02-Mar-2018

Environment

Verastream Host Integrator version 7.0 or higher

Situation

This technical note explains how to configure Verastream Host Integrator (VHI) for use with an external load balancer, instead of the built-in Session Server load balancing.

Resolution

Comparing Host Integrator vs. Third-Party Load Balancing

Load balancers distribute client requests across multiple servers. When choosing a load balancing solution appropriate for your environment, consider the following:

  • Host Integrator built-in Session Server load distribution requires no additional hardware or software products. Version 7.0 or higher uses a weighted pseudorandom distribution (see KB 7021566). Version 6.6 or earlier measures "load" based on the quantity of concurrent sessions in use by clients, as a percent of a configured maximum.
  • An external third-party load balancer (such as products from F5, Cisco, or Foundry Networks) can measure other factors, such as CPU utilization, or distribute clients in a round-robin or pseudorandom fashion. This option may be desired if your organization already uses a third-party load balancing product to fulfill monitoring and reporting functions.

Note: This information has been successfully applied in customer environments. However, Attachmate does not officially endorse any third-party load balancer, nor perform regular interoperability testing.

Configuring your Host Integrator Environment

To set up Host Integrator to use an external third-party load balancer:

  1. Install Host Integrator software on your server systems.

Note: Do not configure any domains in Administrative Console (version 7.0 or higher) or Administrative WebStation (version 6.6 or earlier). Domains are used only for Host Integrator built-in load balancing.

  1. Configure your load balancer and/or DNS to create a new common host name or IP address that will be load balanced.
    • If using a common host name, the new name should be different than the names entered when installing the Host Integrator software.
    • If using a common IP address, the new address should be different than the actual IP addresses of the Host Integrator servers.

Note: The individual Host Integrator session server IP addresses must also be reachable from the client. (The load-balanced connection is an initial command channel; the session servers provide their IP address and port information to the client connector for subsequent session communication.)

  1. Configure your external load balancer to monitor the health of Host Integrator Session Server services and systems (at a periodic "heartbeat" interval) using one or more of the following approaches:
    • ICMP Ping to verify the system is reachable.
    • Script that connects and disconnects with Session Servers using the Host Integrator connector API (Java, .NET, COM, C, etc.).
    • The atping utility on UNIX (as described in KB 7021540) to verify the Session Server service is running and reachable.
    • Portscan-type connection to the Session Server TCP port 9623 that opens and closes to verify the service is running and reachable.

Note: Do not send any data on the Host Integrator service connection. Session Server uses a proprietary binary communication and does not support any text command interface.

  1. Configure your external load balancer to distribute load across "alive" servers on a round-robin, random, or least-loaded basis. To determine the least-loaded server, use monitoring tools to retrieve the CPU usage of the systems or Session Server processes.
  2. When deploying models (using activatemodel and deactivatemodel commands, or Design Tool), use the specific Session Server system names (not the load balanced common name or address created in step 2 above).
  3. Since Host Integrator domains are not being used, your client code should use the ConnectToModel() or ConnectToSession() connector API method calls. For the server parameter, specify the load balanced name or address created in step 2 above.

Note: The suspendConnection() and resumeConnection() methods are not supported when using a third-party load balancing technology. Use of these methods in such environments may produce undesired results, such as the inability to resume suspended sessions.

Additional Information

Legacy KB ID

This article was originally published as Attachmate Technical Note 10059.