IBM Support

TM1 Web and TM1 Applications Utilizing a Load Balancing Appliance

Troubleshooting


Problem

When deploying IBM Cognos TM1 Web where high-availability is required, it may be beneficial to implement load balancing on the IBM Cognos TM1 Web Server. Load balancing this portion of IBM Cognos TM1 can also provide fail-over capabilities should one of the IBM Cognos TM1 Web Servers experience a hardware or system failure. In the event of a server failure using this technique, the user(s) with active sessions on the server that failed would need to refresh their browser.

Resolving The Problem

1.1 An IBM Cognos TM1 Web Load Balancing Example

In order to enable load balancing on an IBM Cognos TM1 Web deployment the environment should include a load balancing appliance and at least 2 IBM Cognos TM1 Web Servers. Additionally, the proposed environment should be secured behind a firewall.

As part of the environment settings, verify that the load balancing appliance has sticky sessions (session affinity) enabled. This will ensure that each client request gets routed to the same server as that client's original request for the duration of the session and no further load balancing will take place for that user's session.

In order to load balance the requests further, several configuration files will need to be changed within the IBM Cognos TM1 server installs.

When these changes have been successfully implemented the result should be a load balanced TM1 Web environment. As TM1 users access the system, their initial requests will be load balanced across the number of TM1 Web Servers that have been enable in the environment.

In the example topology illustrated below by Figure 1, IBM Cognos TM1 Web user traffic is balanced between two IBM Cognos TM1 Web Servers (server A and server B). The requests are then passed to the IBM Cognos TM1 Admin Server and then to the TM1 Server.




Figure 1 Architectural diagram of a load balanced IBM Cognos TM1 Environment.

To enable the load balancing example described above, no changes will need to be made to any of the TM1 Web configuration files. Simply set the appropriate parameters on the Load Balancing Appliance and TM1 Web should work according to those settings.

1.1.1 Changing the tm1web_config.xml File


Enabling Load Balancing with TM1 Web requires the TM1 Web configuration file be updated to include the External URL of the TM1 Web server. This allows the CAM (Cognos Access Manager) server to redirect the session back to the correct TM1 Web URL after authentication.
Locate the TM1Web_Config.XML file in the following directory:
<install location>\IBM\cognos\tm1_64\webapps\tm1web\WEB-INF\configuration


Edit the file and find the “ExternalUrl” reference. Update the value to the URL of the TM1 Web URL. Save the updated file and recycle the TM1 Application server service.


Note: You must be running TM1 version 10.2.1 FP1 or higher in order for this to work.

2 Load Balancing IBM Cognos TM1 Applications


When deploying an IBM Cognos TM1 Application where high-availability is required, it may be beneficial to implement load balancing on the IBM Cognos TM1 Application Server. Load balancing this portion of IBM Cognos TM1 can also provide fail-over capabilities should one of the IBM Cognos TM1 Application Servers experience a hardware or system failure. In the event of a server failure using this technique, the user(s) with active sessions on the server that failed would need to refresh their browser.

2.1 An IBM Cognos TM1 Application Load Balancing Example

In order to enable load balancing on an IBM Cognos TM1 Application deployment the environment should include a load balancing appliance and at least 2 IBM Cognos TM1 Application Servers, as well as a shared storage device or redundant volume. Additionally, the proposed environment should be secured behind a firewall, as the IBM Cognos TM1 Application Servers must set the Apache service account to have domain access to the shared storage.

As part of the environment settings, verify that the load balancing appliance has sticky sessions (session affinity) enabled. This will ensure that each client request gets routed to the same server as that client's original request for the duration of the session and no further load balancing will take place for that user's session.

In order to load balance the requests further, several configuration files will need to be changed within the IBM Cognos TM1 server installs.

When these changes have been successfully implemented the result should be a load balanced TM1 Application environment. As TM1 users access the system, their initial requests will be load balanced across the number of TM1 Application Servers that have been enable in the environment.

In the example topology illustrated below by Figure 1, IBM Cognos TM1 Application user traffic is balanced between two IBM Cognos TM1 Application Servers (server A and server B). The requests are then passed to the IBM Cognos TM1 Admin Server and then to the TM1 Server.



Figure 1 Architectural diagram of a load balanced IBM Cognos TM1 Application Environment.

To enable the load balancing example described above, changes will need to be made to the IBM Cognos TM1 Application web.xml file and to the IBM Cognos TM1 Application pmpsvc_config.xml and fpmsvc_config.xml file. These changes can be made via the IBM Cognos Configuration Tool. The following subsections will provide the instructions on implementing these changes.

2.1.1 Changing the Apache Tomcat Web.xml File

1. On each of the TM1 Application Servers that will be load balanced, locate the file web.xml (default location: \Program Files\ibm\cognos\tm1_64\webapps\pmpsvc\WEB-INF\) and make a backup copy.

2. Open the web.xml file in an editor and add the following code before the </web-app>:closing tag.

<context-param>

<param-name>PmpsvcConfig</param-name>

<param-value> Enter the path to the shared storage FILE location of the pmpsvc_config.xml </param-value>

</context-param>

<context-param>

<param-name>FPMConfigDir</param-name>

<param-value> Enter the path to the shared storage FOLDER of the fpmsvc_config.xml </param-value>
</context-param>
<context-param>

<param-name>FPMInternalURI</param-name>

<param-value> Enter the URL of the INTERNAL pmpsvc server (not the balanced URL) </param-value>
</context-param>

The changes to the Apache Tomcat web.xml file are also illustrated by the following screen capture.




Figure 2 Web.xml file with a specified PmpsvcConfig / FPMConfigDIR / FPMInternalURI entry.

This change directs the IBM Cognos TM1 Servers to look for the pmpsvc_config.xml and fpmsvc_config.xml files in the shared storage location. The FPMInternalURI is what helps us ensure that a user session remains on the same TM1 Application Server.


2.1.2 Changing the IBM Cognos TM1 Application Definition Path

The Application Definition Path will now need to be updated to specify the

IBM Cognos TM1 Application Deployed Applications Directory in the Shared Storage location. To do this, take the following steps:

1. Open IBM Cognos Configuration located in the IBM Cognos TM1 Program folder.

2. Navigate to Local Configuration > Environment > TM1 Application Server. Click on the Value field for “Application Definition Path” and enter the path to the shared storage location.



Figure 3 Update to the IBM Cognos TM1 Application Definition Path

2.1.3 Changing the IBM Cognos TM1 fpmsvc_config.xml File

The fpmsvc_config.xml will now need to be updated to specify the

URI to the Load Balancing Appliance. To do this, follow the steps below:

1. Open Cognos Configuration on the servers where the TM1 Application Service is configured.

2. Modify the 'External Server URI' in the 'TM1 Application Server' section, to reflect your load balanced URI.

In order to avoid having IBM Cognos TM1 Applications replace the alias name with the name of the server that received the request, the External URI will need to be configured using a DNS name pointing to a virtual IP address provided by the load balancing appliance. For this example the external URI uses an alias http://IBMTM1CONTRIB as also illustrated by the following screen capture.





Figure 4 Update to the IBM Cognos TM1 Configuration

After these changes have been made and the IBM Cognos TM1 services restarted, the appliance should then load balance the requests at run-time to either IBM Cognos TM1 Application Server. The request balancing is controlled by the load balancing appliance algorithms and any additional setting preferences applied by the administrator.

Appendix A: Test Scenarios Used to Validate the IBM Cognos TM1 Load Balancing


The following IBM Cognos TM1 Application Web user testing scenarios were run against the load balanced environment listed above. No unexpected behaviors were encountered during these user tests. The tests and results are as follows:

· User 1 inside Application A accessing node X in one desktop, User 2 inside Application B accessing node Y in the other. All tests (taking owner, saving, committing, submitting and rejecting successfully).

· User 1 inside Application A accessing node X in one desktop, User 2 inside Application A accessing node Y in the other. All tests (taking owner, saving, committing, submitting and rejecting successfully).

· User 1 inside Application A accessing node X in one desktop, User 2 inside Application A accessing node X in the other. Take ownership - although both looked as having the ownership, only the last one who took it truly had the ownership; Both users had their typed values saved; Commit has only worked for the user who truly had the ownership (an error message popped for the other user, this is expected behavior); The first user who has submitted values is the effective owner, the other user received an error message (wrong state pop-up message, this is expected behavior); The same order applied to rejected nodes (a wrong state pop-up message, this is expected behavior).

· User 1 inside Application A accessing node X in one desktop, User 1 inside app B accessing node Y in the other. All tests (taking owner, saving, committing, submitting and rejecting successfully).

· User 1 inside Application A accessing node X in one desktop, User 1 inside Application A accessing node Y in the other. All tests (taking owner, saving, committing, submitting and rejecting successfully).

· User 1 inside Application A accessing node X in one desktop, User 1 inside Application A accessing node X in the other desktop: Take ownership - no error messages, ok; The last saved value is the user who got in the app; Commit works in both stations, but what is kept in the default sandbox is the last saved value; The first submitted had its values accepted, the other one received an error message (wrong state pop message, this is expected behavior); The same order applied to rejected nodes (wrong state pop message, this is expected behavior).

[{"Product":{"code":"SS9RXT","label":"Cognos TM1"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"--","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF016","label":"Linux"},{"code":"PF033","label":"Windows"}],"Version":"10.2","Edition":"","Line of Business":{"code":"LOB10","label":"Data and AI"}}]

Document Information

Modified date:
15 June 2018

UID

swg21671642