The Ultimate Guide to CICS and COBOL: Murach's CICS for the COBOL Programmer
Murach's CICS for the COBOL programmer: A comprehensive guide to learn and master CICS
If you are a COBOL programmer who wants to develop online applications for z/OS, you need to learn how to use CICS. CICS is one of the most widely used transaction processing systems in the world, and it offers many advantages for both developers and users. In this article, we will introduce you to CICS, explain its benefits, show you how to code COBOL programs to run under CICS, and review one of the best books on this topic: Murach's CICS for the COBOL programmer.
Murach's CICS for the COBOL programmer.pdf
What is CICS and why is it important?
CICS stands for Customer Information Control System. It is a general-purpose transaction processing subsystem for the z/OS operating system. A transaction is a unit of work that performs a specific function, such as processing a travel request or preparing a company payroll. A transaction processing system is a software that manages the execution of transactions, ensuring that they are fast, reliable, secure and consistent.
CICS stands for Customer Information Control System
CICS was first developed by IBM in 1968 as a way to handle online transactions from terminals connected to mainframes. Since then, CICS has evolved and expanded to support various types of transactions from different sources, such as web browsers, mobile devices, web services and message queues. Today, CICS runs on millions of mainframes around the world, processing billions of transactions every day.
CICS is a transaction processing subsystem for z/OS
In a z/OS system, CICS provides a layer of function for managing transactions, while the operating system remains the final interface with the computer hardware. CICS essentially separates online applications from other types of applications in the system, and handles them itself. CICS authorizes users, allocates resources (real storage and cycles), and passes on database requests by the application to the appropriate database manager (such as DB2).
CICS provides services for running online applications
An online application is a collection of related programs that together perform a business operation. For example, an online banking application may consist of programs that allow customers to check their balance, transfer money, pay bills and so on. Online applications are different from batch applications, which run without user interaction at scheduled times.
CICS provides services for running online applications by request, at the same time as many other users are submitting requests to run the same applications, using the same files and programs. CICS manages the sharing of resources, the integrity of data and prioritization of execution, with fast response. CICS also provides services for developing, testing, debugging, deploying and monitoring online applications.
What are the benefits of using CICS?
Using CICS for online applications has many benefits for both developers and users. Here are some of the main ones:
CICS improves performance, reliability, security and scalability
CICS is designed to handle high-volume, high-availability and high-performance transactions. CICS can process thousands of transactions per second, with sub-second response times. CICS also ensures that transactions are reliable, meaning that they are completed successfully or rolled back in case of failure, without compromising data integrity. CICS also provides security features, such as user authentication, authorization, encryption and auditing. CICS also supports scalability, meaning that it can handle increasing workloads by adding more resources or distributing the load across multiple systems.
CICS supports multiple programming languages and interfaces
CICS allows you to use COBOL, OO COBOL, C, C++, Java, PL/I, or Assembler language to write online application programs to run on z/OS. Most of the processing logic is expressed in standard language statements, but you use CICS commands, or the Java and C++ class libraries, to request CICS services. CICS also supports various interfaces for communicating with other systems and technologies, such as web services, RESTful APIs, JSON, XML, SOAP, MQ and TCP/IP.
CICS enables integration with other systems and technologies
CICS is not an isolated system; it can interact with other systems and technologies to provide a comprehensive solution for online transactions. For example, CICS can integrate with DB2 to access relational databases, with IMS to access hierarchical databases, with VSAM to access flat files, with RACF to manage security policies, with JES to submit batch jobs, with MQ to exchange messages with other applications, and with WebSphere to provide web-based services.
How to code COBOL programs to run under CICS?
To code a COBOL program to run under CICS, you need to follow some basic steps:
Use EXEC CICS commands to access CICS services
To code a program to run under CICS, you need to code CICS commands in the PROCEDURE DIVISION by using the EXEC CICS command format. For example:
EXEC CICS SEND TEXT FROM (MESSAGE) LENGTH (LENGTH) END-EXEC
This command sends a text message to the user's terminal. The message and its length are stored in the COBOL data items MESSAGE and LENGTH.
CICS commands have various options and parameters that allow you to specify the details of the service you want. For example:
EXEC CICS READ FILE ('CUSTOMER') RIDFLD (CUST-ID) INTO (CUST-REC) LENGTH (CUST-LEN) UPDATE END-EXEC
This command reads a record from the file named CUSTOMER using the record key stored in the COBOL data item CUST-ID. The record is stored in the COBOL data item CUST-REC and its length is returned in the COBOL data item CUST-LEN. The UPDATE option indicates that the record is locked for subsequent update.
CICS provides a wide range of commands for various purposes, such as sending and receiving data, accessing files and databases, managing transactions and tasks, handling errors and exceptions, invoking other programs and services, and so on. You can find a complete reference of CICS commands and options in Murach's CICS for the COBOL programmer.
Follow the coding restrictions and guidelines for CICS programs
When you code a COBOL program to run under CICS, you need to follow some coding restrictions and guidelines that are specific to CICS. For example:
- Do not use the FILE-CONTROL entry in the ENVIRONMENT DIVISION or the FILE SECTION of the DATA DIVISION unless they are used for a SORT statement. - Do not use user-specified parameters to the main program or USE declaratives (except USE FOR DEBUGGING). - Do not use these COBOL statements: ACCEPT format 1 (data transfer), CLOSE, DELETE, DISPLAY UPON CONSOLE or SYSPUNCH, MERGE, OPEN, READ (except for SORT), RERUN, REWRITE (except for SORT), START (except for SORT), STOP literal or WRITE (except for SORT). - Do not code COBOL statements within EXEC CICS commands. - Do not run COB 71b2f0854b