Configuring a horizontal scaling environment

This configuration is intended for customers who:

  • Want to maximize the number of client connections supported across multiple hosts
  • Have multiple hosts available to manage all concurrent client connections

Terminology

  • Group: A group of Service Manager server processes running on one or more hosts and connecting to one database to serve Service Manager server processes within a group.
  • Node: A Service Manager server process within a group.
  • Primary host: The host in the Service Manager horizontal scaling group whose IP is bound to the Service Manager AutoPass license.
  • Secondary host: The host in the Service Manager horizontal scaling group whose IP is not bound to the Service Manager AutoPass license. The Service Manager processes on this host depend on running Service Manager processes on the primary host to validate the Service Manager AutoPass license.
  • Service Manager servlet process: A Service Manager server process that embeds the Tomcat application server and serves Service Manager Windows clients and Web clients, as well as Web Services requests. It is also generally referred to as a Service Manager process.
  • Service Manager background process: Background processes that wake up periodically to execute a particular RAD application, or Service Manager runtime environment routine. For example: sm -que:ir.
  • Service Manager transient process: A Service Manager server process that executes a RAD application or Service Manager runtime environment routine only once, not periodically. For example: sm -reportlbstatus.

Number of Service Manager hosts required

This configuration can be set up on one or more hosts.

Commands required in sm.cfg on primary host

You must set the following configuration commands.

sm -loadBalancer -httpPort:<value>
sm -que:ir
sm -httpPort:<value> -httpsPort:<value>
sm system.start

Commands required in sm.cfg on secondary host

sm -httpPort:<value> -httpsPort:<value>
sm -sync
  • sm -loadBalancer -httpPort:<value> – Is a special Service Manager process that redirects client connections requests to other available Service Manager processes.
  • sm -httpPort:<value> -httpsPort:<value> – Specifies the HTTP or HTTPS communications port for one Service Manager process. Each Service Manager process by default can host 50 users. You can start as many Service Manager processes as you want, as long as your server has enough physical memory and resources to start the processes. You can also change the number of users hosted on one Service Manager process by setting the "threadsperprocess" parameter.
  • sm -que:ir – Starts the processing of scheduled IR records that the server generates running in asynchronous IR mode. Since asynchronous IR mode is enforced in a horizontal scaling environment, there has to be only one "sm -que:ir" process for the horizontal scaling group.
  • sm system.start – Starts one Service Manager process that contains all background processes.
  • sm -sync – Identifies defunct Service Manager processes on the host and frees the shared resources that were allocated for it. The "sm -sync" process needs to start only one per host. Since the "sm system.start" process includes the "sm -sync" background process, the "sm -sync" command should not be included in the sm.cfg file that has the "sm system.start" command.

Parameters required in sm.ini

You must set the following initialization parameters.

   system:<value>
   grouplicenseip:<value>
   groupname:<value>
   groupmcastaddress:<value>
   groupport:<value>
  • system – Defines a unique numerical ID for the system. The value of this parameter must be identical in the sm.ini files for each host in the horizontal scaling group.
  • grouplicenseip – The value should be the primary host IP.
  • groupname – Creates a group name as the horizontal scaling group identifier that the Service Manager processes use to identify the group. The value of this parameter is only alphanumeric characters.
  • groupmcastaddress – Defines the TCP/IP multicast address that all Service Manager processes within the horizontal scaling group use to communicate with each other.
  • groupport – Defines the communications port that all Service Manager processes use to communicate with all other Service Manager processes within the horizontal scaling group.
  • [RDBMS Settings] – Define the RDBMS connection and authorization parameters.

Optional parameters in sm.ini

The following initialization parameters are optional.

