Progress0 of 0 lessons

CICS GET CONTAINER (BTS) - Business Transaction Services Container Retrieval

CICS GET CONTAINER (BTS) provides Business Transaction Services container retrieval capabilities for programs and transactions. It enables programs to retrieve BTS containers, access BTS data, and handle BTS container operations in CICS environments.

What is CICS GET CONTAINER (BTS)?

CICS GET CONTAINER (BTS) is a command that allows programs to retrieve data from Business Transaction Services (BTS) containers. It provides BTS data access capabilities, container management, and BTS container handling for CICS applications.

Command Syntax

cobol
1
2
3
4
5
6
7
EXEC CICS GET CONTAINER CONTAINER(container-name) INTO(data-area) LENGTH(data-length) [BTSID(bts-id)] [RESP(response-code)] END-EXEC

Parameters

Required Parameters

  • CONTAINER(container-name) - Name of BTS container to retrieve
  • INTO(data-area) - Data area to receive container data
  • LENGTH(data-length) - Length of data area

Optional Parameters

  • BTSID(bts-id) - BTS instance ID
  • RESP(response-code) - Response code variable

BTS Container Types

Data Containers

Containers with business data

  • BUSINESS DATA - Retrieve business data container
  • TRANSACTION DATA - Retrieve transaction data container
  • PROCESS DATA - Retrieve process data container
  • APPLICATION DATA - Retrieve application data container

Control Containers

Containers with control information

  • CONTROL DATA - Retrieve control data container
  • STATUS DATA - Retrieve status data container
  • CONFIGURATION DATA - Retrieve configuration data container
  • METADATA - Retrieve metadata container

Message Containers

Containers with message data

  • MESSAGE DATA - Retrieve message data container
  • NOTIFICATION DATA - Retrieve notification data container
  • ALERT DATA - Retrieve alert data container
  • EVENT DATA - Retrieve event data container

Custom Containers

User-defined containers

  • CUSTOM DATA - Retrieve custom data container
  • USER DATA - Retrieve user data container
  • WORKFLOW DATA - Retrieve workflow data container
  • INTEGRATION DATA - Retrieve integration data container

Programming Examples

Basic BTS Container Retrieval

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
IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERBTS01. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONTAINER-NAME PIC X(8) VALUE 'BTSDATA'. 01 DATA-AREA PIC X(100). 01 DATA-LENGTH PIC S9(8) COMP VALUE 100. 01 BTS-ID PIC X(8) VALUE 'BTS00001'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CONTAINER-RETRIEVED PIC X(1) VALUE 'N'. PROCEDURE DIVISION. IF CONTAINER-RETRIEVED = 'N' DISPLAY 'Retrieving BTS container: ' CONTAINER-NAME EXEC CICS GET CONTAINER CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) BTSID(BTS-ID) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'Y' TO CONTAINER-RETRIEVED DISPLAY 'BTS container retrieved successfully' DISPLAY 'Container data: ' DATA-AREA(1:DATA-LENGTH) ELSE DISPLAY 'Failed to retrieve BTS container' END-IF ELSE DISPLAY 'BTS container already retrieved' END-IF EXEC CICS RETURN END-EXEC.

Advanced BTS 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
IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERBTS02. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONTAINER-NAME PIC X(8). 01 DATA-AREA PIC X(200). 01 DATA-LENGTH PIC S9(8) COMP VALUE 200. 01 BTS-ID PIC X(8) VALUE 'BTS00001'. 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-BTS-CONTAINERS EXEC CICS RETURN END-EXEC. RETRIEVE-MULTIPLE-BTS-CONTAINERS. MOVE 'BTSDATA1' TO CONTAINER-ID(1) MOVE 'BTSDATA2' TO CONTAINER-ID(2) MOVE 'BTSDATA3' TO CONTAINER-ID(3) MOVE 'BTSDATA4' TO CONTAINER-ID(4) MOVE 'BTSDATA5' 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-BTS-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-BTS-CONTAINER. EXEC CICS GET CONTAINER CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) BTSID(BTS-ID) RESP(RESPONSE-CODE) END-EXEC.

