Progress0 of 0 lessons

CICS CANCEL - Transaction Cancellation

CICS CANCEL provides transaction cancellation capabilities for programs and transactions. It enables programs to cancel transactions, manage cancellation requests, and handle cancellation operations in CICS environments.

What is CICS CANCEL?

CICS CANCEL is a command that allows programs to cancel transactions, requests, or operations that are currently in progress. It provides transaction management capabilities, cancellation control, and cancellation handling for CICS applications.

Command Syntax

cobol
1
2
3
4
5
EXEC CICS CANCEL TRANSID(transaction-id) [REQID(request-id)] [RESP(response-code)] END-EXEC

Parameters

Required Parameters

  • TRANSID(transaction-id) - Transaction ID to cancel

Optional Parameters

  • REQID(request-id) - Specific request ID to cancel
  • RESP(response-code) - Response code variable

Cancellation Types

Transaction Cancellation

Cancel entire transactions

  • TRANSACTION CANCEL - Cancel complete transaction
  • TRANSACTION ABORT - Abort transaction execution
  • TRANSACTION TERMINATE - Terminate transaction
  • TRANSACTION STOP - Stop transaction processing

Request Cancellation

Cancel specific requests

  • REQUEST CANCEL - Cancel specific request
  • REQUEST ABORT - Abort request execution
  • REQUEST TERMINATE - Terminate request
  • REQUEST STOP - Stop request processing

Operation Cancellation

Cancel specific operations

  • OPERATION CANCEL - Cancel specific operation
  • OPERATION ABORT - Abort operation execution
  • OPERATION TERMINATE - Terminate operation
  • OPERATION STOP - Stop operation processing

Process Cancellation

Cancel running processes

  • PROCESS CANCEL - Cancel running process
  • PROCESS ABORT - Abort process execution
  • PROCESS TERMINATE - Terminate process
  • PROCESS STOP - Stop process processing

Programming Examples

Basic Transaction Cancellation

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
IDENTIFICATION DIVISION. PROGRAM-ID. CANCEL01. DATA DIVISION. WORKING-STORAGE SECTION. 01 TRANSACTION-ID PIC X(4) VALUE 'TEST'. 01 RESPONSE-CODE PIC S9(8) COMP. 01 CANCELLATION-REQUESTED PIC X(1) VALUE 'Y'. PROCEDURE DIVISION. IF CANCELLATION-REQUESTED = 'Y' DISPLAY 'Cancelling transaction: ' TRANSACTION-ID EXEC CICS CANCEL TRANSID(TRANSACTION-ID) RESP(RESPONSE-CODE) END-EXEC IF RESPONSE-CODE = DFHRESP(NORMAL) DISPLAY 'Transaction cancelled successfully' ELSE DISPLAY 'Failed to cancel transaction' END-IF ELSE DISPLAY 'No cancellation requested' END-IF EXEC CICS RETURN END-EXEC.

Advanced Cancellation 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
IDENTIFICATION DIVISION. PROGRAM-ID. CANCEL02. DATA DIVISION. WORKING-STORAGE SECTION. 01 TRANSACTION-ID PIC X(4). 01 REQUEST-ID PIC X(8). 01 RESPONSE-CODE PIC S9(8) COMP. 01 CANCELLATION-COUNT PIC S9(2) COMP VALUE 0. 01 MAX-CANCELLATIONS PIC S9(2) COMP VALUE 5. 01 TRANSACTION-LIST. 05 TRANSACTION-ITEM OCCURS 5 TIMES. 10 TRANSACTION-NAME PIC X(4). 10 TRANSACTION-STATUS PIC X(1). PROCEDURE DIVISION. PERFORM CANCEL-MULTIPLE-TRANSACTIONS EXEC CICS RETURN END-EXEC. CANCEL-MULTIPLE-TRANSACTIONS. MOVE 'TEST' TO TRANSACTION-NAME(1) MOVE 'DEMO' TO TRANSACTION-NAME(2) MOVE 'SAMP' TO TRANSACTION-NAME(3) MOVE 'PROD' TO TRANSACTION-NAME(4) MOVE 'DEV' TO TRANSACTION-NAME(5) PERFORM VARYING CANCELLATION-COUNT FROM 1 BY 1 UNTIL CANCELLATION-COUNT > MAX-CANCELLATIONS MOVE TRANSACTION-NAME(CANCELLATION-COUNT) TO TRANSACTION-ID PERFORM CANCEL-SINGLE-TRANSACTION IF RESPONSE-CODE = DFHRESP(NORMAL) MOVE 'C' TO TRANSACTION-STATUS(CANCELLATION-COUNT) DISPLAY 'Cancelled: ' TRANSACTION-ID ELSE MOVE 'F' TO TRANSACTION-STATUS(CANCELLATION-COUNT) DISPLAY 'Failed: ' TRANSACTION-ID END-IF END-PERFORM. CANCEL-SINGLE-TRANSACTION. EXEC CICS CANCEL TRANSID(TRANSACTION-ID) RESP(RESPONSE-CODE) END-EXEC.

