The Cantara Integration Platform provides a powerful solution for creating RESTful services for Oracle JD Edwards EnterpriseOne as well as a comprehensive platform of mobile applications and client software development kits for mobile and desktop applications.
What you may not know is that the solution also incorporates a powerful batch scheduling tool at no extra cost. The scheduling platform overcomes a number of key deficiencies in the standard JD Edwards EnterpriseOne batch scheduler and at a price point that makes deployment an easy decision.
So, what are the key pain points of the JD Edwards EnterpriseOne batch scheduler and how does the Cantara Advanced Job Scheduler overcome these?
There are only two ways to deal with inter-job dependencies with the standard JD Edwards scheduler and neither of them are very appealing. The first, not so safe way, is to just make sure that jobs are scheduled far enough apart that the first job is finished before the second one starts. Of course, there is no guarantee that the first job will not be held up unexpectedly and the second job will just kick off any way.
The second, more common method, is to schedule all dependent jobs in a single threaded queue. Unfortunately, this is a very inefficient method and leads to extended batch processing windows, especially when there are multiple jobs involved.
The Cantara Advanced Job Scheduler has a very clever way of overcoming this problem and making the overall batch schedule much easier to manage. The first element is to enable batch jobs to be scheduled in groups with dependency definition within the group. The second element to the solution is the ability to define dependencies between groups. Let’s look at these two elements in more detail.
Generally, day end processing incorporates several closely related batch jobs that must be appropriately sequenced. A good example of this the manufacturing day end batch jobs. Within the Cantara scheduler can you can define a manufacturing day end group and place within this the manufacturing accounting and work order commitments repost batch jobs. You can define the group as being sequential on success, which basically means that each job within the group must complete before the next job is submitted in the order specified. What this means that rather than having to schedule 5 batch jobs independently, the user only needs to schedule the group. If any of the jobs fails then the group will stop processing and a notification email will be sent to the designated monitor for that group. Cantara also supports parallel submission within a group if dependency is not an issue.
On top of group scheduling, Cantara then allows the definition of inter-group dependencies. So, to use the manufacturing account group example, you can also define a GL batch post group and make this dependent on the completion of the manufacturing accounting group. Cantara supports multiple dependency types include submit on success, submit on completion (even in the prior group has errored) or submit on start which means that group b won’t start before group a but can run in parallel.
The added benefit of inter-group dependencies is that a single group can be dependent on the completion of an unlimited number of other groups. In the case of GL batch post, we may require that manufacturing accounting, sales day end and AR/AP processing have been completed before the GL batch post is submitted. This enables users to schedule the three prior groups to run in parallel thus maximizing system utilization and minimizing the window within which the day end processing must run.
The JD Edwards schedule does not contain any effective method of schedule monitoring and thus organizations generally must revert to third party tools that monitor the JD Edwards database. This approach is complicated and not easily repeatable as the parameters that constitute failure tends to differ between jobs.
The Cantara Advanced Job Scheduler has a simple monitoring and notification system that allows users to define notification triggers and to incorporate standard enterprise system monitoring tools if required. Not only does Cantara monitor the state of the submitted batch job but it also tracks the run time of the scheduling group. Users can define a minimum, target and maximum run time for each group and can decide if a group executing outside of these tolerances constitutes a failure. The maximum run time is an easy metric and generally indicates that a batch job has encountered a problem either through incorrect data selection, invalid processing logic that has caused an infinite loop or system performance problems. As soon as the maximum run time is exceeded a notification is sent the group monitor informing of the issue and Cantara can also cease execution of the group in this instance based on group configuration. The minimum run time threshold is utilized to ensure that a scheduled group has completed some data processing. There’s nothing worse that assuming the batch job has processed successfully only to find that all the report displays is a message stating “No Data Selected”.
In addition to this, enterprise monitoring tools can interrogate the state of the batch scheduler and check for failed groups either through REST services published by Cantara or direct access to the Cantara scheduler database if preferred.
Job Output from Cantara Console or via notification
Cantara allows access to the PDF or CSV output of JD Edwards batch jobs directly from the Cantara Administration Console. In addition, you can choose to have these outputs emailed to one or more subscribers automatically on job completion.
Restarting the Scheduler
How many times has an organization stop their batch scheduler for a period of time, forgotten to purge the missed jobs, restarted the scheduler and then seen their batch queue fill with jobs that are not required. The Cantara Advanced Job Scheduler provides a simple method to deal with this situation. There are two options for each scheduled group. The first is to just skip the execution until the next scheduled trigger point and the second is to submit the group once immediately before then resuming the normal schedule. As Cantara still maintains dependencies between groups it makes stopping and starting the scheduler a painless experience.
One common requirement for organizations is to prevent jobs like GL batch post from running whilst month end processing is being carried out. For most, this requires the schedule to be manually adjusted to disable the jobs and then another adjustment to reenable them which can be a tedious process. The Cantara scheduler allows for exclusion calendars to be defined and applied to multiple scheduling groups. In simple terms, you may choose to have a batch post job run every 15 minutes and then exclude execution for three days during month end processing so that it can be run manually as required.
Processing Option overrides and Variables
A common headache for users of the JD Edwards scheduler is the requirement to actively maintain processing options and data selection that incorporates things like processing date, current financial period, or multiple changing business units. The Cantara scheduler overcomes this limitation with a couple of powerful features. The first is that the Cantara scheduler can override processing options and data selection on report submission. This allows users to define a single version within JD Edwards and then reuse that version multiple times, with different processing options and data selection, within the Cantara scheduler. So, when changes are required, especially to data selection, it is no longer a requirement for the version to be promoted through multiple environments and for a JD Edwards package to be built and deployed for those change to take effect.
The second feature is the use of variables within processing options, report interconnects and data selection. Let’s say for example that you have multiple reports which all require the current financial period to be defined. Within Cantara you would define a variable that equates to the current financial period and then apply this variable to each of the reports that requires it. Now a change to the variable value is automatically applied to all reports that utilize that variable making period close and changes a simple task. In addition, Cantara variables support basically calendar arithmetic. This allows users to define data selection and processing option dates that are calculated from today’s date. This means you can now set a report processing date to be Today minus or plus any number of days.
Complex Scheduling Patterns
With the Cantara scheduler, a wide range of scheduling patterns can be achieved. No longer are you limited to a static interval based of a start time. You can choose simple patterns like run every 10 minutes or 24 hours up to far more complex patterns such as run at 5:30pm every Mon, Wed and Fri and only in the months of October to December. In addition, Cantara is JD Edwards date pattern aware which means jobs can be scheduled based on the financial date pattern of any company. You may wish to schedule jobs to run on the last day of the period or the first weekday of the period or the last Friday of every quarter. All of these options are possible with the Cantara scheduler and, combined with the advanced dependency management, an extremely efficient and robust job schedule can be defined for any organization.
High Availability and Load Balancing
A major pain point for organizations that are required to meet strict service level agreements and availability targets is the fragility of the JD Edwards scheduler. The Cantara Advanced Job Scheduler overcomes this issue in two ways. Firstly, the Cantara Integration Platform supports horizontal scaling which means that multiple Cantara instances can run the same schedule at the same time. Thus, if a single Cantara instance fails the schedule will continue to run as expected. Secondly, the Cantara Integration Platform supports load balancing and fail over between JD Edwards batch servers. No longer is the JD Edwards schedule required to run on a single JD Edwards enterprise server and the processing can be spread across multiple servers. If any single batch server fails, Cantara automatically removes it from the group and continues processing on the remaining servers. In addition, Cantara batch server groups are self-healing so if it detects that the batch server has resumed operation it will be automatically included back in the group.
The Cantara scheduler allows scheduling across multiple JD Edwards environments. For example, you may choose to define a full job schedule against the CRP environment before changing over to the UAT and then finally the production environment. Alternatively, you may choose to have a mixed schedule with some jobs running in production and other running in non-production. All of these options are available with the Cantara scheduler.
Non-JD Edwards Scheduling
Cantara provides a flexible extension framework which can be included in the job schedule. This means that jobs that are not part of JD Edwards can be incorporated into the schedule, including dependencies. Out of the box Cantara comes with extensions for script execution (for all platforms) and AIS service execution. An example of where this is useful would be to kick of ETL jobs that extract data into a data warehouse once the day end processing has completed. Another option would be to populate Z Tables within JDE prior to executing the import batch job. Extensions can be written for any number of different applications and situations and therefore greatly extend the reach and flexibility of the Cantara Advanced Job Scheduler.