start portlet menu bar

HCLSoftware: Fueling the Digital+ Economy

Display portlet menu
end portlet menu bar
Close
Select Page

Load balancing refers to efficiently distributing incoming network traffic across a group of backend servers, also known as a server farm or server pool.

load balancer acts as the “traffic cop” sitting in front of your servers and routing client requests across all servers capable of fulfilling those requests in a manner that maximizes speed and capacity utilization and ensures that no one server is overworked, which could degrade performance. If a single server goes down, the load balancer redirects traffic to the remaining online servers. When a new server is added to the server group, the load balancer automatically starts to send requests to it.

In this manner, a load balancer performs the following functions:

  • Distributes client requests or network load efficiently across multiple servers.
  • Ensures high availability and reliability by sending requests only to servers that are online.
  • Provides the flexibility to add or subtract servers as demand dictates.

HCL Compass also offers the capability to configure load balancing, to distribute the client requests across all available Compass Web (CQWeb) servers.

This blog discusses about how to load balance two Compass web servers using an IBM HTTP Server 9.0.0.11 that is using the WebSphere plugin.

Host details:

Host-1: ending with number 26921
OS: Windows Standard 2019 64Bit

Host-2: ending with number 35411
OS: Windows Standard 2019 64Bit

Environment details:
HCL Compass version: 2.2.0
WAS/IHS version: 9.0.0.11

Prerequisites:
* The following applications installed and configured on both hosts;
WAS-9.0.0.11 and IHS-9.0.0.11
Compass – 2.2.0
* Compass Web server profiles created and configured on both hosts

Important Note: We have considered the first Compass Web Server Host-1 itself as the load balancer host. You can consider a third host for configuring load balancing, in addition to the no. of Compass web servers you include as a part of load balancing.

Procedure for configuring load balancing begins from here:

1. Setup Session Affinity:

Session affinity directs requests from a given client to a specific application server. The application state maintained in the HTTP session is accessed in the HTTP session cache, which is local to the application server. Session affinity provides higher performance than database persistence of the session object, alone. Without session affinity, session requests must be obtained from the database if they are sent to a server that does not have the session object in the local cache. To configure a unique HTTP session clone ID using the WebSphere Integrated Solutions Console (ISC), complete the following steps for each WebSphere application server on Host-1 and Host-2.

On Host-1 launch the WebSphere ISC Console: Go to Start -> All Programs -> IBM WebSphere -> IBM WebSphere Application Server V9.0 -> Profiles -> cqwebprofile -> Administrative console

Login as admin

Go To Servers > Server Types > WebSphere Application Servers > server1

Click on Configuration > Web Container Settings > Web container

Graphical user interface, application Description automatically generated

Then click on Customer properties:

Graphical user interface, application Description automatically generated

Under Preferences, click and click “New…”.

Graphical user interface application description

In the Name field enter “HttpSessionCloneId”.

In the Value field enter a unique value for the server (cqw26921). The unique value must be 8 to 9 alphanumeric characters.

In the optional Description field enter “ClearQuest web server 26921”.

Click on OK.

Graphical user interface, application Description automatically generated

Click Save to save the configuration changes directly to the master configuration.

Graphical user interface application description

2.. Repeat the same steps on Host-2:

Note: Make sure the value of HttpSessionCloneId is 8 characters – cqw26921 & cqw35411 , as per documentation – https://www.ibm.com/docs/en/was/8.5.5?topic=iwspi-configuring-simple-load-balancing-across-multiple-application-server-profiles

3. Restart the WebSphere Application servers 26921 and 35411.

4. Generate the plugin-cfg.xml file for each application server (HOST-1 & HOST-2) using the WebSphere Integrated Solution console.

Launch the WebSphere ISC on Host-1:

Login as user “admin”

Go to Servers -> Server Types and click on “Web servers”.
Check the box beside “webserver1”
Click “Generate Plug-in” and a plugin-cfg.xml file will be created.

Graphical user interface, text, application, email Description automatically generated

Note: A plugin-cfg.xml file was created. Please note its location in the messages section near the top of ISC.

Stop the IHS service on this server if it already started.

Graphical user interface, text, application, email Description automatically generated

Copy this generated plugin-cfg.xml file located at

C:\Program Files\HCL\Compass\cqweb\cqwebprofile\config\cells\dfltCell\nodes\HOST-1-node\servers\webserver1\plugin-cfg.xml

