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