Rapidly develop JSR-352 compliant applications for z/OS

About has finally arrived: Find it on GitHub! is an API for developing batch applications in the Java programming language targetted for deployment to IBM’s WebSphere Batch or WebSphere Liberty Profile’s Java EE Batch runtime environments. The provides portability between the two runtimes by abstracting application development away from the runtime-specific API, and providing adapters for deployment.

Getting Started

Interested in getting started with Doctor Batch? Checkout the development lab that was hosted at IBM Interconnect 2016.

To get started with this lab, you must:

  • Clone the GitHub repository
  • Import the following projects into an Eclipse workspace: bigbluebank-core, bigbluebank-jbatch, and bigbluebank-jbatch-war
  • Setup a local WebSphere Liberty Profile development server, and enable the “batchManagement-1.0” feature

That’s it!


To use, you’ll need to import several dependencies from IBM products into your local Maven repository. The dependencies are as follows:

  • The MVS components require IBM Java for z/OS Toolkitfrom your JDK 1.6 or later installation on z/OS, and marshall.jar from your WebSphere Application Server installation (on any platform).
  • The ODM components require the JRules RES Execution library from your Operational Decision Manager installation on any platform
  • The WebSphere components require the Batch Runtime library from your WebSphere Application Server installation on any platform

Note that and may be built and used without and IBM dependencies.

See the details here: prerequisites


Once you have imported the necessary prerequisuites, you are ready to use is avaialble in Maven Central at the following coordinates:


The core library provides the API for the implementation of a application.



Batch Runtime Components

The batch runtime components provide bridges so that applications can be executed in a provided batch runtime environment. At present, supports JSR-352 compatible “Java Batch” containers, such as IBM WebSphere Liberty Profile, and IBM WebSphere Application Server’s Batch Runtime (aka “Compute Grid”).





MVS Components

The MVS components provide drop-in support for reading and writing from z/OS DataSets using the IBM JZOS library.







Operational Decision Manager Component

The Operational Decision Manager component provides drop-in capability to consume business rules applications as the processing logic of your batch application.



Building From Source

Alternatively, you can build doctorbatch-io from source. Please note, by default, the parent POM includes all submodules. If you do not have certain prerequisites available to you, then you will need to comment out the affected modules.

git clone
mvn install

Configuring WebSphere Liberty Profile

Below is a sample server configuration that will get you started quickly with JSR-352 and the Batch Management capabilities available in WebSphere Liberty Profile.

Be sure you have installed Liberty 8.5.5.x with Java EE 7 Full Platform, as well as the Batch Management feature!

<server description="batch server">
  <!-- Enable features -->

  <!-- SSL KeyStore -->
	<keyStore password="password"/>

  <!-- User registry -->
	<basicRegistry id="basic" realm="ibm/api">
		<user name="demo" password="password"/>


  <!-- Define the batch authorization roles -->
	<authorization-roles id="">
		<security-role name="batchAdmin">
			<user name="demo"/>
		<security-role name="batchSubmitted">
			<special-subject type="ALL_AUTHENTICATED_USERS"/>
		<security-role name="batchMonitor">
			<special-subject type="ALL_AUTHENTICATED_USERS"/>

  <!-- To access this server from a remote client add a host attribute to the following element, e.g. host="*" -->
  <httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>

  <!-- Automatically expand WAR files and EAR files -->
	<applicationManager autoExpand="true"/>

  <applicationMonitor updateTrigger="mbean"/>