To

C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\ HOST-1-plugin-cfg.xml

Then rename the file C:\Program Files\HCL\Compass\cqweb\cqwebprofile\config\cells\dfltCell\nodes\HOST-1 -node\servers\webserver1\plugin-cfg.xml to something else , ex. plugin-cfg-original.xml

Graphical user interface, text, application Description automatically generated

Repeat the same steps to generate a plugin-cfg.xml file on server Host-2

Graphical user interface, application, Word Description automatically generated

Graphical user interface, text, application, email Description automatically generated

Then move a copy of this file HOST-2-plugin-cfg.xml to the first host HOST-1 under the folder
C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\

Graphical user interface, text, application, email Description automatically generated

Then rename the file C:\Program Files\HCL\Compass\cqweb\cqwebprofile\config\cells\dfltCell\nodes\HOST-1-node\servers\webserver1\plugin-cfg.xml to something else, ex. plugin-cfg-original.xml

5. Edit both HOST-1-plugin-cfg.xml and HOST-2-plugin-cfg.xml located in C:\Program Files (x86)\IBM\WebSphere\Plugins\config\webserver1 .

Change “localhost” to the target server’s actual IP address or its Full Qualified Domain name.

5.1. In the file – HOST-2-plugin-cfg.xml ;
Change this:

<Server CloneID=”cqw26921″ ConnectTimeout=”5″ ExtendedHandshake=”false” MaxConnections=”-1″ Name=”dfltNode_server1″ ServerIOTimeout=”900″ WaitForContinue=”false”>

<Transport ConnectionTTL=”28″ Hostname=”localhost” Port=”12080″ Protocol=”http”/>

<Transport ConnectionTTL=”28″ Hostname=”localhost” Port=”12443″ Protocol=”https”>

<Property Name=”keyring” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.kdb”/>

<Property Name=”stashfile” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.sth”/>

</Transport>

</Server>

To this:

<Server CloneID=”cqw26921″ ConnectTimeout=”5″ ExtendedHandshake=”false” MaxConnections=”-1″ Name=”dfltNode_server1″ ServerIOTimeout=”900″ WaitForContinue=”false”>

<Transport ConnectionTTL=”28″ Hostname=”<host-2 ip address>” Port=”12080″ Protocol=”http”/>

<Transport ConnectionTTL=”28″ Hostname=”=”<host-2 ip address>” Port=”12443″ Protocol=”https”>

<Property Name=”keyring” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.kdb”/>

<Property Name=”stashfile” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.sth”/>

</Transport>

</Server>

5.2. (If the HOST-1 server’s IP address was <host-1 ip address> then for HOST-1-plugin-cfg.xml)

Change this:

<Server CloneID=”cqw35411″ ConnectTimeout=”5″ ExtendedHandshake=”false” MaxConnections=”-1″ Name=”dfltNode_server1″ ServerIOTimeout=”900″ WaitForContinue=”false”>

<Transport ConnectionTTL=”28″ Hostname=”localhost” Port=”12080″ Protocol=”http”/>

<Transport ConnectionTTL=”28″ Hostname=”localhost” Port=”12443″ Protocol=”https”>

<Property Name=”keyring” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.kdb”/>

<Property Name=”stashfile” Value=”C:\Program Files\ibm\WebSphere\Plugins/config/webserver1/plugin-key.sth”/>

</Transport>

</Server>

To this:

<Server CloneID=”cqw35411″ ConnectTimeout=”5″ ExtendedHandshake=”false” MaxConnections=”-1″ Name=”dfltNode_server1″ ServerIOTimeout=”900″ WaitForContinue=”false”>

<Transport ConnectionTTL=”28″ Hostname=”<host-1 ip address>” Port=”12080″ Protocol=”http”/>

<Transport ConnectionTTL=”28″ Hostname=”<host-1 ip address>” Port=”12443″ Protocol=”https”>

<Property Name=”keyring” Value=”C:\Program Files (x86)\IBM\WebSphere\Plugins/config/webserver1/plugin-key.kdb”/>

<Property Name=”stashfile” Value=”C:\Program Files (x86)\IBM\WebSphere\Plugins/config/webserver1/plugin-key.sth”/>

</Transport>

</Server>

Save the files.

6. On HOST-1 if C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\plugin-cfg.xml exists then rename it (plugin-cfg.xml.original) or move it to a non-working directory.

