This forum is now a read-only archive. All commenting, posting, registration services have been turned off. Those needing community support and/or wanting to ask questions should refer to the Tag/Forum map, and to http://spring.io/questions for a curated list of stackoverflow tags that Pivotal engineers, and the community, monitor.

Control-M vs Quartz

Jul 5th, 2007, 06:05 AM

Is there any best practices regarding the use of scheduling framework? Our data centre uses Control-M for job scheduling, but I think that if all my scheduling/ job definition is based on Control-M, it would be more complex to set up a development environment.

And I understand that to submit a batch job, a GUI tool needs to be installed in the PC.

Will Quartz be a better approach for scheduling? Can Quartz support defining job dependency?

Quartz doesn't have all the features of Control-M or Autosys - it is supposed to be lightweight. If you want something even more lightweight you can just use the OS (cron, at, etc.).

Simple sequential dependencies can be implemented using the job-steps model of Spring Batch. We think this is quite common. And in fact it makes it easier to correct a common mis-use of Control-M - having hundreds of jobs configured, many of which are not independent, but only depend on one other.

Comment

One job can depend on many jobs.
and many jobs can be triggered when another job is completed?

Another question is: for the reason of company standard, I have to use Control-M as job scheduler anyway. Do you think it would make a powerful combination to use Control-M and Spring batch together? Any reason I need to have Quartz to sit in between?

Thanks!

Comment

If one job depends on many others, but those others can be executed, sequentially then the initial release of Spring Batch will support this through a set of steps inside a single job. Later releases will give more options. But if the individual input jobs are truly independent of one another, it might still be better to use an external scheduling tool.

We expect a large class of users will be in your situation, and Control-M (or Autosys etc.) plus Spring Batch will be a perfectly sensible combination for all planned releases. Use Spring Batch to implement and deploy your business logic, and the other tools to trigger and manage the execution.

I don't think there is a definitive answer to the last question: I guess you might want to use Quartz where you don't need the extra features of Control-M. You certainly don't need to use Quartz if you have Control-M.

Comment

We certainly support from the very first line of code stopping a job while it running. Also you can stop an execution and then restart it, which is functionally equivalent to a pause and "unpause" (or whatever you call it), but with more management information.