I'm working on Workload Automation DE 12. Recently we've run into problems with applications running unexpectedly. For example, an application was held for several days. Then it was released. It ran for a day, as expected, but then it was placed on hold and then released before the next scheduled time. The process started immediately and unexpectedly. It was not scheduled to run that day. The only documentation I can find to support what I saw was this:
This seems to indicate that the server is tracking how many times the app would have run and keeps that counter in place long after the app has been released. However, this counter is not visible to the users. This has led to error events. In that, apps have run unexpectedly.
When you use HOLD/RELEASE if there are any missed runs it will trigger the flow once. If you would like more control and have the option to manually trigger or let it pick up on the next scheduled run use SUSPEND/RESUME instead. When you RESUME a flow it will not trigger any missed runs and the schedule will resume with the next scheduled run.
As Sharon stated, it will only run once when released if the event was held then missed a scheduled run.
There is no counter of how many times the event should have ran that i have ever noticed, are you able to reproduce the results?
Something we have had to do is download the app and check "hold on submission" then release the event and when it is triggered, force complete it. We do this when an event was held and missed a schedule run and we need to release it without it actually running, for times when the application team first decided they want it to trigger but now don't want it to run. Another way is to change the run frequency at the app level (if you are sure all jobs are inheriting it, or check each job) and put "do not run daily" then change it back after releasing the event
As suggested above,Suspend/Resume needs to be used if you want events not to run after Resuming it.
One suggestion to know the number of times it should have executed , you can find from logs - please search for the following string in the <server>/logs/tracelog_<datetime>
Event <event> not executed: held
Count of number of times the above log message appears will give the number of times it missed its execution.
Hope it helps!