0
Fixed

Scheduler not functioning correctly

Adam van Vliet 12 years ago updated by anonymous 8 years ago 11

Currently the scheduler that is used for most operations is not the one that is controlled by the user. This needs to be corrected so that the scheduler is of any use.

Also, please check how Event Broker notified the user that the scheduler is disabled, if at all. I imagine we didn't allow things to be triggered if the scheduler was stopped.

Also, please check how Event Broker notified the user that the scheduler is disabled, if at all. I imagine we didn't allow things to be triggered if the scheduler was stopped.

We don't allow it, but it's just a log message. It used to be an exception but since some things (e.g. FIM Portal) are set to automatically call EB it was causing huge issues.

Not suggesting we have to be constrained in exactly the same way, but I don't see a huge point in deviating from that either.

IDB-330 also mentions that a connector cannot be disabled whilst it is running.

Jobs scheduled and run/not run correctly, only need logging to notify when jobs should fail.

We also need messages in the event that a user tries to run an operation manually. At present, the job will not run, with no feedback on the UI or in the log, and will fire off when the scheduler is enabled.

Didn't we deal with that in EB by not even giving them option to run things unless the scheduler was on (e.g. hide the buttons)?

That is probably an even better fix, but the messages should still appear I think. What if the scheduler is disabled while someone has browsed to a connector?

Well obviously that needs to happen as well just as EB does it, but it should occur with a explicit check to ensure the scheduler is already enabled.

It was hidden on the UI and where possible an explicit check was made by the running engine as to whether the scheduler state supported the operation being requested.

This issue has been resolved.

  • All manual connector jobs have been hidden on the UI when the scheduler is disabled.
  • There are now three schedule composites which are differentiated in the following ways:
    + Forced Job: For jobs that should be manually run through user input, and run immediately, these jobs are cleared out when the scheduler is disabled and will error if an attempt is made to add schedules when it is already disabled.
    + Job : Used for scheduled jobs, such as Get All Entities timings/Polling etc., these jobs are maintained when the scheduler is disabled but never run.
    + Internal : The scheduler has no effect, this is used for internal scheduling of Idb components.
  • Each of these schedule composites are maintained by an IScheduler component which is passed down in the engine plug-in information.
  • Additionally, each engine checks the state of the scheduler before a job is run, so a more friendly message can be displayed, before hitting the IScheduler itself (ConnectorJobExecutor for connectors and LDIFAdapterBase for adapters).

Ported schedule regression tests from Event Broker v3 to regression test document