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.
Chapter 21. WebSphere Batch 753
Batch applications are Java EE applications consisting of Plain Old Java Objects (POJOs).
These applications conform to a few well-defined interfaces that allow the batch runtime to
manage the start of batch jobs designed for the application.
Batch work is expressed as jobs, which are made up of steps that are processed sequentially.
All jobs contain the following information:
The identity of the batch application that performs the work
One or more job steps that must be performed to complete work
The identity of an artifact within the application that provides the logic for each job step
Key and value pairs for each job step that provide additional context to the application
artifacts
Jobs for batch applications contain additional information specific to the batch programming
mode:
Definitions of sources and destinations of data
Definitions of checkpoint algorithms
21.1.3 Elements of the batch environment
A typical batch environment consists of a job scheduler, batch container, batch applications,
jobs, interfaces for management functions, and database tables, as shown in Figure 21-1.
Figure 21-1 The batch elements
The following list describes the elements of a batch environment:
Job scheduler
The job scheduler is the batch component that is hosted in an application server or in an
application server cluster. It provides all job management functions, such as submit,
cancel, and restart. It also maintains a history of all jobs, including those waiting to run,
those running, and those having already run. It accepts and schedules the execution of
batch jobs, manages the job database, assigns job IDs, and selects jobs to run.
WebSphere
Application Server
WebSphere
Application Server
Batch
container
Java EE
Batch
application
JDBC
Scheduler tables
Container tables
Batch
applications
Classes
and APIs
xJCL
Job
scheduler
JDBC

Get WebSphere Application Server V8.5 Administration and Configuration Guide for the Full Profile now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.