Error Handling with Cancellation

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
IDENTIFICATION DIVISION. PROGRAM-ID. CANCEL03. DATA DIVISION. WORKING-STORAGE SECTION. 01 TRANSACTION-ID PIC X(4) VALUE 'TEST'. 01 REQUEST-ID PIC X(8) VALUE 'REQ00001'. 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 CANCELLATION-SUCCESSFUL PIC X(1) VALUE 'N'. PROCEDURE DIVISION. PERFORM CANCEL-WITH-ERROR-HANDLING EXEC CICS RETURN END-EXEC. CANCEL-WITH-ERROR-HANDLING. PERFORM CANCEL-TRANSACTION IF RESPONSE-CODE NOT = DFHRESP(NORMAL) AND RETRY-COUNT < MAX-RETRIES ADD 1 TO RETRY-COUNT DISPLAY 'Retry ' RETRY-COUNT ' cancelling transaction' PERFORM CANCEL-WITH-ERROR-HANDLING END-IF. CANCEL-TRANSACTION. EXEC CICS CANCEL TRANSID(TRANSACTION-ID) REQID(REQUEST-ID) RESP(RESPONSE-CODE) END-EXEC EVALUATE RESPONSE-CODE WHEN DFHRESP(NORMAL) MOVE 'Y' TO CANCELLATION-SUCCESSFUL DISPLAY 'Transaction cancelled successfully' WHEN DFHRESP(NOTFND) DISPLAY 'Transaction not found' WHEN DFHRESP(NOTAUTH) DISPLAY 'Not authorized to cancel transaction' WHEN DFHRESP(INVREQ) DISPLAY 'Invalid cancellation request' WHEN DFHRESP(CANCELLATIONERR) DISPLAY 'Cancellation error' WHEN OTHER DISPLAY 'Unexpected error occurred' END-EVALUATE.

Cancellation Management

Cancellation Control

  • Cancellation Authorization - Control cancellation permissions
  • Cancellation Validation - Validate cancellation requests
  • Cancellation Limits - Enforce cancellation limits
  • Cancellation Policies - Implement cancellation policies

Cancellation Monitoring

  • Cancellation Tracking - Track cancellation activities
  • Cancellation Logging - Log cancellation operations
  • Cancellation Auditing - Audit cancellation requests
  • Cancellation Reporting - Generate cancellation reports

Cancellation Lifecycle

  • Cancellation Initiation - Initiate cancellation process
  • Cancellation Processing - Process cancellation request
  • Cancellation Completion - Complete cancellation
  • Cancellation Cleanup - Clean up cancelled resources

Error Recovery

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

Error Handling

Common Response Codes

  • DFHRESP(NORMAL) - Transaction cancelled successfully
  • DFHRESP(NOTFND) - Transaction not found
  • DFHRESP(NOTAUTH) - Not authorized to cancel transaction
  • DFHRESP(INVREQ) - Invalid cancellation request
  • DFHRESP(CANCELLATIONERR) - Cancellation error
  • DFHRESP(TRANSACTIONERR) - Transaction management error

Performance Considerations

Cancellation Efficiency

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

System Impact

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

Best Practices

Cancellation Management Best Practices

  • • Cancel transactions only when necessary
  • • Implement proper error handling for cancellation operations
  • • Validate cancellation requests before processing
  • • Use appropriate cancellation methods
  • • Monitor cancellation activities and performance
  • • Maintain cancellation audit trails
  • • Handle cancellation errors gracefully

Explain It Like I'm 5 Years Old

Think of CICS CANCEL like stopping a game:

  • Playing Game: "You're playing a game" - Running transaction
  • Stop Game: "Stop the game now" - Cancel transaction
  • Game Stops: "The game stops immediately" - Transaction cancelled
  • Clean Up: "Put away the game pieces" - Clean up resources
  • Start New Game: "You can start a new game" - New transaction

Exercises

Exercise 1: Basic Transaction Cancellation

Create a program that cancels a specific transaction.

Exercise 2: Advanced Cancellation Management

Write a program that manages multiple transaction cancellations.

Exercise 3: Error Handling

Implement comprehensive error handling for cancellation failures.