CICS ISSUE PREPARE provides prepare message capabilities for programs and transactions. It enables programs to send prepare messages, manage prepare notifications, and handle prepare messaging in CICS environments.
CICS ISSUE PREPARE is a command that allows programs to send prepare messages to users or other systems. It provides prepare messaging capabilities, user notification, and prepare management for CICS applications.
12345EXEC CICS ISSUE PREPARE [MESSAGE(message-text)] [LENGTH(message-length)] [RESP(response-code)] END-EXEC
Preparing for transaction processing
Preparing for data operations
Preparing for resource allocation
Preparing for system operations
123456789101112131415161718192021222324252627282930IDENTIFICATION DIVISION. PROGRAM-ID. PREPARE01. DATA DIVISION. WORKING-STORAGE SECTION. 01 MESSAGE-TEXT PIC X(50) VALUE 'Preparing for transaction processing'. 01 MESSAGE-LENGTH PIC S9(8) COMP VALUE 50. 01 RESPONSE-CODE PIC S9(8) COMP. 01 PREPARE-NEEDED PIC X(1) VALUE 'Y'. PROCEDURE DIVISION. IF PREPARE-NEEDED = 'Y' DISPLAY 'Sending prepare message...' EXEC CICS ISSUE PREPARE MESSAGE(MESSAGE-TEXT) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Prepare message sent successfully' DISPLAY 'Message: ' MESSAGE-TEXT(1:MESSAGE-LENGTH) ELSE DISPLAY 'Failed to send prepare message' END-IF ELSE DISPLAY 'No prepare needed' END-IF EXEC CICS RETURN END-EXEC.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859IDENTIFICATION DIVISION. PROGRAM-ID. PREPARE02. DATA DIVISION. WORKING-STORAGE SECTION. 01 MESSAGE-TEXT PIC X(100). 01 MESSAGE-LENGTH PIC S9(8) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. 01 PREPARE-TYPE PIC X(1). 01 PREPARE-STAGE PIC X(1). 01 TRANSACTION-ID PIC X(8) VALUE 'TXN001'. PROCEDURE DIVISION. PERFORM PREPARE-TRANSACTION EXEC CICS RETURN END-EXEC. PREPARE-TRANSACTION. PERFORM DETERMINE-PREPARE-TYPE PERFORM SEND-PREPARE-MESSAGE PERFORM EXECUTE-TRANSACTION. DETERMINE-PREPARE-TYPE. *> Add logic to determine prepare type MOVE 'T' TO PREPARE-TYPE MOVE 'I' TO PREPARE-STAGE. SEND-PREPARE-MESSAGE. EVALUATE PREPARE-TYPE WHEN 'T' MOVE 'Preparing transaction for execution' TO MESSAGE-TEXT MOVE 35 TO MESSAGE-LENGTH WHEN 'D' MOVE 'Preparing data for processing' TO MESSAGE-TEXT MOVE 32 TO MESSAGE-LENGTH WHEN 'R' MOVE 'Preparing resources for allocation' TO MESSAGE-TEXT MOVE 37 TO MESSAGE-LENGTH WHEN 'S' MOVE 'Preparing system for operation' TO MESSAGE-TEXT MOVE 34 TO MESSAGE-LENGTH WHEN OTHER MOVE 'Preparing for operation' TO MESSAGE-TEXT MOVE 24 TO MESSAGE-LENGTH END-EVALUATE EXEC CICS ISSUE PREPARE MESSAGE(MESSAGE-TEXT) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Prepare sent: ' MESSAGE-TEXT(1:MESSAGE-LENGTH) ELSE DISPLAY 'Failed to send prepare message' END-IF. EXECUTE-TRANSACTION. DISPLAY 'Executing transaction: ' TRANSACTION-ID.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657IDENTIFICATION DIVISION. PROGRAM-ID. PREPARE03. DATA DIVISION. WORKING-STORAGE SECTION. 01 MESSAGE-TEXT PIC X(50) VALUE 'Preparing for operation'. 01 MESSAGE-LENGTH PIC S9(8) COMP VALUE 50. 01 RESPONSE-CODE PIC S9(8) COMP. 01 RETRY-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-RETRIES PIC S9(2) COMP VALUE 3. PROCEDURE DIVISION. PERFORM PREPARE-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. PREPARE-WITH-ERROR-HANDLING. PERFORM SEND-PREPARE-WITH-RETRY IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Prepare message sent successfully' PERFORM EXECUTE-OPERATION ELSE DISPLAY 'Failed to send prepare message after retries' END-IF. SEND-PREPARE-WITH-RETRY. PERFORM SEND-PREPARE-MESSAGE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' sending prepare message' PERFORM SEND-PREPARE-WITH-RETRY END-IF. SEND-PREPARE-MESSAGE. EXEC CICS ISSUE PREPARE MESSAGE(MESSAGE-TEXT) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) DISPLAY 'Prepare message sent successfully' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid prepare request' WHEN DFHRESP(LENGERR) DISPLAY 'Message length error' WHEN DFHRESP(COMMERR) DISPLAY 'Communication error occurred' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE. EXECUTE-OPERATION. DISPLAY 'Executing prepared operation'.
Think of CICS ISSUE PREPARE like getting ready to play a game:
Create a program that sends a basic prepare message before executing an operation.
Write a program that sends different prepare messages based on operation type.
Implement comprehensive error handling for prepare message failures.