Extending a CICS web application using JCICS

An IBM Redbooks video course

by Ian Burnett, Phil Wakelin

This course provides Java application developers with a step-by-step guide to CICS Java development, demonstrating how to access common CICS resources using the JCICS API. Topics covered include:

  • Fundamentals of using the JCICS API
  • Using JZOS to map native record-based language structures to Java data types
  • Communicating with other CICS programs using a COMMAREA
  • LINKing to a Java application deployed in Liberty
  • Accessing CICS resources, including VSAM and temporary storage queues
  • Managing the CICS unit of work scope in Java
  • Handling errors in Java

Students should be familiar with the concepts and techniques discussed in Developing a RESTful Web application for Liberty in CICS before taking this course.

Target audience

  • Primary: Java application developers who want to understand CICS Java application development.
  • Also applicable to: COBOL, PL/I and other application developers who understand CICS programming and are learning Java.

Materials students need for the course

  • Access to a z/OS system with CICS TS V5.1 or later installed
  • Access to a development workstation
  • Ability to download and install Eclipse software on a development machine
  • Ability to download materials from the samples repository on github.com/cicsdev

Section 01

An overview of this course, with an introduction to the overall learning objectives.

Lecture 1: Course introduction (3 min 28 secs)
This lecture introduces the course, explaining at a high-level the topics to be covered, along with a reference to the sample material and some important pre-requisites.

Section 02
Using Java to access CICS

This section describes at a high-level the record-based data structures used by non-Java languages and demonstrates how to efficiently pass data to COBOL or Assembler programs using the JZOS record generator.

Lecture 1: Mixed-language communication (4 mins 25 secs)
This lecture looks at the different approaches to accessing data from Java and non-Java languages. A sample COBOL copybook is introduced, which will be used throughout the course.

Lecture 2: Java record generation (3 mins 18 secs)
Introduces the JZOS record generator and outlines the process used to generate Java source code from a COBOL copybook.

Section 03
Communication with CICS

This section covers the LINK command. Two scenarios are examined: using the JCICS API to call other CICS programs; and how to expose Java classes in a Liberty application as CICS programs.

Lecture 1: Linking to CICS programs (7 min 17 secs)
An overview of the LINK command, along with a basic example of achieving a LINK operation using the JCICS API. This is extended by passing a COMMAREA constructed using a generated Java bean, and further optimizations are examined.

Lecture 2: Linking to a Java program in Liberty (3 min 24 secs)
This lecture demonstrates how to annotate Java methods in a Liberty application, enabling CICS programs to LINK to Java components deployed in a Liberty JVM server.

Section 04
Using CICS resources

Several important CICS resource types are covered, with details on how to access them using the JCICS API.

Lecture 1: Accessing VSAM data (12 mins 14 secs)
A brief overview of VSAM is provided, with a focus on accessing VSAM data from CICS. This lecture looks at the sample course materials, examining how to perform the basic operations of reading, writing, updating, and deleting records.

Lecture 2: Accessing temporary storage queues (5 mins 56 secs)
A simple introduction to CICS temporary storage queues is provided, along with an introduction to the JCICS methods used when reading from and writing to queues.

Lecture 3: CICS units of work (2 mins 54 secs)
This lecture covers CICS unit of work support, and how this can be managed using the JCICS API.

Section 05
Coping with errors

An overview of coping with error conditions when writing Java applications in CICS.

Lecture 1: Error and exception handling (10 mins 55 secs)
This lecture looks at the types of error conditions a CICS application may encounter, and how these error conditions map to exceptions in the Java language.

Section 06

A summary of the key points we have learned in this course.

Lecture 1: Course review (1 mins 09 secs)
This lecture provides a recap of what we learned in the course, looking at the resources covered and the sample materials used.

Follow IBM Redbooks

Follow IBM Redbooks