Progress0 of 0 lessons

CICS PUT64 CONTAINER - 64-bit Container Storage

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.

What is CICS PUT64 CONTAINER?

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.

Command Syntax

cobol
1
2
3
4
5
6
7
EXEC CICS PUT64 CONTAINER [CHANNEL(channel-name)] [CONTAINER(container-name)] [FROM(data-area)] [LENGTH(data-length)] [RESP(response-code)] END-EXEC

Parameters

Required Parameters

  • CHANNEL(channel-name) - Name of channel to store container in
  • CONTAINER(container-name) - Name of container to store
  • FROM(data-area) - Data area containing data to store
  • LENGTH(data-length) - Length of data to store

Optional Parameters

  • RESP(response-code) - Response code variable

64-bit Container Types

Large Data Containers

Containers with large data sets

  • LARGE DATASETS - Store large dataset containers
  • BIG DATA - Store big data containers
  • MASSIVE FILES - Store massive file containers
  • HUGE RECORDS - Store huge record containers

Memory Containers

Containers with memory data

  • MEMORY BLOCKS - Store memory block containers
  • BUFFER DATA - Store buffer data containers
  • CACHE DATA - Store cache data containers
  • HEAP DATA - Store heap data containers

Stream Containers

Containers with streaming data

  • DATA STREAMS - Store data stream containers
  • CONTINUOUS DATA - Store continuous data containers
  • REAL-TIME DATA - Store real-time data containers
  • LIVE DATA - Store live data containers

Binary Containers

Containers with binary data

  • BINARY DATA - Store binary data containers
  • MEDIA FILES - Store media file containers
  • IMAGE DATA - Store image data containers
  • VIDEO DATA - Store video data containers

Programming Examples

Basic 64-bit Container Storage

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
IDENTIFICATION 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.

Advanced 64-bit Container Management

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
IDENTIFICATION 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.

Error Handling with 64-bit Container Storage

cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
IDENTIFICATION 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.

64-bit Container Management

64-bit Memory Management

  • 64-bit Addressing - Use 64-bit memory addressing
  • Large Memory Blocks - Manage large memory blocks
  • Memory Optimization - Optimize 64-bit memory usage
  • Memory Monitoring - Monitor 64-bit memory usage

Large Data Handling

  • Large Data Processing - Process large data sets
  • Data Streaming - Handle data streaming
  • Data Chunking - Process data in chunks
  • Data Compression - Handle compressed data

Performance Optimization

  • 64-bit Performance - Optimize 64-bit performance
  • Memory Efficiency - Ensure memory efficiency
  • Data Transfer - Optimize data transfer
  • Resource Management - Manage 64-bit resources

Error Recovery

  • Error Detection - Detect 64-bit container errors
  • Error Recovery - Recover from 64-bit errors
  • Retry Mechanisms - Implement retry logic
  • Fallback Procedures - Use fallback procedures

Error Handling

Common Response Codes

  • DFHRESP(NORMAL) - 64-bit container stored successfully
  • DFHRESP(NOTFND) - Channel not found
  • DFHRESP(NOTAUTH) - Not authorized to store container
  • DFHRESP(INVREQ) - Invalid 64-bit container request
  • DFHRESP(LENGERR) - Data length error
  • DFHRESP(64BITERR) - 64-bit container error

Performance Considerations

64-bit Efficiency

  • Optimize 64-bit operations - Use efficient 64-bit handling
  • Minimize 64-bit overhead - Reduce 64-bit processing overhead
  • Use 64-bit pooling - Implement 64-bit pooling
  • Monitor 64-bit frequency - Track 64-bit usage patterns

System Impact

  • Monitor system impact - Track how 64-bit operations affect the system
  • Optimize 64-bit handling - Ensure efficient 64-bit processing
  • Manage 64-bit usage - Monitor 64-bit resource consumption
  • Track performance metrics - Monitor 64-bit handling performance

Best Practices

64-bit Container Management Best Practices

  • • Use 64-bit containers only for large data
  • • Implement proper error handling for 64-bit operations
  • • Validate 64-bit container requests before processing
  • • Use appropriate 64-bit memory management
  • • Monitor 64-bit container activities and performance
  • • Maintain 64-bit container audit trails
  • • Handle 64-bit container errors gracefully

Explain It Like I'm 5 Years Old

Think of CICS PUT64 CONTAINER like putting a really big toy in a really big toy box:

  • Big Toy Box: "Find a really big toy box" - Locate 64-bit container
  • Open Big Box: "Open the big toy box" - Access 64-bit container
  • Put Big Toy In: "Put your big toy in the big box" - Store large data
  • Close Big Box: "Close the big toy box" - Complete 64-bit storage
  • Remember Where: "Remember where you put the big toy" - Track 64-bit container

Exercises

Exercise 1: Basic 64-bit Container Storage

Create a program that stores a specific 64-bit container.

Exercise 2: Advanced 64-bit Container Management

Write a program that manages multiple 64-bit container storage operations.

Exercise 3: Error Handling

Implement comprehensive error handling for 64-bit container storage failures.