Writing your exit
File Manager does not supply a default I/O exit. If you plan to use an I/O exit to process your data, you must provide one or more for your installation. You must also set the USEIOX option in FMN0POPT. For information about the USEIOX option, see USEIOX.
Any exit you provide must be in the form of a load module, in any load library available to File Manager, either by a STEPLIB DD statement, or in LINKLIST, or LPALIST. If File Manager attempts to load an exit and is unable to find it, an error message is displayed.
You can write your own exit in any high level language, for example, COBOL, PL/I, or High Level
Assembler. Sample exits for COBOL, PL/I, and HLASM are provided in FMN.SFMNSAM1. They are:
- FMNIOXEA
- Sample HLASM exit
- FMNIOXEC
- Sample COBOL exit
- FMNIOXEP
- Sample PL/I exit
- FMNIOXHF
- Sample HLASM exit using HFS
Copybooks providing the I/O exit control blocks for COBOL, PL/I, and HLASM are distributed in the
File Manager macro library, FMN.SFMNMAC1. They are:
- FMNIOXCB
- Control block for HLASM programs
- FMNIOXCC
- Control block for COBOL programs
- FMNIOXCP
- Control block for PL/I programs
Note:
- The File Manager I/O exit does not support 24-bit addressing mode.
- File Manager supports an exit written in any supported release of COBOL and PL/I.
- File Manager returns general information about the data set, which can be interpreted by your exit routine. Some data in the exit control blocks, (for example, DSORG, RECFM), mimic data used in z/OS® system control blocks. Therefore, for convenience, in the COBOL copybook, FMNIOXCC, level-88 values are defined.
- File Manager also processes HFS files as simulated QSAM
files. For more information about File Manager and HFS
files, refer to section
Using UNIX™ System Services and the Hierarchical File System
in the File Manager for z/OS User’s Guide and Reference. There are no major differences on the exit routine level. An exit routine will get an address to a path name rather than the data set name in this case, but the way a (simulated) record is processed remains the same.