7. We need to merge the two plugin files: HOST-1-plugin-cfg.xml and HOST-2-plugin-cfg.xml

Use the pluginCfgMerge tool to combine the plugin-cfg.xml files. Open a DOS command window on the NJMYCLDDW95811 server and go to C:\Program Files (x86)\IBM\WebSphere\AppServer\bin and enter the command:

C:\Program Files\IBM\WebSphere\AppServer\bin>pluginCfgMerge.bat “C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\HOST-1-plugin-cfg.xml” “C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\HOST-2-plugin-cfg.xml” plugin-cfg.xml

Merging:

Found file C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\HOST-1-plugin-cfg.xml: true

Merging a non-ODC generated plugin-cfg.xml

Found file C:\Program Files\IBM\WebSphere\Plugins\config\webserver1\HOST-2-plugin-cfg.xml: true

Merged plugin config file written to plugin-cfg.xml

Merge Complete

C:\Program Files\IBM\WebSphere\AppServer\bin>

Move the resulting plugin-cfg.xml file to C:\Program Files\IBM\WebSphere\Plugins\config\webserver1

Graphical user interface, text, email Description automatically generated

8. Copy the key database file, plugin-key.kdb and the sth file plugin-key.sth located at

C:\Program Files\HCL\Compass\cqweb\cqwebprofile\config\cells\dfltCell\nodes\HOST-1-node\servers\webserver1

on the HOST-1 server to:

C:\Program Files\IBM\WebSphere\Plugins\config\webserver1 on the HOST-1.

Note: Before you copy these files, you will see that the same files are already existing in the folder C:\Program Files\IBM\WebSphere\Plugins\config\webserver1. You will need to first rename these files to something else, ex. Plugin-key-original.kdb and plugin-key-original.sth

Copy the key database file, plugin-key.kdb located at

C:\Program Files\HCL\Compass\cqweb\cqwebprofile\config\cells\dfltCell\nodes\HOST-2.NONPROD.HCLPNP.COM-node\servers\webserver1

on the server HOST-2 to a temporary location on the server HOST-1.

On the HOST-1 open the IBM Key Management utility.

Graphical user interface, text, application, email Description automatically generated

Click on Key Database File > Open, then click on Browse and explore to the path where you have saved the kdb file copied from Host-2:

Graphical user interface, application Description automatically generated

Graphical user interface Description automatically generated

Enter the password that you had set while creating this database file on Host-2:

Graphical user interface Description automatically generated

It will now show you the kdb file you imported in the ‘Filename’ field and ‘default’ under the ‘Personal Certificates’ field, as shown below:

Select ‘Signer Certificates’ option from the drop down and click on ‘Extract’, as shown below:

Graphical user interface Description automatically generated

Graphical user interface, text, application, email Description automatically generated

Add the recently created arm file to the database file:

Graphical user interface, application Description automatically generated

Graphical user interface, text Description automatically generated

Start the IHS service on Host-1 that was stopped earlier.

This completes the configuration of load balancer on Compass web servers.

To test the load balancing, you need to logon to the Compass Web URL on both hosts, i.e. https://Host-1/cqweb/ and https://<Host-2>/cqweb/ , and for both these URLs it shows the same process ID, as mentioned below:

Cqrpc process is running on Host-2, and the process id is 17608 as seen in the below screen:

When you access the CQWeb URL – https://Host-1/cqweb/ as Compass admin user, and it shows the process id of cqrpc.exe process running on Host-2, i.e. 17608 as seen below:

Graphical user interface, text, application Description automatically generated

Note: Go to CQWeb Site Administration > Monitoring, to see these details

You can now access the CQWeb URL on Host-2 i.e., https://Host-2/cqweb/ and it also shows the same process id 17608 running on host-2, as seen in the below screen:

Graphical user interface, text, application Description automatically generated

Reference:

https://help.hcltechsw.com/compass/2.2.0/com.hcl.compass.doc/webhelp/oxy_ex-1/com.ibm.rational.clearquest.webadmin.doc/topics/c_cqwsvr_load_balance_config.html

 

Comment wrap

Start a Conversation with Us

We’re here to help you find the right solutions and support you in achieving your business goals.

Digital Solutions | March 13, 2023
Restoring Uncataloged Items From Library Manager
Learn how to restore "uncataloged" items from the Library Manager in HCL VersionVault.