Products | Versions |
---|---|
Spotfire Statistics Services | All Versions |
With a load balancer in front of a TIBCO Spotfire Statistics Services (TSSS) cluster, in order to maintain state information to provide a continuous experience to Web Player users, sticky sessions must be enabled on the given load balancer (this is the responsibility of the load balancer administrators). This is a prerequisite when configuring a load balancer with a TSSS cluster.
In addition to this, within Spotfire there are additional settings to be performed to return the cookie information that the load balancer uses to preserve session affinity. Without this configuration in place, it may be seen that requests from the Web Player to the TSSS are hopping between the cluster nodes which may cause data functions to fail.
Here are example log excerpts where a data function request with job id 1379 was incorrectly sent to two different Manager nodes for a single user session:
2019-05-22 17:11:38,674 | DEBUG | | ClusterMessageReceiverBase | Received message {ClusterNotificationAcknowledgementMessage message=S+SN|t=JobStatus|d=636652590984186913|sid=http://tsssMN1.boston.local/SplusServer|jid=1379|da=2}
2019-05-22 17:11:38,675 | DEBUG | | ClusterMessageReceiverBase | Received message {ClusterNotificationAcknowledgementMessage message=S+SN|t=JobStatus|d=636652590984186913|sid= http://tsssMN2.boston.local/SplusServer |jid=1379|da=2}
config export-service-config --capability=WEB_PLAYER --deployment-area=ProductionThe following configuration files will be exported. By default, these files are located in the <TSS install dir>\tomcat\bin\config\root directory.
2. Open the Spotfire.Dxp.Worker.Core.config file in a plain text editor, search for the following section in the file and configure the cookies' setting "autoTransfer" attribute.
<!-- Cookies from the TIBCO Spotfire Server that should be sent back on all requests: --> <!-- a ; separated list, example: "ARRAffinity;myCookie;myCookie2" --> <cookies autoTransfer="" />
Your load balancer administrator can provide you with the cookie name to use here. For example: If it is AWS ELB load balancer then it relies on a cookie named "AWSALB" to preserve session stickiness (refer to AWS ELB for more information). In this example, the cookie AWSALB needs to be configured in the Spotfire.Dxp.Worker.Core.config file like:
<!-- Cookies from the TIBCO Spotfire Server that should be sent back on all requests: --> <!-- a ; separated list, example: "ARRAffinity;myCookie;myCookie2" --> <cookies autoTransfer="AWSALB" />
config import-service-config --config-name=SessionStickinessForTSSSLoadbalancer
config set-service-config --service-id=<value> –config-name= SessionStickinessForTSSSLoadbalancer