A scheduled workflow will not get triggered on time if there are three or more workflows scheduled to run at the same point in time.
The usual flow for triggering a workflow shown below.
i) IWX will Insert a lock on the workflow.
ii) IWX will acquire the trigger for the workflow.
iii) Workflow will be executed on time.
If a particular workflow is not getting triggered on time, you could see the below messages in bold at the scheduled time in $IW_HOME/logs/platform/scheduler-service.log (4bc1a49438e11829a382b2c8 is the ID of the workflow which you can get from Infoworks UI)
2021-03-02 04:00:05,549 INFO [QuartzScheduler_QuartzSchedulerThread] dao.LocksDao:90 : Inserting lock for trigger iw_workflow-build:b4a230e393488f3375fce3b8.workflow-build:b4a230e393488f3375fce3b8
2021-03-02 04:00:05,577 INFO [QuartzScheduler_QuartzSchedulerThread] dao.LocksDao:162 : Removing trigger lock iw_workflow-build:b4a230e393488f3375fce3b8.workflow-build:b4a230e393488f3375fce3b8.NON_CLUSTERED
2021-03-02 04:00:05,585 INFO [QuartzScheduler_QuartzSchedulerThread] dao.LocksDao:164 : Trigger lock iw_workflow-build:b4a230e393488f3375fce3b8.workflow-build:b4a230e393488f3375fce3b8.NON_CLUSTERED removed.
2021-03-02 04:00:05,585 DEBUG [QuartzScheduler_QuartzSchedulerThread] *core.QuartzSchedulerThread:276 : batch acquisition of 0 *
IWX will try to Insert a lock for the workflow and then immediately the lock will be removed without triggering it. The batch acquisition count will be displayed as 0.
Root cause: This issue happens if there are three or more workflows scheduled to run a particular point in time because of the misfire threshold being 5 seconds and a single scheduler thread is taking care of the triggers. This is a limitation in the IWX scheduler which is fixed in IWX v4.5
Applicable Infoworks Versions