CICS FREE (MRO) provides MRO resource deallocation capabilities for programs and transactions. It enables programs to free MRO resources, manage MRO resource cleanup, and handle MRO resource deallocation in CICS environments.
CICS FREE (MRO) is a command that allows programs to deallocate MRO resources in the system. It provides MRO resource deallocation capabilities, MRO resource cleanup, and MRO resource management for CICS applications.
1234EXEC CICS FREE MRO [RESP(response-code)] END-EXEC
MRO session resource types
MRO resource types
MRO communication resource types
MRO system resource types
123456789101112131415161718192021IDENTIFICATION DIVISION. PROGRAM-ID. FREEMRO. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESPONSE-CODE PIC S9(8) COMP. PROCEDURE DIVISION. DISPLAY 'Freeing MRO resource' EXEC CICS FREE MRO RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'MRO resource freed successfully' ELSE DISPLAY 'MRO resource free failed' END-IF EXEC CICS RETURN END-EXEC.
123456789101112131415161718192021222324252627282930313233343536373839IDENTIFICATION DIVISION. PROGRAM-ID. FREEMRO2. DATA DIVISION. WORKING-STORAGE SECTION. 01 RESPONSE-CODE PIC S9(8) COMP. 01 FREE-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-FREES PIC S9(2) COMP VALUE 3. 01 MRO-STATUS PIC X(1). 01 MRO-RESOURCE-TYPE PIC X(8). PROCEDURE DIVISION. PERFORM INITIALIZE-MRO-RESOURCES PERFORM FREE-MRO-RESOURCES EXEC CICS RETURN END-EXEC. INITIALIZE-MRO-RESOURCES. MOVE 'SESSION' TO MRO-RESOURCE-TYPE. FREE-MRO-RESOURCES. PERFORM VARYING FREE-COUNT FROM 1 BY 1 UNTIL FREE-COUNT > MAX-FREES PERFORM FREE-MRO-SINGLE-RESOURCE IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'F' TO MRO-STATUS DISPLAY 'MRO resource ' FREE-COUNT ' freed successfully' ELSE MOVE 'E' TO MRO-STATUS DISPLAY 'MRO resource ' FREE-COUNT ' free failed' END-IF END-PERFORM. FREE-MRO-SINGLE-RESOURCE. EXEC CICS FREE MRO RESP(RESPONSE-CODE) END-EXEC.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647IDENTIFICATION DIVISION. PROGRAM-ID. FREEMRO3. DATA DIVISION. WORKING-STORAGE SECTION. 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 MRO-FREE-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM FREE-MRO-RESOURCE-WITH-RETRY EXEC CICS RETURN END-EXEC. FREE-MRO-RESOURCE-WITH-RETRY. PERFORM FREE-MRO-RESOURCE IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' MRO resource free operation' PERFORM FREE-MRO-RESOURCE-WITH-RETRY END-IF. FREE-MRO-RESOURCE. EXEC CICS FREE MRO RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO MRO-FREE-SUCCESSFUL DISPLAY 'MRO resource free operation successful' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to free MRO resource' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid MRO resource free request' WHEN DFHRESP(RESOURCEERR) DISPLAY 'MRO resource free operation error' WHEN DFHRESP(RESOURCENOTFOUND) DISPLAY 'MRO resource not found' WHEN DFHRESP(RESOURCEINUSE) DISPLAY 'MRO resource is in use' WHEN OTHER DISPLAY 'Unexpected MRO resource free error' END-EVALUATE.
Think of CICS FREE (MRO) like putting away your MRO toys:
Create a program that frees a basic MRO resource.
Write a program that manages multiple MRO resource deallocations.
Implement comprehensive error handling for MRO resource deallocation failures.