MainframeMaster

COBOL Tutorial

COBOL I-O-CONTROL Section

The I-O-CONTROL section represents an advanced Environment Division component that provides sophisticated file processing optimization, checkpoint control mechanisms, and system-level file management capabilities for enterprise COBOL applications. This section enables fine-tuned control over file operations, memory allocation, restart procedures, and performance optimization strategies that support large-scale data processing requirements while ensuring data integrity, facilitating disaster recovery, and maximizing system resource utilization across complex mainframe and distributed computing environments.

I-O-CONTROL Syntax

I-O-CONTROL Section Structure
cobol
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. *> File control entries... I-O-CONTROL. *> RERUN clause for checkpoint control RERUN ON file-name EVERY integer RECORDS RERUN ON file-name EVERY END OF REEL *> SAME AREA clause for memory optimization SAME AREA FOR file-name-1 file-name-2 SAME RECORD AREA FOR file-name-1 file-name-2 SAME SORT AREA FOR sort-file-1 sort-file-2 *> MULTIPLE FILE TAPE clause MULTIPLE FILE TAPE CONTAINS file-name-1 file-name-2 *> APPLY clause for processing options APPLY WRITE-ONLY ON file-name APPLY LOCK-HOLDING ON file-name.
File Control
Optimization
Checkpoint

Comprehensive I-O-CONTROL Examples

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
IDENTIFICATION DIVISION. PROGRAM-ID. IO-CONTROL-DEMO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT MASTER-FILE ASSIGN TO "MASTER.DAT" ORGANIZATION IS INDEXED ACCESS MODE IS DYNAMIC RECORD KEY IS MASTER-KEY FILE STATUS IS MASTER-STATUS. SELECT TRANSACTION-FILE ASSIGN TO "TRANS.DAT" ORGANIZATION IS SEQUENTIAL FILE STATUS IS TRANS-STATUS. SELECT REPORT-FILE ASSIGN TO "REPORT.TXT" ORGANIZATION IS SEQUENTIAL FILE STATUS IS REPORT-STATUS. SELECT BACKUP-FILE ASSIGN TO "BACKUP.DAT" ORGANIZATION IS SEQUENTIAL FILE STATUS IS BACKUP-STATUS. I-O-CONTROL. *> Checkpoint every 1000 records for restart capability RERUN ON MASTER-FILE EVERY 1000 RECORDS RERUN ON REPORT-FILE EVERY END OF REEL *> Optimize memory usage by sharing areas SAME RECORD AREA FOR MASTER-FILE TRANSACTION-FILE SAME AREA FOR REPORT-FILE BACKUP-FILE *> Multiple file tape handling MULTIPLE FILE TAPE CONTAINS BACKUP-FILE REPORT-FILE *> Apply processing optimizations APPLY WRITE-ONLY ON REPORT-FILE APPLY LOCK-HOLDING ON MASTER-FILE. DATA DIVISION. FILE SECTION. FD MASTER-FILE. 01 MASTER-RECORD. 05 MASTER-KEY PIC X(10). 05 MASTER-DATA PIC X(70). FD TRANSACTION-FILE. 01 TRANSACTION-RECORD. 05 TRANS-KEY PIC X(10). 05 TRANS-DATA PIC X(50). FD REPORT-FILE. 01 REPORT-RECORD PIC X(80). FD BACKUP-FILE. 01 BACKUP-RECORD PIC X(80). WORKING-STORAGE SECTION. 01 WS-FILE-STATUS. 05 MASTER-STATUS PIC XX. 05 TRANS-STATUS PIC XX. 05 REPORT-STATUS PIC XX. 05 BACKUP-STATUS PIC XX. 01 WS-COUNTERS. 05 WS-RECORDS-PROCESSED PIC 9(7) VALUE 0. 05 WS-CHECKPOINT-COUNT PIC 9(4) VALUE 0. PROCEDURE DIVISION. MAIN-PROCESSING. PERFORM OPEN-FILES PERFORM PROCESS-TRANSACTIONS PERFORM CLOSE-FILES STOP RUN. OPEN-FILES. OPEN I-O MASTER-FILE OPEN INPUT TRANSACTION-FILE OPEN OUTPUT REPORT-FILE OPEN OUTPUT BACKUP-FILE. PROCESS-TRANSACTIONS. PERFORM UNTIL TRANS-STATUS = "10" READ TRANSACTION-FILE AT END CONTINUE NOT AT END PERFORM PROCESS-TRANSACTION END-READ END-PERFORM. PROCESS-TRANSACTION. ADD 1 TO WS-RECORDS-PROCESSED *> Check for checkpoint interval IF FUNCTION MOD(WS-RECORDS-PROCESSED, 1000) = 0 PERFORM CHECKPOINT-PROCESSING END-IF *> Process the transaction PERFORM UPDATE-MASTER-FILE PERFORM WRITE-REPORT-LINE PERFORM BACKUP-OPERATION. CHECKPOINT-PROCESSING. ADD 1 TO WS-CHECKPOINT-COUNT DISPLAY "Checkpoint " WS-CHECKPOINT-COUNT " at record " WS-RECORDS-PROCESSED *> The RERUN clause automatically handles checkpoint creation. UPDATE-MASTER-FILE. MOVE TRANS-KEY TO MASTER-KEY READ MASTER-FILE KEY IS MASTER-KEY INVALID KEY PERFORM ADD-NEW-MASTER NOT INVALID KEY PERFORM UPDATE-EXISTING-MASTER END-READ. CLOSE-FILES. CLOSE MASTER-FILE CLOSE TRANSACTION-FILE CLOSE REPORT-FILE CLOSE BACKUP-FILE.

