CICS GET CONTAINER (CHANNEL) provides channel container retrieval capabilities for programs and transactions. It enables programs to retrieve data from channel containers, access channel data, and handle channel container operations in CICS environments.
CICS GET CONTAINER (CHANNEL) is a command that allows programs to retrieve data from channel containers. It provides channel data access capabilities, container management, and channel container handling for CICS applications.
1234567EXEC CICS GET CONTAINER CHANNEL(channel-name) CONTAINER(container-name) INTO(data-area) LENGTH(data-length) [RESP(response-code)] END-EXEC
Containers with application data
Containers with control information
Containers with message data
User-defined containers
123456789101112131415161718192021222324252627282930313233343536IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERCHANNEL01. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'MAINCHAN'. 01 CONTAINER-NAME PIC X(8) VALUE 'DATACON1'. 01 DATA-AREA PIC X(100). 01 DATA-LENGTH PIC S9(8) COMP VALUE 100. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CONTAINER-RETRIEVED PIC X(1) VALUE 'N'. PROCEDURE DIVISION. IF CONTAINER-RETRIEVED = 'N' DISPLAY 'Retrieving container: ' CONTAINER-NAME DISPLAY 'From channel: ' CHANNEL-NAME EXEC CICS GET CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'Y' TO CONTAINER-RETRIEVED DISPLAY 'Container retrieved successfully' DISPLAY 'Container data: ' DATA-AREA(1:DATA-LENGTH) ELSE DISPLAY 'Failed to retrieve container' END-IF ELSE DISPLAY 'Container already retrieved' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERCHANNEL02. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'MAINCHAN'. 01 CONTAINER-NAME PIC X(8). 01 DATA-AREA PIC X(200). 01 DATA-LENGTH PIC S9(8) COMP VALUE 200. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CONTAINER-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-CONTAINERS PIC S9(2) COMP VALUE 5. 01 CONTAINER-LIST. 05 CONTAINER-ITEM OCCURS 5 TIMES. 10 CONTAINER-ID PIC X(8). 10 CONTAINER-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM RETRIEVE-MULTIPLE-CHANNEL-CONTAINERS EXEC CICS RETURN END-EXEC. RETRIEVE-MULTIPLE-CHANNEL-CONTAINERS. MOVE 'CONTAIN1' TO CONTAINER-ID(1) MOVE 'CONTAIN2' TO CONTAINER-ID(2) MOVE 'CONTAIN3' TO CONTAINER-ID(3) MOVE 'CONTAIN4' TO CONTAINER-ID(4) MOVE 'CONTAIN5' TO CONTAINER-ID(5) PERFORM VARYING CONTAINER-COUNT FROM 1 BY 1 UNTIL CONTAINER-COUNT > MAX-CONTAINERS MOVE CONTAINER-ID(CONTAINER-COUNT) TO CONTAINER-NAME PERFORM RETRIEVE-SINGLE-CHANNEL-CONTAINER IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'R' TO CONTAINER-STATUS(CONTAINER-COUNT) DISPLAY 'Retrieved: ' CONTAINER-NAME ELSE MOVE 'F' TO CONTAINER-STATUS(CONTAINER-COUNT) DISPLAY 'Failed: ' CONTAINER-NAME END-IF END-PERFORM. RETRIEVE-SINGLE-CHANNEL-CONTAINER. EXEC CICS GET CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERCHANNEL03. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'TESTCHAN'. 01 CONTAINER-NAME PIC X(8) VALUE 'TESTCON'. 01 DATA-AREA PIC X(50). 01 DATA-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. 01 RETRIEVAL-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM RETRIEVE-CHANNEL-CONTAINER-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. RETRIEVE-CHANNEL-CONTAINER-WITH-ERROR-HANDLING. PERFORM RETRIEVE-CHANNEL-CONTAINER IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' retrieving channel container' PERFORM RETRIEVE-CHANNEL-CONTAINER-WITH-ERROR-HANDLING END-IF. RETRIEVE-CHANNEL-CONTAINER. EXEC CICS GET CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO RETRIEVAL-SUCCESSFUL DISPLAY 'Channel container retrieved successfully' WHEN DFHRESP(NOTFND) DISPLAY 'Channel or container not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to retrieve container' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid container request' WHEN DFHRESP(CONTAINERERR) DISPLAY 'Container retrieval error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.
Think of CICS GET CONTAINER (CHANNEL) like getting a toy from a toy box:
Create a program that retrieves a specific container from a channel.
Write a program that manages multiple channel container retrievals.
Implement comprehensive error handling for channel container retrieval failures.