752 WebSphere Application Server V8.5 Administration and Configuration Guide for the Full Profile
21.1 Overview of WebSphere Batch
Batch applications are designed to execute long and complex transaction processing that
typically executes computationally intensive work. This type of processing requires more
resources than traditional online transactional processing (OLTP) systems. Batch applications
run as background jobs described by a job control language and use a processing model
based on submit, work, and result actions. The execution of batch processes can take hours
and the tasks are typically transactional, involving multi-step processes.
WebSphere Application Server V8.5 with WebSphere Batch supplies a unified batch
architecture. Using XML job control language (xJCL), WebSphere Batch provides consistent
programming and operational models. WebSphere Batch makes use of a batch technology
that is optimized for Java and supports long-running applications. Ensuring agility, scalability,
and cost efficiency for enterprises.
21.1.1 Batch jobs
A batch job consists of a series of definitions that direct the execution of one or more batch
applications and specifies their input and output. A batch job performs a specific set of tasks
in a predefined sequence to accomplish specific business functionalities.
Batch job workloads are executed in a batch container in WebSphere Application Server
environments. This batch container is the main engine responsible for the execution of batch
applications. It runs batch jobs under the control of an asynchronous bean, which can be
thought of as a container-managed thread. The batch container ultimately processes job
definitions and carries out the lifecycle of jobs.
WebSphere runs batch applications that are written in Java and implements a WebSphere
batch programming model. They are packed as EAR files and are deployed to the batch
container hosted in an application server or cluster. Batch applications are executed
non-interactively in the background.
Batch applications implement one of two programming models:
Transactional batch
These applications handle large amounts of work based on repetitive tasks, such as
processing a large number of records.
Compute-intensive applications
Compute-intensive applications perform work that requires large amounts of system
resources, in particular CPU and memory. The application is responsible for providing all
of the logic for performing the necessary work.
Batch jobs can perform a series of tasks that are a combination of transactional and
compute-intensive tasks to complete the execution of a batch application.
21.1.2 Batch applications
Batch applications are programs designed to execute non-interactive tasks in the
background. Input and output is generally accessed as logical constructs by the batch
application and are mapped to concrete data resources by the batch job definition.