We are having trouble implementing a local keep alive ping for our load balancer to determine if the SPS server is active and available.

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

Description:

The best solution for a keep alive ping is to have a request that goes through the SPS server and also hits the backend application. If that returns correctly then you have tested the complete path and not just the availability of the SPS server itself.

Nevertheless you can implement pages that will be served locally from the SPS server itself by using JkUnMount:

Edit httpd.conf file adding:

JkUnMount /SPStest/forms/*.html ajp13

Will ensure files matching that pattern, are not passed onto the servlet engine for processing but are handled locally by the Apache httpd process.

Solution:

The requirement was to have a local page on the SPS server than the front end lod balancer can use to determine if the SPS server is listening. This page is also used as a manual switch, by the client renaming it to another name to quickly drop one SPS server out of the cluster.

Originally the client was using alive.fcc page, which can se served locally, but while that does work to determine if the machine is alive, the alive.fcc page is cached on first access attempt in the webagent portion of the SPS server, and renaming the alive.fcc page to not-alive.fcc would not make the page unavailable since the server would continue to reply with the cached version.

Nevertheless, you can implement resources to be served locally from the Apache httpd portion of the SPS server, and this can be useful in some circumstances to serve unprotected content such as images directly from the SPS server.

The JkMount/JkUnMount commands in the httpd.conf file can be used to determine which content is passed onto the secure-proxy/tomcat server and which content is served locally via the Apache httpd server e.g.:

JkUnMount /SPStest/forms/*.html ajp13

In this case, for this particular client:

I have added HTML page alive.html under /netegrity/secure-proxy/httpd/htdocs/SPStest/forms/alive.html

     <html>      
     <head>    
     <title>SiteMinder Alive Page</title>    
     </head>    
     </html>  

and added JkUnMount entry in httpd.conf file as:

JkUnMount /SPStest/forms/*.html ajp13

The commands:

wget http://localhost/SPStest/forms/alive.html
wget http://www.sample.com/SPStest/forms/alive.html

Will now get the file alive.html locally from the SPS machine, and can be used by the load balancer as a quick test to determine if the SPS server is alive. But just to stress again, this is not a complete solution, as to use this you would need to also be monitoring the backend service with its own keep alive ping.

Note: Depending upon your circumstances, the best solution for a keep alive ping is usually to have a request that goes through the SPS server and also hits the backend application. If that returns correctly then you have tested the complete access path and not just the availability of the SPS server itself.