Writing your exit
Z Data Tools 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 HFM0POPT. 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 Z Data Tools, either by a STEPLIB DD statement, or in LINKLIST, or LPALIST. If Z Data Tools 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 HFM.SHFMSAM1. They are:
- HFMIOXEA
- Sample HLASM exit
- HFMIOXEC
- Sample COBOL exit
- HFMIOXEP
- Sample PL/I exit
- HFMIOXHF
- Sample HLASM exit using HFS
Copybooks providing the I/O exit control blocks for COBOL, PL/I, and HLASM are distributed in the
Z Data Tools macro library, HFM.SHFMMAC1. They are:
- HFMIOXCB
- Control block for HLASM programs
- HFMIOXCC
- Control block for COBOL programs
- HFMIOXCP
- Control block for PL/I programs
Note:
- The Z Data Tools I/O exit does not support 24-bit addressing mode.
- Z Data Tools supports an exit written in any supported release of COBOL and PL/I.
- Z Data Tools 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, HFMIOXCC, level-88 values are defined.
- Z Data Tools also processes HFS files as simulated QSAM
files. For more information about Z Data Tools and HFS
files, refer to section
Using UNIX™ System Services and the Hierarchical File System
in the Z Data Tools 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.