How to correctly deploy the Tomcat Health Servlet in regards to Load Balancer?

Document ID : KB000048128
Last Modified Date : 14/02/2018
Show Technical Document Details

Description:

Page 132 of the CA Service Desk Manager Implementation Guide includes a section "Configure the Load Balancer". The steps outlined in regards to deployment of the HealthServlet.war is clarified in this document.

Solution:

The purpose of the Tomcat Health Servlet is to be able to provide a check of the CA Service Desk Manager server to assure that all processes are up and functional. The steps outlined in the Implementation Guide states:

"Copy the HealthServlet.war file from the $NX_ROOT/samples/HealthServlet directory to $NX_ROOT/bopcfg/www/CATALINA_BASE/webapps directory. "

If you were to deploy the Servlet in this fashion and if the CA Service Desk Manager Tomcat server experienced an outage, the Servlet would fail to reporta "NOT OK" response - it would just fail to function. It is because of this the desire is to always keep the Health Servlet in a separate Tomcat Instance that is on the CA Service Desk Manager server, but not tied to CA Service Desk Manager itself.

The recommended steps for deploying the Health Servlet are located further in the same document in the section "How to Enable Auto-Failover" and should be used instead:

  1. Install Apache Tomcat on the background and all standby servers.

    Note: Ensure that Tomcat is using JRE 1.7 and ensure that the Tomcat is not using the port number that is configured for the CA SDM components.

  2. (Optional) Configure SSL on the Tomcat servers that you have installed. For more information about configuring SSL, see the How to Configure SSL Authentication scenario or the Administration Guide.

  3. Deploy the Health Servlet. Complete the following steps:

    1. Copy the HealthServlet.war file from the $NX_ROOT/samples/HealthServlet folder to the TOMCAT_HOME/webapps folder.

    2. Restart Tomcat.

      The HealthServlet.war file is deployed in the webapps folder. To confirm the deployment, verify that the HealthServlet folder is created in the same webapps folder.

      After the successful deployment, the Health Servlet is ready to perform the health checks. It includes checking the status of the SLUMP and health of the CA SDM processes that are defined in the health.xml file. Find the health.xml file in the following location:

      TOMCAT_HOME/webapps/HealthServlet/WEB-INF/classes

  4. (Optional) Customize the health.xml based on your organization needs. For example, you want to monitor the webengine process. Add the process in the health.xml file with the correct tagname, as defined in CA SDM. Complete the following steps to find the tagname:

    1. Open the pdm_startup.i and pdm_startup files from the $NX_ROOT/pdmconf directory.

    2. Look for the process that you want to monitor in both the files.

    3. Find the corresponding tagname by matching the variables in both the files.

      For example, webengine process is defined in the pdm_startup.i file as follows:

            #define WEBENGINE(_TAG,_HOST,_SLUMP_NAME,_DOMSRVR, _CFG, _WEBDIRECTOR, _RPC_NAME)

      The webengine process is defined in the pdm_startup file as follows:

            WEBENGINE(webengine, $NX_LOCAL_HOST, web:local, domsrvr, $NX_ROOT/bopcfg/www/web.cfg, "", "rpc_srvr:%h")

      From the example, we can find out that the tagname for webengine process is webengine.

Important! If you are creating a new process, the existing process is commented out in the pdm_startup file and new entries are created. Ensure that you look for the tagname in the new process entries.

Important! If you customize health.xml, ensure that the XML does not have any errors and that you restart Tomcat to reflect the changes that are made to the XML.