Example: Setting up a horizontal scaling implementation

The following example describes how to set up a horizontal scaling implementation that accomplishes the following:

  • Maximizes the number of client connections supported across multiple hosts
  • Allows an administrator to specify the communications ports the Service Manager implementation uses

You can use this example to configure the implementation depicted in the Horizontal scaling implementation diagram.

  1. Install Service Manager on the first host in the virtual group. For example: myserver1.
    The host must be on the same subnet as the other hosts in the virtual group.
  2. Log in to the Micro Focus software licensing center and obtain a license file for this host.

    Note After you obtain a license file for this host, it becomes the primary host of the horizontal scaling implementation. You must start this host first when starting a horizontal scaling implementation for the first time.

  3. Copy the license file you obtain onto a network share accessible to the other servers that will make up the horizontal scaling implementation.
  4. Log in to the operating system of the primary host and change directories to the Service Manager Server's RUN folder.
  5. Paste the license file (LicFile.txt) into the RUN folder.
  6. In the RUN folder, open the Service Manager configuration file (sm.cfg) in a text editor.
  7. Edit the file so that only the following lines appear:

    sm -loadBalancer -httpPort:13080
    sm -que:ir
    sm -httpPort:13081 -httpsPort:13082
    sm -httpPort:13083 -httpsPort:13084
    sm system.start
    

    The loadBalancer parameter creates a special servlet container process to route client connection requests to other available servlet container processes. A horizontal scaling implementation only needs one load balancer.

    The httpPort:13080 parameter specifies that the load balancer process listens to client connection requests on HTTP port 13080. This communications port must be unique across all hosts that you want to join the Service Manager virtual group.

    The que:ir parameter starts the processing of scheduled IR records that the server generates running in asynchronous IR mode.

    The httpPort:13081 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13081. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13082 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13082. This communications port must be unique on the host on which you start the servlet container.

    The httpPort:13083 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13083. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13084 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13084. This communications port must be unique on the host on which you start the servlet container.

    The system.start parameter specifies that the host system should start all the background processes in the system.start script file. This host will be the only host in the virtual group that runs the background processes. The configuration file should already list this line.

  8. Save the Service Manager configuration file.
  9. Open the Service Manager initialization file (sm.ini) in a text editor.
  10. Add the RDBMS connection settings. For example:
    [oracle10]
    sqldb:ora102
    sqllogin:sm7user/password
    sqllibrary:SQORACLE.OCI10.DLL
    sqldictionary:oracle10
    
  11. Add the following lines:

    grouplicenseip:10.0.0.135
    groupname:mygroup1
    groupmcastaddress:224.0.1.255
    groupsubnetaddress:255.255.255.0
    groupport:13100
    threadsperprocess:50
    sessiontimeout:3
    system:13080
    ir_asynchronous:1
    

    Note This example assumes the host system has only one network adapter card and therefore does not need the groupbindaddress parameter. If your host has multiple network adapter cards, you must add the groupbindaddress parameter to specify which network adapter the virtual group will use for communications.

    The grouplicenseip:10.0.0.135 parameter defines the TCP/IP address of the Service Manager host with a valid AutoPass license for the virtual group. The value of this parameter must match the IP address specified in the AutoPass license.

    The groupname:mygroup1 parameter creates a virtual group that servlet container processes across multiple systems can join for horizontal scaling purposes. The value is arbitrary and can be any text value without spaces.

    The groupmcastaddress:244.0.1.255 parameter defines the TCP/IP address that servlet container processes can use to communicate with the load balancer process. The TCP/IP address must be consistent with the UDP multicasting protocol.

    The groupsubnetaddress:255.255.255.0 parameter defines the subnet mask that servlet container processes can use to communicate with the load balancer process. The subnet mask must be consistent with the IPv4 protocol.

    Note You only have to define the subnet address if you are using subnet masking on your IP addresses.

    The groupport:13100 parameter defines the communications port that servlet container processes can use to communicate with the load balancer process. The communications port can be any available communications port.

    The threadsperprocess:50 parameter defines the number of threads each process supports. A value of 50 threads assumes that the Service Manager host has the minimum recommended system memory available for servlet container processes.

    The sessiontimeout:3 parameter defines the number of minutes that the client connection can remain unresponsive before the server closes the connection. A value of 3 minutes assumes that most network latency issues are quickly and easily resolved.

    The system:13080 parameter defines a numerical identifier for the system, in this case the HTTP port of the load balancer process. The value of this parameter must match for each system in the virtual group.

    The ir_asynchronous:1 parameter defines how the server generates IR index files. A value of 1 means that the server creates a schedule record to process the files asynchronously.

  12. Save the Service Manager initialization file.
  13. If the host runs on a Unix operating system and uses an SSL implementation, edit the /etc/hosts file to list the fully qualified domain name of each host in the virtual group. For example:

    127.0.0.1 localhost
    127.0.0.2 myserver2.mydomain.com myserver2 loghost
    127.0.0.3 myserver3.mydomain.com myserver3 loghost
    

    Caution: Do not edit the /etc/hosts file unless your system is running an SSL implementation.

  14. Start the Service Manager server.
  15. Install Service Manager on the next host in the virtual group. For example: myserver2.
    The host must be on the same subnet as the other hosts in the virtual group.
  16. Log in to the operating system of the Service Manager server host and change directories to the Service Manager Server's RUN folder.
  17. Open the Service Manager configuration file (sm.cfg or smstart) in a text editor.
  18. Edit the file so that only the following lines appear:

    sm -httpPort:13081 -httpsPort:13082
    sm -httpPort:13083 -httpsPort:13084
    sm -sync
    

    Note You do not need the system.start line on this host as only one host in the virtual group needs to run the background processes.

    The httpPort:13081 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13081. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13082 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13082. This communications port must be unique on the host on which you start the servlet container.

    The httpPort:13083 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13083. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13084 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13084. This communications port must be unique on the host on which you start the servlet container.

    The sync parameter specifies that the host system should start the sync background process to identify and remove unused processes.

  19. Save the Service Manager configuration file.
  20. Open the Service Manager initialization file (sm.ini) in a text editor.
  21. Add the RDBMS connection settings. For example:
    [oracle10]
    sqldb:ora102
    sqllogin:sm7user/password
    sqllibrary:SQORACLE.OCI10.DLL
    sqldictionary:oracle10
    
  22. Add the following lines:

    grouplicenseip:10.0.0.135
    groupname:mygroup1
    groupmcastaddress:224.0.1.255
    groupsubnetaddress:255.255.255.0
    groupport:13100
    threadsperprocess:50
    sessiontimeout:3
    system:13080
    ir_asynchronous:1
    

    Note This example assumes the host system has only one network adapter card and therefore does not need the groupbindaddress parameter. If your host has multiple network adapter cards, you must add the groupbindaddress parameter to specify which network adapter the virtual group will use for communications.

    The grouplicenseip:10.0.0.135 parameter defines the TCP/IP address of the Service Manager host with a valid AutoPass license for the virtual group. The value of this parameter must match the IP address specified in the AutoPass license.

    The groupname:mygroup1 parameter creates a virtual group that servlet container processes across multiple systems can join for horizontal scaling purposes. The value is arbitrary and can be any text value without spaces.

    The groupmcastaddress:244.0.1.255 parameter defines the TCP/IP address that servlet container processes can use to communicate with the load balancer process. The TCP/IP address must be consistent with the UDP multicasting protocol.

    The groupsubnetaddress:255.255.255.0 parameter defines the subnet mask that servlet container processes can use to communicate with the load balancer process. The subnet mask must be consistent with the IPv4 protocol.

    Note You only have to define the subnet address if you are using subnet masking on your IP addresses.

    The groupport:13100 parameter defines the communications port that servlet container processes can use to communicate with the load balancer process. The TCP/IP address can be any available communications port.

    The threadsperprocess:50 parameter defines the number of threads each process supports. A value of 50 threads assumes that the Service Manager host has the minimum recommended system memory available for servlet container processes.

    The sessiontimeout:3 parameter defines the number of minutes that the client connection can remain unresponsive before the server closes the connection. A value of 3 minutes assumes that most network latency issues are quickly and easily resolved.

    The system:13080 parameter defines a numerical identifier for the system, in this case the HTTP port of the load balancer process. The value of this parameter must match for each system in the virtual group.

    The ir_asynchronous:1 parameter defines how the server generates IR index files. A value of 1 means that the server creates a schedule record to process the files asynchronously.

  23. Save the Service Manager initialization file.
  24. If the host runs on a Unix operating system and uses an SSL implementation, edit the /etc/hosts file to list the fully qualified domain name of each host in the virtual group. For example:

    127.0.0.1 localhost
    127.0.0.2 myserver2.mydomain.com myserver2 loghost
    127.0.0.3 myserver3.mydomain.com myserver3 loghost
    

    Caution Do not edit the /etc/hosts file unless your system is running an SSL implementation.

  25. Log in to the operating system of the Service Manager server host and copy the primary host's license file (LicFile.txt) from the network share.
  26. Change directories to this Service Manager Server's RUN folder.
  27. Paste the primary host's license file into this server's RUN folder.
  28. Start the Service Manager server.

    Note The primary host must be running in order for this host to validate the license file and start up.

  29. Install Service Manager on the next host in the virtual group. For example: myserver3.
    The host must be on the same subnet as the other hosts in the virtual group.
  30. Log in to the operating system of the Service Manager server host and change directories to the Service Manager RUN folder. For example:
    C:\Program Files\Micro Focus\Service Manager 9.61\Server\RUN
    
  31. Open the Service Manager configuration file (sm.cfg or smstart) in a text editor.
  32. Edit the file so that only the following lines appear:

    sm -httpPort:13081 -httpsPort:13082
    sm -httpPort:13083 -httpsPort:13084
    sm -sync
    

    Note You do not need the system.start line on this host as only one host in the virtual group needs to run the background processes.

    The httpPort:13081 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13081. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13082 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13082. This communications port must be unique on the host on which you start the servlet container.

    The httpPort:13083 parameter specifies that the servlet container process listens to client connection requests on HTTP port 13083. This communications port must be unique on the host on which you start the servlet container.

    The httpsPort:13084 parameter specifies that the servlet container process listens to client connection requests on HTTPS port 13084. This communications port must be unique on the host on which you start the servlet container.

    The sync parameter specifies that the host system should start the sync background process to identify and remove unused processes.

  33. Save the Service Manager configuration file.
  34. Open the Service Manager initialization file (sm.ini) in a text editor.
  35. Add the RDBMS connection settings. For example:
    [oracle10]
    sqldb:ora102
    sqllogin:sm7user/password
    sqllibrary:SQORACLE.OCI10.DLL
    sqldictionary:oracle10
    
  36. Add the following lines:

    grouplicenseip:10.0.0.135
    groupname:mygroup1
    groupmcastaddress:224.0.1.255
    groupsubnetaddress:255.255.255.0
    groupport:13100
    threadsperprocess:50
    sessiontimeout:3
    system:13080
    ir_asynchronous:1
    

    Note This example assumes the host system has only one network adapter card and therefore does not need the groupbindaddress parameter. If your host has multiple network adapter cards, you must add the groupbindaddress parameter to specify which network adapter the virtual group will use for communications.

    The grouplicenseip:10.0.0.135 parameter defines the TCP/IP address of the Service Manager host with a valid AutoPass license for the virtual group. The value of this parameter must match the IP address specified in the AutoPass license.

    The groupname:mygroup1 parameter creates a virtual group that servlet container processes across multiple systems can join for horizontal scaling purposes. The value is arbitrary and can be any text value without spaces.

    The groupmcastaddress:244.0.1.255 parameter defines the TCP/IP address that servlet container processes can use to communicate with the load balancer process. The TCP/IP address must be consistent with the UDP multicasting protocol.

    The groupsubnetaddress:255.255.255.0 parameter defines the subnet mask that servlet container processes can use to communicate with the load balancer process. The subnet mask must be consistent with the IPv4 protocol.

    Note You only have to define the subnet address if you are using subnet masking on your IP addresses.

    The groupport:13100 parameter defines the communications port that servlet container processes can use to communicate with the load balancer process. The TCP/IP address can be any available communications port.

    The threadsperprocess:50 parameter defines the number of threads each process supports. A value of 50 threads assumes that the Service Manager host has the minimum recommended system memory available for servlet container processes.

    The sessiontimeout:3 parameter defines the number of minutes that the client connection can remain unresponsive before the server closes the connection. A value of 3 minutes assumes that most network latency issues are quickly and easily resolved.

    The system:13080 parameter defines a numerical identifier for the system, in this case the HTTP port of the load balancer process. The value of this parameter must match for each system in the virtual group.

    The ir_asynchronous:1 parameter defines how the server generates IR index files. A value of 1 means that the server creates a schedule record to process the files asynchronously.

  37. Save the Service Manager initialization file.
  38. If the host runs on a Unix operating system and uses an SSL implementation, edit the /etc/hosts file to list the fully qualified domain name of each host in the virtual group. For example:

    127.0.0.1 localhost
    127.0.0.2 myserver2.mydomain.com myserver2 loghost
    127.0.0.3 myserver3.mydomain.com myserver3 loghost
    

    Caution: Do not edit the /etc/hosts file unless your system is running an SSL implementation.

  39. Log in to the operating system of the Service Manager server host and copy the primary host's license file (LicFile.txt) from the network share.
  40. Change directories to this server's AutoPass folder. For example:
    C:\Program Files\Common Files\Hewlett-Packard\HPOvLIC\data
    
  41. Paste the primary host's license file into this server's AutoPass folder.
  42. Start the Service Manager server.

    Note: The primary host must be running in order for this host to validate the license file and start up.

  43. Log in to the operating system of the Service Manager Web tier host and change directories to the Service Manager WEB-INF folder. For example:
    C:\apache-tomcat-5.5.12\webapps\sm\WEB-INF
    
  44. Open the Web configuration file (web.xml) in a text editor.
  45. Set the following parameter values:
    ParameterDefault valueDescription
    secureLogintrue

    Controls the encryption of network communication between the web application server and the web browser. Set it to false if you do not use Secure Sockets Layer (SSL) connections to the web server.

    Note: To use secure login, you must enable SSL on your web application server. For details, refer to your web application server documentation.

    sslPort8443This parameter is needed only when secureLogin is set to true. Set it to the SSL port of the web application server.
    serverHostlocalhostSpecifies the name of the Service Manager host server.
    serverPort13080Specifies the communications port number to which the Service Manager server listens.
    ...
    <context-param>
      <param-name>secureLogin</param-name>
      <param-value>true</param-value>
    </context-param>
    <context-param>
      <param-name>sslPort</param-name>
      <param-value>8443</param-value>
    </context-param>
    ...
      <param-name>serverHost</param-name>
      <param-value>myserver1</param-value>
    </init-param>
    <init-param>
      <param-name>serverPort</param-name>
      <param-value>13080</param-value>
    </init-param>
    
  46. Save the Web configuration file.
  47. Start the Service Manager Web tier.
  48. Open Service Manager Windows clients and set the Service Manager host name and communication port values:

    FieldValue
    Server host namemyserver1
    Server port number13080

  49. Connect to the Service Manager host.

Related topics

Horizontal scaling implementation
Server implementation options
Servlet implementation
Servlet implementation options
Configuring a horizontal scaling environment
Webware software licensing center