CICS ACQUIRE provides resource acquisition capabilities for programs and transactions. It enables programs to acquire resources, manage resource allocation, and handle resource acquisition operations in CICS environments.
CICS ACQUIRE is a command that allows programs to acquire resources such as files, databases, queues, and other system resources. It provides resource management capabilities, resource allocation control, and resource acquisition operations for CICS applications.
1234EXEC CICS ACQUIRE RESOURCE(resource-name) [RESP(response-code)] END-EXEC
File system resources
Database system resources
Queue system resources
System-level resources
12345678910111213141516171819202122232425262728IDENTIFICATION DIVISION. PROGRAM-ID. ACQUIRE01. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESOURCE-NAME PIC X(8) VALUE 'MYFILE01'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 RESOURCE-ACQUIRED PIC X(1) VALUE 'N'. PROCEDURE DIVISION. IF RESOURCE-ACQUIRED = 'N' DISPLAY 'Acquiring resource: ' RESOURCE-NAME EXEC CICS ACQUIRE RESOURCE(RESOURCE-NAME) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'Y' TO RESOURCE-ACQUIRED DISPLAY 'Resource acquired successfully' ELSE DISPLAY 'Failed to acquire resource' END-IF ELSE DISPLAY 'Resource already acquired' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839404142434445IDENTIFICATION DIVISION. PROGRAM-ID. ACQUIRE02. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESOURCE-NAME PIC X(8). 01 RESPONSE-CODE PIC S9(8) COMP. 01 RESOURCE-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-RESOURCES PIC S9(2) COMP VALUE 5. 01 RESOURCE-LIST. 05 RESOURCE-ITEM OCCURS 5 TIMES. 10 RESOURCE-ID PIC X(8). 10 RESOURCE-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM ACQUIRE-MULTIPLE-RESOURCES EXEC CICS RETURN END-EXEC. ACQUIRE-MULTIPLE-RESOURCES. MOVE 'FILE001' TO RESOURCE-ID(1) MOVE 'FILE002' TO RESOURCE-ID(2) MOVE 'QUEUE01' TO RESOURCE-ID(3) MOVE 'DB2CONN' TO RESOURCE-ID(4) MOVE 'MEMORY01' TO RESOURCE-ID(5) PERFORM VARYING RESOURCE-COUNT FROM 1 BY 1 UNTIL RESOURCE-COUNT > MAX-RESOURCES MOVE RESOURCE-ID(RESOURCE-COUNT) TO RESOURCE-NAME PERFORM ACQUIRE-SINGLE-RESOURCE IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'A' TO RESOURCE-STATUS(RESOURCE-COUNT) DISPLAY 'Acquired: ' RESOURCE-NAME ELSE MOVE 'F' TO RESOURCE-STATUS(RESOURCE-COUNT) DISPLAY 'Failed: ' RESOURCE-NAME END-IF END-PERFORM. ACQUIRE-SINGLE-RESOURCE. EXEC CICS ACQUIRE RESOURCE(RESOURCE-NAME) RESP(RESPONSE-CODE) END-EXEC.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546IDENTIFICATION DIVISION. PROGRAM-ID. ACQUIRE03. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESOURCE-NAME PIC X(8) VALUE 'TESTFILE'. 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 ACQUISITION-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM ACQUIRE-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. ACQUIRE-WITH-ERROR-HANDLING. PERFORM ACQUIRE-RESOURCE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' acquiring resource' PERFORM ACQUIRE-WITH-ERROR-HANDLING END-IF. ACQUIRE-RESOURCE. EXEC CICS ACQUIRE RESOURCE(RESOURCE-NAME) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO ACQUISITION-SUCCESSFUL DISPLAY 'Resource acquired successfully' WHEN DFHRESP(NOTFND) DISPLAY 'Resource not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to acquire resource' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid resource request' WHEN DFHRESP(RESOURCEERR) DISPLAY 'Resource acquisition error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.
Think of CICS ACQUIRE like borrowing a toy:
Create a program that acquires a file resource and handles the response.
Write a program that acquires multiple resources and manages their lifecycle.
Implement comprehensive error handling for resource acquisition failures.