CICS PURGE MESSAGE provides message purging capabilities for programs and transactions. It enables programs to purge messages, manage message cleanup, and handle message purging in CICS environments.
CICS PURGE MESSAGE is a command that allows programs to purge or remove messages from message queues, terminals, or other message storage areas. It provides message cleanup capabilities, queue management, and message purging for CICS applications.
123456EXEC CICS PURGE MESSAGE [QUEUE(queue-name)] [TERMINAL(terminal-id)] [MESSAGEID(message-id)] [RESP(response-code)] END-EXEC
Purging messages from queues
Purging messages from terminals
Purging system messages
Purging data messages
12345678910111213141516171819202122232425262728293031IDENTIFICATION DIVISION. PROGRAM-ID. PURGE01. DATA DIVISION. WORKING-STORAGE SECTION. 01 QUEUE-NAME PIC X(8) VALUE 'MSGQUEUE'. 01 TERMINAL-ID PIC X(4) VALUE 'TERM'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 PURGE-NEEDED PIC X(1) VALUE 'Y'. PROCEDURE DIVISION. IF PURGE-NEEDED = 'Y' DISPLAY 'Purging messages from queue...' EXEC CICS PURGE MESSAGE QUEUE(QUEUE-NAME) TERMINAL(TERMINAL-ID) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Messages purged successfully' DISPLAY 'Queue: ' QUEUE-NAME DISPLAY 'Terminal: ' TERMINAL-ID ELSE DISPLAY 'Failed to purge messages' END-IF ELSE DISPLAY 'No purge needed' END-IF EXEC CICS RETURN END-EXEC.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950IDENTIFICATION DIVISION. PROGRAM-ID. PURGE02. DATA DIVISION. WORKING-STORAGE SECTION. 01 QUEUE-NAME PIC X(8) VALUE 'MSGQUEUE'. 01 TERMINAL-ID PIC X(4) VALUE 'TERM'. 01 MESSAGE-ID PIC X(8) VALUE 'MSG001'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 PURGE-TYPE PIC X(1). 01 PURGE-COUNT PIC S9(4) COMP VALUE 0. PROCEDURE DIVISION. PERFORM DETERMINE-PURGE-TYPE PERFORM PURGE-MESSAGES EXEC CICS RETURN END-EXEC. DETERMINE-PURGE-TYPE. *> Add logic to determine purge type MOVE 'Q' TO PURGE-TYPE. PURGE-MESSAGES. EVALUATE PURGE-TYPE WHEN 'Q' EXEC CICS PURGE MESSAGE QUEUE(QUEUE-NAME) RESP(RESPONSE-CODE) END-EXEC ADD 1 TO PURGE-COUNT WHEN 'T' EXEC CICS PURGE MESSAGE TERMINAL(TERMINAL-ID) RESP(RESPONSE-CODE) END-EXEC ADD 1 TO PURGE-COUNT WHEN 'M' EXEC CICS PURGE MESSAGE MESSAGEID(MESSAGE-ID) RESP(RESPONSE-CODE) END-EXEC ADD 1 TO PURGE-COUNT WHEN OTHER DISPLAY 'Unknown purge type' END-EVALUATE IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Purge operation ' PURGE-COUNT ' successful' ELSE DISPLAY 'Purge operation ' PURGE-COUNT ' failed' END-IF.
1234567891011121314151617181920212223242526272829303132333435363738394041424344IDENTIFICATION DIVISION. PROGRAM-ID. PURGE03. DATA DIVISION. WORKING-STORAGE SECTION. 01 QUEUE-NAME PIC X(8) VALUE 'MSGQUEUE'. 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 PURGE-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. PURGE-WITH-ERROR-HANDLING. PERFORM PURGE-MESSAGE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' purging messages' PERFORM PURGE-WITH-ERROR-HANDLING END-IF. PURGE-MESSAGE. EXEC CICS PURGE MESSAGE QUEUE(QUEUE-NAME) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) DISPLAY 'Messages purged successfully' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid purge request' WHEN DFHRESP(NOTFND) DISPLAY 'Queue or messages not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to purge messages' WHEN DFHRESP(QIDERR) DISPLAY 'Queue ID error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.
Think of CICS PURGE MESSAGE like cleaning up your room:
Create a program that purges messages from a specific queue.
Write a program that purges messages based on different conditions.
Implement comprehensive error handling for message purge failures.