You are previewing IBM CICS and Liberty: What You Need to Know.
O'Reilly logo
IBM CICS and Liberty: What You Need to Know

Book Description

This IBM® Redbooks® publication, intended for architects, application developers, and system programmers, describes how to design and implement Java web-based applications in an IBM CICS® Liberty JVM server. This book is based on IBM CICS Transaction Server V5.3 (CICS TS) using the embedded IBM WebSphere® Application Server Liberty V8.5.5 technology.

Liberty is an asset to your organization, whether you intend to extend existing enterprise services hosted in CICS, or develop new web-based applications supporting new lines of business. Fundamentally, Liberty is a composable, dynamic profile of IBM WebSphere Application Server that enables you to provision Java EE technology on a feature-by-feature basis. Liberty can be provisioned with as little as the HTTP transport and a servlet web container, or with the entire Java EE 6 Web Profile feature set depending on your application requirements.

This publication includes a Technology Essentials section for architects and application developers to help understand the underlying technology, an Up-and-Running section for system programmers implementing the Liberty JVM server for the first time, and a set of real-life application development scenarios.

Table of Contents

  1. Front cover
  2. Notices
    1. Trademarks
  3. IBM Redbooks promotions
  4. Preface
    1. Authors
    2. Now you can become a published author, too!
    3. Comments welcome
    4. Stay connected to IBM Redbooks
  5. Chapter 1. Introduction
    1. 1.1 What to expect from this book
      1. 1.1.1 Intended audiences
      2. 1.1.2 Scenarios
    2. 1.2 What is Liberty?
      1. 1.2.1 Java EE 6
      2. 1.2.2 Java EE 7
      3. 1.2.3 Additional resources
    3. 1.3 Benefits of running web applications in CICS
      1. 1.3.1 Skills
      2. 1.3.2 Integration
      3. 1.3.3 Performance
      4. 1.3.4 Cost reduction
      5. 1.3.5 Porting a web application
      6. 1.3.6 Creating an integration logic interface
      7. 1.3.7 Creating a Java business logic application
    4. 1.4 What’s new in Liberty for CICS TS V5.3
      1. 1.4.1 Supported Liberty features
      2. 1.4.2 CICS features
      3. 1.4.3 Unsupported APIs
  6. Part 1 Technology essentials
  7. Chapter 2. Application development
    1. 2.1 Application development
      1. 2.1.1 Web invocation options
    2. 2.2 Accessing CICS data
      1. 2.2.1 CICS Java class library (JCICS) API
    3. 2.3 Database access options
      1. 2.3.1 JDBC access options
      2. 2.3.2 JTA
      3. 2.3.3 Access to non-SQL databases
    4. 2.4 Optimizing static content
      1. 2.4.1 Static content separation
      2. 2.4.2 Dynamic caching
    5. 2.5 Application deployment options
      1. 2.5.1 Liberty deployment methods
      2. 2.5.2 CICS deployment methods
      3. 2.5.3 Deploying shared (middleware) bundle
    6. 2.6 Application redeployment options
      1. 2.6.1 Redeploy by using Liberty deployment methods
      2. 2.6.2 Redeploy using CICS bundle deployment
    7. 2.7 Migrating a Java EE application to Liberty
      1. 2.7.1 Application validation
      2. 2.7.2 Server environment migration
      3. 2.7.3 External dependency migration
  8. Chapter 3. Workload management
    1. 3.1 IP load balancing
      1. 3.1.1 Port sharing
      2. 3.1.2 Sysplex Distributor
    2. 3.2 Web server plug-in
      1. 3.2.1 Load balancing
      2. 3.2.2 Failover
      3. 3.2.3 HTTP session management
    3. 3.3 CICSPlex SM workload management
      1. 3.3.1 Workload balancing
      2. 3.3.2 Workload separation
  9. Chapter 4. Security options
    1. 4.1 Java Platform, Enterprise Edition security
      1. 4.1.1 Deployment descriptor
      2. 4.1.2 Key steps in security processing
      3. 4.1.3 Authenticate
      4. 4.1.4 Authorize
      5. 4.1.5 CICS transaction security
    2. 4.2 Confidentiality
    3. 4.3 Security registries
      1. 4.3.1 Basic user registry
      2. 4.3.2 System Authorization Facility
      3. 4.3.3 LDAP and distributed identities
  10. Part 2 Up and running
  11. Chapter 5. Developing and deploying applications
    1. 5.1 Creating the development environment
      1. 5.1.1 Installing the components
    2. 5.2 Creating a HelloWorld application
      1. 5.2.1 Local Liberty server
    3. 5.3 Deploying the application to CICS
      1. 5.3.1 Dropins directory
      2. 5.3.2 Deploying to CICS as an EBA
      3. 5.3.3 Deploy CICS bundle with CICS Explorer
      4. 5.3.4 Using CICS Build Toolkit
  12. Chapter 6. Configuring a Liberty server in CICS
    1. 6.1 Getting your CICS region ready
    2. 6.2 zFS file system configuration
      1. 6.2.1 zFS configuration files
      2. 6.2.2 zFS output files
      3. 6.2.3 zFS file permissions
    3. 6.3 Setting up a Liberty JVM server
      1. 6.3.1 JVM profile
      2. 6.3.2 Tailoring the JVM profile
      3. 6.3.3 Java home directory
      4. 6.3.4 Time zone
      5. 6.3.5 Liberty-specific options
      6. 6.3.6 Creating a JVMSERVER
      7. 6.3.7 Install a JVMSERVER
      8. 6.3.8 Manually tailoring server.xml
      9. 6.3.9 Adding new features
      10. 6.3.10 Configuring the HTTP and HTTPS endpoint
      11. 6.3.11 CICS bundle deployed applications
      12. 6.3.12 Bundle repository
      13. 6.3.13 Global library
      14. 6.3.14 Liberty server application and configuration update monitoring
      15. 6.3.15 CICS default web application
      16. 6.3.16 JTA transaction log
      17. 6.3.17 Sample server.xml
      18. 6.3.18 Check welcome page
    4. 6.4 Defining and installing a CICS bundle
      1. 6.4.1 BUNDLE resource definition
      2. 6.4.2 Install a BUNDLE resource definition
      3. 6.4.3 BUNDLE definition by CICS Explorer
      4. 6.4.4 BUNDLE installation by CICS Explorer
    5. 6.5 Verifying the configuration
      1. 6.5.1 Log file analysis
    6. 6.6 Setting up a Liberty JVM server using CICS Explorer
      1. 6.6.1 CICS Explorer connection
      2. 6.6.2 Locate the zFS directories
      3. 6.6.3 Copy the JVM profile
      4. 6.6.4 Edit the JVM profile
      5. 6.6.5 Create the Liberty JVM server definition
      6. 6.6.6 Install Liberty JVM server definition
      7. 6.6.7 Liberty JVM server log files
  13. Chapter 7. Configuring the web server plug-in
    1. 7.1 Configuring the web server plug-in
    2. 7.2 Install the HTTP Server and plug-in
    3. 7.3 Liberty server configuration
    4. 7.4 Configure the plug-in
      1. 7.4.1 Configure the plug-in to forward requests
      2. 7.4.2 Merging plug-in configuration files
    5. 7.5 Test the configuration
  14. Chapter 8. Implementing security options
    1. 8.1 Start the angel process
      1. 8.1.1 Copy and modify the angel process procedure
      2. 8.1.2 Specify the user ID under which the angel process runs
      3. 8.1.3 Start the angel process and verify that it is up
    2. 8.2 Server.xml security elements
    3. 8.3 Set up the SAF unauthenticatedUser user ID
    4. 8.4 SAF definitions and permissions
      1. 8.4.1 Server class authorizations
      2. 8.4.2 APPL class authorizations
    5. 8.5 Web application security
    6. 8.6 SAF authorization
      1. 8.6.1 Set up EJBROLE profiles and permissions
      2. 8.6.2 Set up a TCICSTRN profile and permissions for transaction CJSA
    7. 8.7 Liberty security-role authorization
      1. 8.7.1 Deploying your web application in a CICS bundle
      2. 8.7.2 Defining a web application in server.xml
  15. Part 3 Scenarios
  16. Chapter 9. Porting a web application
    1. 9.1 Lifting or shifting an application to Liberty
    2. 9.2 The migration process
      1. 9.2.1 Validating the application for migration
      2. 9.2.2 Using the dropins for validation
      3. 9.2.3 Application Migration Toolkit
      4. 9.2.4 Other migration considerations
    3. 9.3 Configuring the Liberty environment
      1. 9.3.1 Migrating Java Platform, Enterprise Edition resources
      2. 9.3.2 External dependency migration
      3. 9.3.3 Other configuration parameters
    4. 9.4 Package and deploy the application
    5. 9.5 Package the existing application WAR file and deploy
    6. 9.6 Complete deployment and test the application
      1. 9.6.1 Test the web application
  17. Chapter 10. Creating an integration logic application
    1. 10.1 JSON and the json-1.0 feature
    2. 10.2 RESTful and the jax-rs-1.1 feature
    3. 10.3 Exposing GENAPP through a RESTful JSON interface
      1. 10.3.1 Mapping a URI to your application
      2. 10.3.2 Writing the application logic that handles the RESTful requests
    4. 10.4 Package and deploy the application
      1. 10.4.1 Testing the RESTful service
  18. Chapter 11. Creating a business logic application
    1. 11.1 Using OSGi with Liberty in CICS
      1. 11.1.1 Create an OSGi bundle project for ibmjzos.jar
      2. 11.1.2 Convert the existing Java projects to OSGI
      3. 11.1.3 Deploying the OSGi version to Liberty in CICS
    2. 11.2 Extending the business logic application
      1. 11.2.1 Adding new custom CICS programs
      2. 11.2.2 Using the JCICS API
    3. 11.3 Summary
  19. Part 4 Reference
  20. Chapter 12. Troubleshooting
    1. 12.1 Diagnostics
    2. 12.2 Messages and log files
      1. 12.2.1 CICS logs
      2. 12.2.2 Java logs
      3. 12.2.3 Liberty Profile server logs
    3. 12.3 Dumps and trace
      1. 12.3.1 Java dumps and trace
      2. 12.3.2 Liberty Profile server dumps and trace
      3. 12.3.3 CICS dumps and trace
    4. 12.4 Additional documentation
      1. 12.4.1 CICS statistics
      2. 12.4.2 Garbage collection data
    5. 12.5 Debugging tools
      1. 12.5.1 Execution diagnostic facility
      2. 12.5.2 Java debugger
    6. 12.6 JVM Health Center
      1. 12.6.1 What the Health Center is
      2. 12.6.2 Install and Configure the Health Center and CICS Explorer
    7. 12.7 Liberty debug tools
      1. 12.7.1 Using the wlpenv script to run Liberty commands
    8. 12.8 Symptoms and user actions
      1. 12.8.1 Unable to start the Liberty JVM server
      2. 12.8.2 Web application is not available after it is deployed to dropins directory
      3. 12.8.3 CICS CPU usage is increased after a Liberty JVM server is enabled
      4. 12.8.4 Application not available
      5. 12.8.5 Web application is not requesting authentication
      6. 12.8.6 Web application is returning an HTTP 403 error code
      7. 12.8.7 Web application is returning an HTTP 500 error code
      8. 12.8.8 Web application is returning an HTTP 503 error code
      9. 12.8.9 The web application is returning exceptions
      10. 12.8.10 Error message CWWKB0109E
      11. 12.8.11 JVM server set-up failures
      12. 12.8.12 Deploying from Explorer SDK failures
  21. Back cover