Error Handling with BTS Container Retrieval

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
IDENTIFICATION DIVISION. PROGRAM-ID. GETCONTAINERBTS03. DATA DIVISION. WORKING-STORAGE SECTION. 01 CONTAINER-NAME PIC X(8) VALUE 'TESTBTS'. 01 DATA-AREA PIC X(50). 01 DATA-LENGTH PIC S9(8) COMP VALUE 50. 01 BTS-ID PIC X(8) VALUE 'BTS00001'. 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-BTS-CONTAINER-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. RETRIEVE-BTS-CONTAINER-WITH-ERROR-HANDLING. PERFORM RETRIEVE-BTS-CONTAINER IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' retrieving BTS container' PERFORM RETRIEVE-BTS-CONTAINER-WITH-ERROR-HANDLING END-IF. RETRIEVE-BTS-CONTAINER. EXEC CICS GET CONTAINER CONTAINER(CONTAINER-NAME) INTO(DATA-AREA) LENGTH(DATA-LENGTH) BTSID(BTS-ID) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO RETRIEVAL-SUCCESSFUL DISPLAY 'BTS container retrieved successfully' WHEN DFHRESP(NOTFND) DISPLAY 'BTS container not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to retrieve BTS container' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid BTS container request' WHEN DFHRESP(BTSCONTAINERERR) DISPLAY 'BTS container retrieval error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.

BTS Container Management

Container Access

  • Container Authorization - Control container access permissions
  • Container Validation - Validate container requests
  • Container Limits - Enforce container access limits
  • Container Policies - Implement container access policies

Container Monitoring

  • Container Tracking - Track container access activities
  • Container Logging - Log container operations
  • Container Auditing - Audit container access requests
  • Container Reporting - Generate container access reports

Container Lifecycle

  • Container Creation - Create new BTS containers
  • Container Initialization - Initialize BTS containers
  • Container Processing - Process BTS container data
  • Container Cleanup - Clean up BTS container resources

Error Recovery

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

Error Handling

Common Response Codes

  • DFHRESP(NORMAL) - BTS container retrieved successfully
  • DFHRESP(NOTFND) - BTS container not found
  • DFHRESP(NOTAUTH) - Not authorized to retrieve BTS container
  • DFHRESP(INVREQ) - Invalid BTS container request
  • DFHRESP(BTSCONTAINERERR) - BTS container retrieval error
  • DFHRESP(BTSCONTAINERMANAGEMENTERR) - BTS container management error

Performance Considerations

Container Efficiency

  • Optimize container operations - Use efficient container handling
  • Minimize container overhead - Reduce container processing overhead
  • Use container pooling - Implement container pooling
  • Monitor container frequency - Track container access patterns

System Impact

  • Monitor system impact - Track how containers affect the system
  • Optimize container handling - Ensure efficient container processing
  • Manage container usage - Monitor container consumption
  • Track performance metrics - Monitor container handling performance

Best Practices

BTS Container Management Best Practices

  • • Retrieve BTS containers only when needed
  • • Implement proper error handling for container operations
  • • Validate container requests before processing
  • • Use appropriate container access methods
  • • Monitor container access activities and performance
  • • Maintain container audit trails
  • • Handle container errors gracefully

Explain It Like I'm 5 Years Old

Think of CICS GET CONTAINER (BTS) like getting a box from storage:

  • Find Box: "Find the box you need" - Locate BTS container
  • Open Box: "Open the box to see what's inside" - Retrieve container data
  • Take Things: "Take the things you need from the box" - Access container data
  • Use Things: "Use the things for your work" - Process container data
  • Put Box Back: "Put the box back when done" - Clean up container

Exercises

Exercise 1: Basic BTS Container Retrieval

Create a program that retrieves a specific BTS container.

Exercise 2: Advanced BTS Container Management

Write a program that manages multiple BTS container retrievals.

Exercise 3: Error Handling

Implement comprehensive error handling for BTS container retrieval failures.