Salesforce

WorldServer - in a cluster environment, how do I make sure that the STATS engine is enabled only one one server?

« Go Back

Information

 
TitleWorldServer - in a cluster environment, how do I make sure that the STATS engine is enabled only one one server?
URL Name000017092
SummaryThe STATS engine runs despite any background_daemon configuration in general.properties file. If you work in a clustered environment, there will be a STATS engine running in each server. However, the main engine (Master) will be run by the server where the Idiom service (Worldserver) is started first. 

So if you have a preferred server from which you want assignment jobs to be run, follow these steps:

1- Stop the Idiom Service on all machines belonging to your clustered environment
2- Start the Idiom Service on all machines (with the exception of the FTS-only machines, if present), but make sure to start with the one on your preferred server, followed by the others.
Scope/EnvironmentWorldServer
Question
In a cluster environment, how do I make sure that the STATS engine is enabled only one one server?
Answer
As explained in this this article, starting from WorldServer 11.1.1., the projects and tasks assignments are run by an engine called STATS engine and are visible in the Background Jobs page as Update assigned and claimed tasks. The STATS engine processes only one job at a time and it is not possible to increase the number of engines that process the Update assigned and claimed tasks jobs. It is recommended that the STATS engine runs only on one server if you are working on a clustered environment. 

The STATS engine runs despite any background_daemon configuration in the general.properties file. If you work in a clustered environment, there will be a STATS engine running in each server. However, the main engine (Master) will be run by the server where the Idiom service (WorldServer) is started first

So if you have a preferred server from which you want assignment jobs to be run, follow these steps:

1- Stop the Idiom Service on all machines belonging to your clustered environment

2- Start the Idiom Service on the preferred machine/server.

3- Wait at least 900 seconds (15 minutes). This is the time needed for the "heartbeat" of the previously assigned server engine to signal a failing heartbeat. After 900 seconds/15 minutes, the only running WorldServer/Idiom services will become the "Master" engine. If you have assignments jobs executing or on Queue in the Background Job, you should be able to see that the preferred server engine starts to run the jobs after around 15 minutes. Note: if you do not wait long enough and start the Idiom service on the next server, the machine running the STATS engine will continue to run it because WorldServer has not detected a failing heartbeat and hence will continue to assign the STATS engine to the previous server.

4- Now you can start the Idiom service on the remaining servers/machines (with the exception of the FTS-only machines, if present)

Should the main engine (from the first server started) fail to send a heartbeat (for whatever reason) the engine placed on the second started server will take over.

You cannot prevent the STATS engine from running on a specific server in a clustered environment in general (unless you stop the Idiom Service on that server), but you can follow the method above to give precedence to a specific preferred server.
Reference
Attachment 1 
Attachment 2 
Attachment 3 
Attachment 4 
Attachment 5 

Powered by