Modernizing Applications with IBM CICS
Total Page:16
File Type:pdf, Size:1020Kb
Front cover Modernizing Applications with IBM CICS Russell Bonner Sophie Green Ezriel Gross Jim Harrison Debra Scharfstein Will Yates Redpaper IBM Redbooks Modernizing Applications with IBM CICS December 2020 REDP-5628-00 Note: Before using this information and the product it supports, read the information in “Notices” on page v. First Edition (December 2020) © Copyright International Business Machines Corporation 2020. All rights reserved. Note to U.S. Government Users Restricted Rights -- Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Notices . .v Trademarks . vi Preface . vii Accompanying education course . vii Authors. viii Now you can become a published author, too! . viii Comments welcome. viii Stay connected to IBM Redbooks . ix Chapter 1. Introduction. 1 1.1 CICS and the hybrid multi-cloud . 2 1.2 Migrating to the hybrid multi-cloud . 2 1.2.1 Maintaining the status quo . 2 1.2.2 Using cloud-native applications. 2 1.2.3 Modernizing existing applications . 3 1.3 CICS Hello World COBOL example . 3 Chapter 2. IBM CICS application development . 5 2.1 Application development in CICS . 6 2.1.1 Batch processing versus online transaction processing . 6 2.1.2 Programming paradigm. 6 2.1.3 Basic architecture of a CICS program. 7 2.1.4 CICS resources. 9 2.2 CICS sample application. 10 2.3 CICS modernization . 11 2.4 CICS built-in transactions . 12 2.4.1 CICS Execute Command Interpreter . 12 2.4.2 CICS Execution Diagnostic Facility. 13 Chapter 3. Coding applications to run in IBM CICS. 15 3.1 Introduction to the EXEC CICS application programming interface . 16 3.2 CICS API example . 17 3.3 COBOL translator . 18 3.4 Response codes . 20 Chapter 4. Programming an IBM CICS application in COBOL . 21 4.1 Presentation logic . 22 4.1.1 Communication area. 22 4.1.2 First time through processing . 24 4.1.3 Function evaluation. 25 4.1.4 Field validation and link to PAYBUS . 26 4.1.5 Checking the return code from the link . 27 4.1.6 Remaining presentation logic processing . 28 4.2 Business logic . 29 4.2.1 COMMAREA and special processing . 30 4.2.2 Request analysis. 30 4.2.3 Updating a record . 32 4.2.4 Adding a record. 33 © Copyright IBM Corp. 2020. iii 4.2.5 Deleting a request. 34 4.2.6 Browsing forward and backward. 34 Chapter 5. Modernization by using channels and containers . 37 5.1 Examining the existing functions. 38 5.2 Introducing channels and containers . 38 5.3 From COMMAREA to channels and containers . 39 5.4 Working with CICS programs in Visual Studio Code. 42 5.5 CICS and Zowe. 44 Chapter 6. Modernizing applications with Java . 47 6.1 Why use Java with CICS. 48 6.2 Writing CICS Java applications. 48 6.2.1 Hello World code sample . 49 6.2.2 Moving the Payroll application to Java . 49 6.3 Unit testing Java applications . 51 6.3.1 Writing a basic unit test. 51 6.3.2 Mocking with CICS applications . 52 6.3.3 JCICSX remoting . 52 Chapter 7. Modern IBM CICS application programming features . 55 7.1 Asynchronous programming . 56 7.1.1 Asynchronous programming analogy . 56 7.1.2 Asynchronous programming principles. 57 7.2 Event processing. 60 7.2.1 Event processing in CICS . 60 7.2.2 Event processing example . 62 7.3 Link to WebSphere Liberty . 63 Chapter 8. DevOps and IBM CICS . 67 8.1 Introduction to DevOps . 68 8.2 DevOps on IBM Z with CICS applications. 68 8.2.1 The integrated development environment and debugging . 69 8.2.2 Source code management . 70 8.2.3 Build solutions. ..