Skip navigation
Share This:

Smart Reporting application internally uses the Jgroups for the Clustering / multicasting operation. Jgroups provides the default UDP multicasting, as per their implementation. I have came across with customers who do not allow UDP connection across the environment, hence the default implmentation would not work on such environment.  To address this issue, we can override Jgroup configuration to use the TCP multicasting , which in almost all customer environment is allowed .

Note: Use the below steps for Smart Reporting "DYNAMIC" cluster configuration when UDP Multi-casting is not allowed or not working as expected.

 

By following below steps , you are setting up the Jgroup configuration for multicasting to use TCP port instead of UDP.

Note : Please note that, if you have done any changes earlier for setting up the Smart Reporting Cluster , revert them all as required.

 

On the Smart Reporting servers which will be part of cluster , the below configurations needs to be performed -

  • Copy the attached yfjgroups.xml file to \SmartReporting\appserver\web-apps\ROOT\WEB-INF\

     Now edit the file , and provide the values for "HOSTNAME" and "REMOTEHOST", where HOSTNAME = current server IP Address and REMOTEHOST = other server's IP Address

  • Now, navigate to \SmartReporting\appserver\web-apps\ROOT\WEB-INF\web.xml and edit file to add below block for servlet element

<!-- 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>DYNAMIC</param-value>

</init-param>

<init-param>

<param-name>BroadcastConfiguration</param-name>

<param-value>C:\Program Files\BMC Software\ARSystem\SmartReporting\appserver\webapps\ROOT\WEB-INF\yfjgroups.xml</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>

<load-on-startup>11</load-on-startup>

</servlet>

  

3. Now restart the nodes one after another.

4. Done

 

To confirm whether the Smart Reporting nodes are running under a same cluster configuration , you can check the log SmartReporting\appserver\logs\bmcsmartreporting-stdout.*DATE*.log under cluster Cluster Management section from last node which was restarted post the above configuration, this will show you the all cluster information with cluster id , cluster nodes, etc.

Share This:

I have shared knowledge over the User Sync Utility earlier as well, but wanted to take a time and re-iterate my findings with more data and solutions to fix the customer reported problems. I prepared a Knowledge Base which has most of the Issues (Configuration / Environment)  related to User Sync in addition to knowledge links about Java trust-store, keystore, keytool , Pentaho/AI server configurations, etc. Kindly have a glance on this documentation when you face any issues with User Sync issues, this shall help you resolve the issue in one go.

 

Anyone interested to have a video experience you can watch the User Sync troubleshooting video at -> https://www.youtube.com/watch?v=oDrXtcVECsQ  [Part 1, Part 2] Author: Sachinkumar Ambulgekar

 

Happy Learnings !!

 

Regards

Sachin

Filter Blog

By date:
By tag: