Setting up Smart Reporting as a cluster
When installing BMC Helix ITSM: Smart Reporting in a clustered environment, consider the following points:
- Install primary BMC Helix ITSM: Smart Reporting server with a new or existing database.
- Install secondary server with the database used by the primary node.
- Two types of clusters are available: Dynamic and Repository. The Dynamic cluster stores the node information in the memory, and the Repository cluster stores the node information in the centralized database. From version 18.08, the ClusterType parameter is set to Repository.
If you have already performed the Onboarding process before the installation of the secondary server, do not install the secondary node with the same database. Instead, create a blank or dummy database for the secondary server installation. After the successful installation, change the secondary node database details. For more information, see How To Change Repository Database details.
The installation may overwrite the existing table, so BMC recommends installing the secondary node with a dummy database. If it is not possible to create a dummy database, you can clone the primary server.
To set up BMC Helix ITSM: Smart Reporting as a cluster (Tomcat only)
- Ensure that all the severs in cluster are in same time zone and are in sync.
- Install the BMC Helix ITSM: Smart Reporting on each node. Make sure all nodes point to a primary node repository.
- On each node update the web.xml file located at SmartReportingInstallDir/appserver/webapps/ROOT/WEB-INF:
Update and add the following:
<!-- Cluster Management -->
<servlet>
<servlet-name>ClusterManagement</servlet-name>
<servlet-class>com.hof.mi.servlet.ClusterManagement</servlet-class>
<init-param>
<param-name>ClusterType</param-name>
<param-value>REPOSITORY</param-value>
</init-param>
<init-param>
<param-name>SerialiseWebserviceSessions</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>CheckSumRows</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionId</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>EncryptSessionData</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>AutoTaskDelegation</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>TaskTypes</param-name>
<param-value>
REPORT_BROADCAST_BROADCASTTASK,
FILTER_CACHE,
REPORT_BROADCAST_MIREPORTTASK,
SOURCE_FILTER_REFRESH,
SOURCE_FILTER_UPDATE_REMINDER,
ORGREF_CODE_REFRESH,
THIRD_PARTY_AUTORUN
</param-value>
</init-param>
<init-param>
<param-name>MaxParallelTaskCounts</param-name>
<param-value>
5,
5,
5,
5,
5,
5,
5
</param-value>
</init-param>
<load-on-startup>11</load-on-startup>
</servlet>If the AutoTaskDelegation parameter is set to true, the background tasks are automatically delegated to the next available node if the server goes down.
Comment the following:
<servlet>
<servlet-name>SystemTaskManager</servlet-name>
<servlet-class>com.hof.servlet.SystemTaskManager</servlet-class>
<load-on-startup>8</load-on-startup>
</servlet>Add <distributable/> tag
The following is a sample snippet:<web-app>
<distributable/> <!-- System Event and Debug classes -->
<listener>
<listener-class>com.hof.servlet.SysSessionListener</listener-class>
</listener>Perform this step if HTTPS traffic is offloaded at the load balancer and Smart Reporting is configured to run on HTTP:
In the server.xml file (Tomcat configuration file), set the HTTP Connector proxyPort and scheme to the values displayed in the following code snippet. The path of the server.xml file is ARSystemInstallationDirectory\SmartReporting\appserver\conf\server.xml.
<Connector
port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
proxyPort="443"
scheme="https"
disableUploadTimeout="true"/>proxyPort is the port of the LB (F5).
(For Dynamic cluster type only) Add the following lines of code:
Operating System
File name
Code
Linux
catalina.sh
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_addr=<multi-cast IP Address>"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_port=<multi-cast Port>"
Example:
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_addr=228.0.0.5"
JAVA_OPTS="$JAVA_OPTS -Djgroups.udp.mcast_port=5555"Windows
catalina.bat
set JAVA_OPTS=%JAVA_OPTS% -Djava.net.preferIPv4Stack=true
set JAVA_OPTS=%JAVA_OPTS% -Djgroups.udp.mcast_addr=228.0.0.5
set JAVA_OPTS=%JAVA_OPTS% -Djgroups.udp.mcast_port=5555
After the cluster is set up, onboard the tenant.
For more information, see Onboarding. Also see the following video (1:44) about the Smart Reporting Onboarding process: