The same trigger in the job scheduler fires twice on multiple AP servers. What is the cause and what can I do about it?

[Occurrence condition]  
The job scheduler service is running on multiple AP servers. 

This is a very rare event in the timing of a trigger status update on multiple servers.

Trigger status mutation moves to WAITING -> ACQUIRED -> EXECUTING -> WAITING.

Perform trigger acquisition of the status “WAITING” scheduled to be fired at AP1.
Trigger acquisition for status "WAITING" is performed in AP2 before the trigger update (update to WAITING -> ACQUIRED) transaction is completed in AP1.
The AP1 transaction is then completed.
Status update "ACQUIRED -> EXECUTING -> WAITING" with trigger firing completed at AP1 before updating the status to "ACQUIRED" at AP2.
At this time, it will be determined that the trigger has stopped firing on AP1, but the trigger has not fired on AP2 and will also fire on AP2.

The problem can be avoided by doing one of the following.
The problem can be avoided by acquiring a lock the next time you acquire a trigger to fire.

For intra-mart Accel Platform 2016 Summer or later, you can set it up as follows. 

This can be avoided by changing the lock acquisition setting in im-job-scheduler-config.xml to true. 

For intra-mart Accel Platform 2016 Spring or earlier, you can set it up as follows.

It can be avoided if a file,, under WEB-INF/classes is created and the following is specified.

It can be avoided by making the job scheduler service a single server.

-- Target-----------------------------------------------------------------------
iAP/Accel Platform/All Updates  

Was this article helpful?
0 out of 0 found this helpful
Powered by Zendesk