I-O-CONTROL Features

Checkpoint Control
  • • RERUN clause implementation
  • • Automatic restart points
  • • Record count checkpoints
  • • End-of-reel processing
Memory Optimization
  • • SAME AREA sharing
  • • Record area optimization
  • • Sort area management
  • • Buffer allocation

Advanced I-O-CONTROL Patterns

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
53
54
55
56
57
58
59
60
61
62
63
*> Production-level I-O-CONTROL example ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT CUSTOMER-MASTER ASSIGN TO "CUSTMAST" ORGANIZATION IS VSAM ACCESS MODE IS DYNAMIC RECORD KEY IS CUST-ID FILE STATUS IS CUST-STATUS. SELECT DAILY-TRANS ASSIGN TO "DAILYTRAN" ORGANIZATION IS SEQUENTIAL FILE STATUS IS TRANS-STATUS. SELECT AUDIT-LOG ASSIGN TO "AUDITLOG" ORGANIZATION IS SEQUENTIAL FILE STATUS IS AUDIT-STATUS. SELECT ERROR-FILE ASSIGN TO "ERRORLOG" ORGANIZATION IS SEQUENTIAL FILE STATUS IS ERROR-STATUS. I-O-CONTROL. *> Comprehensive checkpoint strategy RERUN ON CUSTOMER-MASTER EVERY 2500 RECORDS RERUN ON AUDIT-LOG EVERY 5000 RECORDS RERUN ON ERROR-FILE EVERY END OF REEL *> Memory optimization for large volumes SAME RECORD AREA FOR CUSTOMER-MASTER DAILY-TRANS SAME AREA FOR AUDIT-LOG ERROR-FILE *> Tape handling for backup operations MULTIPLE FILE TAPE CONTAINS AUDIT-LOG ERROR-FILE *> Performance optimizations APPLY WRITE-ONLY ON AUDIT-LOG APPLY WRITE-ONLY ON ERROR-FILE APPLY LOCK-HOLDING ON CUSTOMER-MASTER. *> Example with sort operations I-O-CONTROL. RERUN ON SORT-INPUT EVERY 10000 RECORDS SAME SORT AREA FOR SORT-WORK-1 SORT-WORK-2 SAME RECORD AREA FOR INPUT-FILE OUTPUT-FILE. *> Complex multi-file processing I-O-CONTROL. *> Different checkpoint intervals RERUN ON HIGH-VOLUME-FILE EVERY 1000 RECORDS RERUN ON MEDIUM-VOLUME-FILE EVERY 5000 RECORDS RERUN ON LOW-VOLUME-FILE EVERY END OF REEL *> Multiple area optimizations SAME RECORD AREA FOR FILE-A FILE-B FILE-C SAME AREA FOR REPORT-1 REPORT-2 SAME SORT AREA FOR SORT-FILE-1 SORT-FILE-2 *> Tape and processing options MULTIPLE FILE TAPE CONTAINS BACKUP-1 BACKUP-2 BACKUP-3 APPLY WRITE-ONLY ON REPORT-1 APPLY WRITE-ONLY ON REPORT-2 APPLY LOCK-HOLDING ON MASTER-FILE.

Knowledge Check

Test Your Understanding

Question 1: Purpose

What is the main purpose of the I-O-CONTROL section?

Answer: I-O-CONTROL provides file processing optimization, checkpoint control for restart capabilities, and advanced file management options to improve performance and reliability.

Question 2: RERUN Clause

How does the RERUN clause help in program processing?

Answer: RERUN establishes checkpoint intervals that enable program restart from specific points if processing is interrupted, reducing reprocessing time and improving reliability.