CICS EXTRACT LOGONMSG provides logon message extraction capabilities for programs and transactions. It enables programs to extract logon messages, retrieve user logon information, and handle logon message processing in CICS environments.
CICS EXTRACT LOGONMSG is a command that allows programs to extract logon messages from the system. It provides logon message extraction capabilities, user logon information retrieval, and logon message processing for CICS applications.
12345EXEC CICS EXTRACT LOGONMSG INTO(data-area) [LENGTH(data-length)] [RESP(response-code)] END-EXEC
Messages related to user logon
Messages related to system logon
Messages related to security logon
Messages related to application logon
1234567891011121314151617181920212223242526IDENTIFICATION DIVISION. PROGRAM-ID. EXTRACTLOGONMSG01. DATA DIVISION. WORKING-STORAGE SECTION. 01 LOGON-MESSAGE PIC X(80). 01 MESSAGE-LENGTH PIC S9(4) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. DISPLAY 'Extracting logon message' EXEC CICS EXTRACT LOGONMSG INTO(LOGON-MESSAGE) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Logon message extracted successfully' DISPLAY 'Message: ' LOGON-MESSAGE(1:MESSAGE-LENGTH) DISPLAY 'Length: ' MESSAGE-LENGTH ELSE DISPLAY 'Failed to extract logon message' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354IDENTIFICATION DIVISION. PROGRAM-ID. EXTRACTLOGONMSG02. DATA DIVISION. WORKING-STORAGE SECTION. 01 LOGON-MESSAGE PIC X(80). 01 MESSAGE-LENGTH PIC S9(4) COMP. 01 RESPONSE-CODE PIC S9(8) COMP. 01 EXTRACTION-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-EXTRACTIONS PIC S9(2) COMP VALUE 3. 01 MESSAGE-LIST. 05 MESSAGE-ITEM OCCURS 3 TIMES. 10 MESSAGE-CONTENT PIC X(80). 10 MESSAGE-LEN PIC S9(4) COMP. 10 MESSAGE-TYPE PIC X(10). PROCEDURE DIVISION. PERFORM EXTRACT-MULTIPLE-LOGON-MESSAGES EXEC CICS RETURN END-EXEC. EXTRACT-MULTIPLE-LOGON-MESSAGES. PERFORM VARYING EXTRACTION-COUNT FROM 1 BY 1 UNTIL EXTRACTION-COUNT > MAX-EXTRACTIONS PERFORM EXTRACT-SINGLE-LOGON-MESSAGE IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE LOGON-MESSAGE TO MESSAGE-CONTENT(EXTRACTION-COUNT) MOVE MESSAGE-LENGTH TO MESSAGE-LEN(EXTRACTION-COUNT) PERFORM DETERMINE-MESSAGE-TYPE DISPLAY 'Extracted message ' EXTRACTION-COUNT ': ' MESSAGE-TYPE(EXTRACTION-COUNT) DISPLAY 'Content: ' MESSAGE-CONTENT(EXTRACTION-COUNT)(1:MESSAGE-LEN(EXTRACTION-COUNT)) ELSE DISPLAY 'Failed to extract message ' EXTRACTION-COUNT END-IF END-PERFORM. EXTRACT-SINGLE-LOGON-MESSAGE. EXEC CICS EXTRACT LOGONMSG INTO(LOGON-MESSAGE) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC. DETERMINE-MESSAGE-TYPE. IF MESSAGE-CONTENT(EXTRACTION-COUNT)(1:10) = 'LOGON SUCC' MOVE 'SUCCESS' TO MESSAGE-TYPE(EXTRACTION-COUNT) ELSE IF MESSAGE-CONTENT(EXTRACTION-COUNT)(1:10) = 'LOGON FAIL' MOVE 'FAILURE' TO MESSAGE-TYPE(EXTRACTION-COUNT) ELSE IF MESSAGE-CONTENT(EXTRACTION-COUNT)(1:10) = 'LOGON WARN' MOVE 'WARNING' TO MESSAGE-TYPE(EXTRACTION-COUNT) ELSE MOVE 'UNKNOWN' TO MESSAGE-TYPE(EXTRACTION-COUNT) END-IF.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950IDENTIFICATION DIVISION. PROGRAM-ID. EXTRACTLOGONMSG03. DATA DIVISION. WORKING-STORAGE SECTION. 01 LOGON-MESSAGE PIC X(80). 01 MESSAGE-LENGTH PIC S9(4) COMP. 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. 01 EXTRACTION-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM EXTRACT-LOGON-MESSAGE-WITH-RETRY EXEC CICS RETURN END-EXEC. EXTRACT-LOGON-MESSAGE-WITH-RETRY. PERFORM EXTRACT-LOGON-MESSAGE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' logon message extraction' PERFORM EXTRACT-LOGON-MESSAGE-WITH-RETRY END-IF. EXTRACT-LOGON-MESSAGE. EXEC CICS EXTRACT LOGONMSG INTO(LOGON-MESSAGE) LENGTH(MESSAGE-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO EXTRACTION-SUCCESSFUL DISPLAY 'Logon message extracted successfully' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to extract logon message' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid logon message extraction request' WHEN DFHRESP(LOGONMSGERR) DISPLAY 'Logon message extraction error' WHEN DFHRESP(MSGNOTFOUND) DISPLAY 'Logon message not found' WHEN DFHRESP(MSGLENGTHERR) DISPLAY 'Logon message length error' WHEN OTHER DISPLAY 'Unexpected logon message extraction error' END-EVALUATE.
Think of CICS EXTRACT LOGONMSG like reading a note from the teacher:
Create a program that extracts a simple logon message.
Write a program that processes multiple logon message extractions.
Implement comprehensive error handling for logon message extraction failures.