threadsperprocess:<value>
preferredFQHN:<value>
groupbindaddress:<value>
  • threadsperprocess – Defines the maximum number of concurrent user sessions per Service Manager process. Use a value that maximizes the system resources of your Service Manager host. The recommended maximum value for the parameter threadsperprocess is 60. Usually the value of this parameter should be below 50.
  • preferredFQHN – Specifies the fully qualified host name you want Service Manager clients to use when communicating with the server. Service Manager loadBalancer redirects client requests to the target host with the target host's "preferredFQHN." You only need to set this parameter if your Service Manager host is identified by multiple names in the network.
  • groupbindaddress – Defines the TCP/IP address of the network adapter you want Service Manager processes to use to communicate with other processes in a horizontal scaling group. If your Service Manager hosts contain multiple network adapters, you must specify the IP address of the network adapter you want the horizontal scaling group to use with the "groupbindaddress" parameter.

Operating system requirements

All hosts in the horizontally-scaled environment must run on the same operating system version and run at the same patch level. Minimum patch level for each operating system is specified in the support matrix. See Support Matrices on the Software Support Online site.

Caution: Running Service Manager in a horizontally-scaled environment and using different operating systems can corrupt your data. You can also run into problems when upgrading to the latest patches. Most of the time, Service Manager patches are released on all operating systems. However, in some cases, patches may be delivered to a particular operating system. When mixing operating systems, applying patches will become more complex as you need to test on multiple platforms.

Network requirements

All hosts in the horizontal scaling group must run from the same subnet on the network in order for the Service Manager processes to communicate with one another.

Memory requirements

We recommend around 1.5 GB RAM per Service Manager process. This is based on the expected user load. For example, if you have 10 processes each running with a 50-user load, the minimum required RAM would be 1.5 GB per Service Manager process, 10x1.5 GB RAM. For information on sizing, refer to the Service Manager 7 Reference Configurations sizing guide in the Micro Focus online support knowledge documents at the following URL: https://softwaresupport.softwaregrp.com/.

Licensing requirements

Obtain an AutoPass license for one host in your horizontal scaling group. On Windows platforms, AutoPass installs as part of the server installation. On Unix platforms, you must install it manually before you can run Service Manager. For more information, see Service Manager Installation in the related topics. This host becomes the primary host of the horizontal scaling group and AutoPass includes this host's IP address in the LicFile.txt file. You must start the primary host first when starting the horizontal scaling group. Copy the LicFile.txt file from the primary host's AutoPass directory to the AutoPass directory of each secondary host in the horizontal scaling group. Each secondary host must have a copy of the primary host's LicFile.txt file in order to start.

The summary steps are as follows:

  • List all hosts in your horizontal scaling environment to determine the primary server and all secondary servers.
  • Get the license from the Micro Focus Web site.
  • Copy the primary server's IP address to get the license and save it as the primary server's LicFile.txt file.
  • Copy the primary server's LicFile.txt file on all secondary servers. The default directory for this file is as follows:
    <Service Manager server installation path>/RUN/LicFile.txt 
    
  • Add the following parameter in the sm.ini file: grouplicenseip:Primary_Servers_IpAddress

To start the horizontal scaling group

  1. Start the Service Manager server on the primary server.

    Note: The primary server must be started prior to starting any of the secondary servers.

  2. Start the Service Manager server on the secondary servers, in no particular order.

To establish the horizontal scaling group, the first node of the group should be started on the primary host. When the group is established on the primary host, Service Manager server processes on secondary hosts can start to join the group. Once the whole group is established, the primary host can be brought down for maintenance, and then rejoin the rest of the running group when it is restarted. As long as there is a member Service Manager server process running in the group, Service Manager server processes on another secondary host with the same "grouplicenseip:<primary host IP>" can join the group. The primary host is not required to be running. Another secondary host can be started, even if the primary host is down for any reason. However, when the group is down (for example, there are no nodes running in the group), then the group has to be reestablished from the primary host first.

Other requirements

Install the applicable database client software on each host of the horizontal scaling group so that they can access the Service Manager RDBMS. See your RDBMS vendor documentation for instructions.

Related topics

Horizontal scaling implementation diagram
Servlet implementation
Servlet implementation options

Parameter: httpPort
Parameter: httpsPort
Parameter: loadBalancer
Parameter: grouplicenseip
Parameter: groupbindaddress
Parameter: groupmcastaddress
Parameter: groupname
Parameter: groupport
Install