CICS PUT64 CONTAINER provides 64-bit container storage capabilities for programs and transactions. It enables programs to store large data in containers, manage 64-bit data storage, and handle 64-bit container operations in CICS environments.
CICS PUT64 CONTAINER is a command that allows programs to store data in containers using 64-bit addressing. It provides large data storage capabilities, 64-bit memory management, and 64-bit container handling for CICS applications.
1234567EXEC CICS PUT64 CONTAINER [CHANNEL(channel-name)] [CONTAINER(container-name)] [FROM(data-area)] [LENGTH(data-length)] [RESP(response-code)] END-EXEC
Containers with large data sets
Containers with memory data
Containers with streaming data
Containers with binary data
123456789101112131415161718192021222324252627282930313233343536IDENTIFICATION DIVISION. PROGRAM-ID. PUT64CONTAINER01. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'MAINCHAN'. 01 CONTAINER-NAME PIC X(8) VALUE 'LARGEDAT'. 01 DATA-AREA PIC X(1000) VALUE 'Sample large data for 64-bit container'. 01 DATA-LENGTH PIC S9(8) COMP VALUE 1000. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CONTAINER-STORED PIC X(1) VALUE 'N'. PROCEDURE DIVISION. IF CONTAINER-STORED = 'N' DISPLAY 'Storing 64-bit container: ' CONTAINER-NAME DISPLAY 'In channel: ' CHANNEL-NAME EXEC CICS PUT64 CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) FROM(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'Y' TO CONTAINER-STORED DISPLAY '64-bit container stored successfully' DISPLAY 'Container data length: ' DATA-LENGTH ELSE DISPLAY 'Failed to store 64-bit container' END-IF ELSE DISPLAY '64-bit container already stored' END-IF EXEC CICS RETURN END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758IDENTIFICATION DIVISION. PROGRAM-ID. PUT64CONTAINER02. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'MAINCHAN'. 01 CONTAINER-NAME PIC X(8). 01 DATA-AREA PIC X(2000). 01 DATA-LENGTH PIC S9(8) COMP VALUE 2000. 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 TOTAL-DATA-LENGTH PIC S9(8) COMP VALUE 0. 01 CONTAINER-LIST. 05 CONTAINER-ITEM OCCURS 5 TIMES. 10 CONTAINER-ID PIC X(8). 10 CONTAINER-STATUS PIC X(1). 10 CONTAINER-SIZE PIC S9(8) COMP. PROCEDURE DIVISION. PERFORM STORE-MULTIPLE-64BIT-CONTAINERS DISPLAY 'Total data stored: ' TOTAL-DATA-LENGTH ' bytes' EXEC CICS RETURN END-EXEC. STORE-MULTIPLE-64BIT-CONTAINERS. MOVE 'LARGE001' TO CONTAINER-ID(1) MOVE 'LARGE002' TO CONTAINER-ID(2) MOVE 'LARGE003' TO CONTAINER-ID(3) MOVE 'LARGE004' TO CONTAINER-ID(4) MOVE 'LARGE005' 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 MOVE 'Sample large data for 64-bit container' TO DATA-AREA PERFORM STORE-SINGLE-64BIT-CONTAINER IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'S' TO CONTAINER-STATUS(CONTAINER-COUNT) MOVE DATA-LENGTH TO CONTAINER-SIZE(CONTAINER-COUNT) ADD DATA-LENGTH TO TOTAL-DATA-LENGTH DISPLAY 'Stored: ' CONTAINER-NAME ' Size: ' DATA-LENGTH ELSE MOVE 'F' TO CONTAINER-STATUS(CONTAINER-COUNT) MOVE 0 TO CONTAINER-SIZE(CONTAINER-COUNT) DISPLAY 'Failed: ' CONTAINER-NAME END-IF END-PERFORM. STORE-SINGLE-64BIT-CONTAINER. EXEC CICS PUT64 CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) FROM(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354IDENTIFICATION DIVISION. PROGRAM-ID. PUT64CONTAINER03. DATA DIVISION. WORKING-STORAGE SECTION. 01 CHANNEL-NAME PIC X(8) VALUE 'TESTCHAN'. 01 CONTAINER-NAME PIC X(8) VALUE 'TEST64'. 01 DATA-AREA PIC X(500) VALUE 'Test large data for 64-bit container'. 01 DATA-LENGTH PIC S9(8) COMP VALUE 500. 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 STORAGE-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM STORE-64BIT-CONTAINER-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. STORE-64BIT-CONTAINER-WITH-ERROR-HANDLING. PERFORM STORE-64BIT-CONTAINER IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' storing 64-bit container' PERFORM STORE-64BIT-CONTAINER-WITH-ERROR-HANDLING END-IF. STORE-64BIT-CONTAINER. EXEC CICS PUT64 CONTAINER CHANNEL(CHANNEL-NAME) CONTAINER(CONTAINER-NAME) FROM(DATA-AREA) LENGTH(DATA-LENGTH) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO STORAGE-SUCCESSFUL DISPLAY '64-bit container stored successfully' WHEN DFHRESP(NOTFND) DISPLAY 'Channel not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to store container' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid 64-bit container request' WHEN DFHRESP(LENGERR) DISPLAY 'Data length error' WHEN DFHRESP(64BITERR) DISPLAY '64-bit container error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.
Think of CICS PUT64 CONTAINER like putting a really big toy in a really big toy box:
Create a program that stores a specific 64-bit container.
Write a program that manages multiple 64-bit container storage operations.
Implement comprehensive error handling for 64-bit container storage failures.