IBM CICS and the JVM server: Developing and Deploying Java Applications

Book description

This IBM® Redbooks® publication provides information about the new Java virtual machine (JVM) server technology in IBM CICS® Transaction Server for z/OS® V4.2. We begin by outlining the many advantages of its multi-threaded operation over the pooled JVM function of earlier releases. The Open Services Gateway initiative (OSGi) is described and we highlight the benefits OSGi brings to both development and deployment.

Details are then provided about how to configure and use the new JVM server environment. Examples are included of the deployment process, which takes a Java application from the workstation Eclipse integrated development environment (IDE) with the IBM CICS Explorer® software development kit (SDK) plug-in, through the various stages up to execution in a stand-alone CICS region and an IBM CICSPlex® environment.

The book continues with a comparison between traditional CICS programming, and CICS programming from Java. As a result, the main functional areas of the Java class library for CICS (JCICS) application programming interface (API) are extensively reviewed.

Further chapters are provided to demonstrate interaction with structured data such as copybooks, and how to access relational databases by using Java Database Connectivity (JDBC) and Structured Query Language for Java (SQLJ).

Finally, we devote a chapter to the migration of applications from the pooled JVM model to the new JVM server run time.

Table of contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  4. Part 1 Introduction and Java virtual machine server enablement
    1. Chapter 1. Introduction
      1. 1.1 Java overview
        1. 1.1.1 Java specification
        2. 1.1.2 Java virtual machine
      2. 1.2 History of JVM support in CICS
        1. 1.2.1 CICS Transaction Server V1.3
        2. 1.2.2 CICS Transaction Server V2.1 and V2.2
        3. 1.2.3 CICS Transaction Server V2.3
        4. 1.2.4 CICS Transaction Server V3.1
        5. 1.2.5 CICS Transaction Server V3.2
        6. 1.2.6 CICS Transaction Server V4.1
      3. 1.3 CICS Transaction Server V4.2
        1. 1.3.1 64-bit JVM support
        2. 1.3.2 Java virtual machine server and pooled JVMs
        3. 1.3.3 Open Services Gateway initiative
        4. 1.3.4 CICS Explorer software development kit
        5. 1.3.5 Support for Axis2 technology
        6. 1.3.6 Enterprise JavaBeans and pooled Java virtual machine removal
      4. 1.4 Java class library for CICS as an API
        1. 1.4.1 Interfacing with language structures
      5. 1.5 64-bit storage exploitation
        1. 1.5.1 Java 64-bit support
        2. 1.5.2 31-bit JVM limitations
        3. 1.5.3 64-bit JVM advantages
    2. Chapter 2. Open Services Gateway initiative overview
      1. 2.1 Open Services Gateway initiative architecture
      2. 2.2 OSGi implementation in CICS
      3. 2.3 Artifacts
        1. 2.3.1 Metadata files
      4. 2.4 OSGi application management
        1. 2.4.1 OSGi bundle installation
        2. 2.4.2 OSGi bundle status transition
        3. 2.4.3 OSGi bundle interdependency management
      5. 2.5 CICS commands for OSGi
        1. 2.5.1 EXEC CICS INQUIRE OSGIBUNDLE
        2. 2.5.2 EXEC CICS INQUIRE OSGISERVICE
    3. Chapter 3. Setting up a Java virtual machine server
      1. 3.1 Java virtual machine server configuration
        1. 3.1.1 System initialization table parameters
        2. 3.1.2 JVMSERVER attributes
        3. 3.1.3 Language Environment Runtime Options Program
        4. 3.1.4 JVM server profile for user applications
        5. 3.1.5 JVM server configuration for Java based SOAP pipelines
        6. 3.1.6 Quick setup of a JVM server
      2. 3.2 JVM server lifecycle
        1. 3.2.1 JVMSERVER resource definition
        2. 3.2.2 JVMSERVER status transition
        3. 3.2.3 Purging a Java virtual machine server
    4. Chapter 4. Deploying from CICS Explorer SDK
      1. 4.1 The CICS Explorer development platform
      2. 4.2 The deployment process
        1. 4.2.1 Key steps of the deployment process
        2. 4.2.2 Source code management and repositories
      3. 4.3 Deploying into a stand-alone CICS region
        1. 4.3.1 Single region setup review
        2. 4.3.2 Example Java class library for CICS application
        3. 4.3.3 Deploying to z/OS UNIX System Services
        4. 4.3.4 Installing into the target CICS region
        5. 4.3.5 Testing the sample application
      4. 4.4 Deploying into a CICSPlex
        1. 4.4.1 Multi-region setup review
        2. 4.4.2 Application test and component overview via CICS Explorer
      5. 4.5 Exporting and reimporting your project
        1. 4.5.1 Creating an archive file for backup or storage
        2. 4.5.2 Restoring from an archive file
      6. 4.6 Deployment best practices
        1. 4.6.1 UNIX System Services directories
        2. 4.6.2 JVM profiles
        3. 4.6.3 OSGi bundle dependencies
        4. 4.6.4 Updating Java applications
    5. Chapter 5. Diagnostics
      1. 5.1 JVM server diagnostics
        1. 5.1.1 Log files
        2. 5.1.2 JVM server statistics
      2. 5.2 Dumps and traces
        1. 5.2.1 Java dumps
        2. 5.2.2 CICS tracing
      3. 5.3 JVM tuning
        1. 5.3.1 Examining processor usage by JVM server
        2. 5.3.2 Tuning JVM server startup in a sysplex
        3. 5.3.3 Tuning JVM heap usage and garbage collection
      4. 5.4 JVM health center
        1. 5.4.1 Overview
        2. 5.4.2 Installation and configuration
        3. 5.4.3 Analyzing Java applications by using IBM Health Center
      5. 5.5 Interactive debugging
        1. 5.5.1 Execution diagnostic facility
        2. 5.5.2 Java Platform Debugger Architecture
      6. 5.6 Basic failure scenarios
        1. 5.6.1 JVM server setup failures
        2. 5.6.2 Deploying from Explorer SDK failures
        3. 5.6.3 Java application runtime failures
  5. Part 2 Application development
    1. Chapter 6. Developing a simple Java application
      1. 6.1 Setting up the Eclipse IDE
        1. 6.1.1 Set the target platform
        2. 6.1.2 Create a plug-in project
        3. 6.1.3 Edit the plug-in manifest file
      2. 6.2 Sample Java application code
      3. 6.3 Creating a CICS bundle project
        1. 6.3.1 Create the CICS bundle
        2. 6.3.2 Add the OSGi bundle to the CICS bundle
      4. 6.4 Deploying the CICS bundle
        1. 6.4.1 Connect to z/OS
        2. 6.4.2 Export the bundle to z/OS
      5. 6.5 Installing the CICS resources
        1. 6.5.1 Connect to CICS
        2. 6.5.2 Create and install a CICS bundle resource
        3. 6.5.3 Create a CICS transaction and program resource
        4. 6.5.4 Run the program
    2. Chapter 7. The Java CICS application programming interface
      1. 7.1 Introduction to Java class library for CICS
      2. 7.2 A short overview of the JCICS API
        1. 7.2.1 Functional areas
        2. 7.2.2 Miscellaneous services
        3. 7.2.3 Services that the JCICS API does not support
      3. 7.3 Java class library for CICS basics
      4. 7.4 Input and output streams
      5. 7.5 Exception handling
      6. 7.6 Calling other programs and passing data
        1. 7.6.1 Calling other programs by using LINK and XCTL
        2. 7.6.2 Passing data between programs
        3. 7.6.3 Communicating by using the COMMAREA
        4. 7.6.4 Communicating through channels and containers
        5. 7.6.5 COMMAREAs versus channels and containers
      7. 7.7 Accessing remote resources
      8. 7.8 Using temporary storage queues
      9. 7.9 Performing serialization
      10. 7.10 Web, TCP/IP, and document services
      11. 7.11 File control
        1. 7.11.1 Class declaration and constructors
        2. 7.11.2 Getting a record
        3. 7.11.3 Removing a record
        4. 7.11.4 Adding a record
        5. 7.11.5 Iteration
        6. 7.11.6 Testing the implementation
      12. 7.12 Interval control
      13. 7.13 Terminal services
        1. 7.13.1 Classes
        2. 7.13.2 Implementation
    3. Chapter 8. Interacting with structured data
      1. 8.1 Overview
      2. 8.2 JZOS toolkit
        1. 8.2.1 Installing JZOS to z/OS
        2. 8.2.2 Running the record class generator
      3. 8.3 Using JZOS with the general insurance application
        1. 8.3.1 Generating Java classes for customer and policy records
        2. 8.3.2 Creating the GENAPP list class
        3. 8.3.3 Packaging the sample into an OSGi bundle
        4. 8.3.4 Testing our sample code
    4. Chapter 9. Accessing DB2 by using JDBC and SQLJ
      1. 9.1 DB2 drivers for JDBC and SQLJ
        1. 9.1.1 Different driver types
        2. 9.1.2 Differences between JDBC and SQLJ
      2. 9.2 JDBC application programming
        1. 9.2.1 Example of a simple JDBC application
        2. 9.2.2 Java packages for JDBC support
        3. 9.2.3 Connecting to a database
        4. 9.2.4 JDBC interfaces for executing SQL
        5. 9.2.5 Transaction control in JDBC applications
        6. 9.2.6 Exceptions and warnings handling
      3. 9.3 SQLJ application programming
        1. 9.3.1 Example of a simple SQLJ application
        2. 9.3.2 SQLJ program preparation
        3. 9.3.3 Connecting to a database by using SQLJ
        4. 9.3.4 Variables in SQLJ applications
        5. 9.3.5 SQL statement execution in SQLJ applications
      4. 9.4 Deploying the JDBC and SQLJ samples
        1. 9.4.1 CICS region setup
        2. 9.4.2 Eclipse integrated development environment setup
        3. 9.4.3 Deploying our JDBC sample application
        4. 9.4.4 Deploying our SQLJ sample application
    5. Chapter 10. Migration
      1. 10.1 Existing CICS TS V4.1 test application
      2. 10.2 Migration process overview
      3. 10.3 Migration to CICS TS V4.2 using a JVM pool
      4. 10.4 Converting from a JVM pool to a JVM server
        1. 10.4.1 Before you begin: Setting up the target environment
        2. 10.4.2 Migration to a JVM server: Conversion method
        3. 10.4.3 Migration to a JVM server: Injection method
        4. 10.4.4 Migration to a JVM server: Wrapper method
        5. 10.4.5 Common steps for all three JVM server migration methods
        6. 10.4.6 Migrating CICS TS V4.2 JVM server app to CICS TS V5.1 beta
      5. 10.5 Shared class cache in a JVM server environment
        1. 10.5.1 Enabling the shared class cache
        2. 10.5.2 Specifying cache size
        3. 10.5.3 Clean up after converting from JVM pools to JVM servers
      6. 10.6 Thread-safe Java applications
  6. Appendix A. Installing the CICS Explorer software development kit
    1. Installing Eclipse
    2. Installing the CICS Explorer SDK
  7. Appendix B. Java EE Connector Architecture tools
    1. Rational Application Developer
    2. Java EE Connector Architecture tools installation
    3. Generate data binding classes
  8. Related publications
    1. IBM Redbooks
    2. Other publications
    3. Online resources
    4. Help from IBM
  9. Back cover

Product information

  • Title: IBM CICS and the JVM server: Developing and Deploying Java Applications
  • Author(s): Chris Rayns, George Bogner, Tony Fitzgerald, Elisabetta Flamini, Jun Hua Gao, Ivan D Hargreaves, Phil Wakelin, Hongtao Wen, Bei Chun Zhou
  • Release date: June 2013
  • Publisher(s): IBM Redbooks
  • ISBN: None