Setting up a Cluster for Analyst on Linux

Analyst cluster supports request level clustering i.e., requests can be distributed to any node in the cluster as the session is shared across all the nodes. Follow the instructions specified below to configure session sharing.

  1. Shut down AnalystConnect service
  2. Setting 'jvmRoute': The jvmRoute attribute of the Engine element allows the load balancer to match requests to the JVM currently responsible for updating the relevant session. It does this by appending the name of the JVM to the JSESSIONID of the request.
    • Go to the directory: "<SSA_INSTALL_DIR>\analyst\connect\conf\"
    • Open file "server.xml" for editing
    • Append an attribute with name "jvmRoute" to <Engine> element.
  3. Use a cluster-aware session manager - Use DeltaManager, which provides cluster-aware session management, as well as additional capabilities. The attributes we have configured, "expireSessionsOnShutdown" and "notifyListenersOnReplication", have been configured to prevent a failing node from destroying sessions on other clustered nodes and explicitly notify the ClusterListeners when a session has been updated. Follow the below steps:
    • Go to the directory: "<SSA_INSTALL_DIR>/analyst/connect/conf/"
    • Open file "context.xml" for editing.
    • Add/Uncomment following section under Context element <Manager className="org.apache.catalina.ha.session.DeltaManager" expireSessionsOnShutdown="false" notifyListenersOnReplication="true"/>
  4. Configure the cluster :
    • Go to the directory: "<SSA_INSTALL_DIR>/analyst/connect/conf/"
    • Open "server.xml" file for editing.
    • Uncomment <cluster> element
  5. Currently, the analyst application is not fully distributable due to a third party dependency (javamelody). To make the application distributable, perform the below steps::
    • Go to the directory: "<SSA_INSTALL_DIR>\analyst\connect\conf\webapps\connect\WEB-INF\lib"
    • Delete javamelody-core-1.45.0.jar file for editing.
    • Start the <AnalystConnect> service