Batch processing is traditionally used for reconciling and reporting transactions at the end of the day, week, month or quarter. It’s used in many business activities from payment processing to bill-ing, stock control, credit scoring, interest calculations and more. Batch applications have proved over the years to be an efficient, reliable method for bulk processing of updates to data.
Batch applications sometimes require exclusive access to resources in order to make them effi-cient to run and they typically share business logic online. Batch processing is usually accom-plished through automated processes that remove resources in CICS, run the batch process and finally restore the resources in CICS. This batch window, as it’s frequently called, can be minutes to hours long, during which time the CICS applications either aren’t available or may operate with reduced features.
CICS is a modern, general-purpose transaction processing environment for online applications, providing unparalleled qualities of service for mixed language workloads of business-critical data and processes. As companies provide access to their online services across more geographies and time zones, and customers require services at all hours of the day and night, there’s a growing need for online applications to be available continuously. This has led to pressure to minimize or even remove the window in which CICS resources are exclusively allocated to batch.
Here we discuss how these two conflicting interests can be aligned by allowing batch jobs to be architected in a way that allows them to run in parallel with online work, under the control of CICS.
A Modern Batch Paradigm
The key behavioral aspects of a batch application that can run alongside online transactional ap-plications are:
• The batch application must share access to resources with online applications.
• The batch application must be able to work with data that could be changing as the online applications process requests.
• The batch application must take regular checkpoints to free up transactional resources, so online applications aren’t blocked from completing for excessive amounts of time.
• If the batch application fails, it must be possible to restart it from its most recent checkpoint.
In addition to these key requirements, there are other important secondary requirements:
• The batch workload may have to complete by a certain time to meet service level agree-ments.
• The batch job may not be able to run until prerequisite processing has completed.
• It must be possible to manage the scheduling of the batch jobs and see the progress of a batch job.
• The solution must integrate well with existing traditional batch jobs and job schedulers.
• Development of batch applications should be as simple as possible and leverage widely available skills.
• It should be possible to share business logic between online transactional applications and batch applications.
IBM WebSphere Application Server (WAS) v8.5 includes the capability to schedule and process batch jobs using a paradigm that meets these requirements. It provides a multiplatform, Java-based batch solution that enables batch jobs to be executed across environments such as CICS and WAS.
WebSphere Application Server Network Deployment v8.5 for z/OS provides these key capabilities: