IMSDBU Exits

The IMS Database Utility (IMSDBU) exits are available only in Micro Focus COBOL development systems. They enable you to perform database functions, and consist of the following:

Database Segment Exit
The segment exit enables a user-written program to control segment selection and modify segment data during load and unload processing. The exit program is called for each database segment. It can delete the segment, modify the segment data, or pass it through unchanged. If a segment is deleted, all of its children segments are automatically deleted.
Database Compression Exit
The compression exit is used for the input file to the Load and the output file for Unload. It allows for segment compression and/or encryption of the input or output files. It is not used for the data stored in the MFIMS database. A standard routine named CBLDCIMS is provided to decompress input and compress output files. A user-written program can perform different segment encoding.
Database Progress Exit
Controls the frequency of progress reporting during the execution of database functions.
Invocation
IMSDBU exits are invoked upon the execution of the IMSDBU Load and Unload functions by specifying the following directives:
  • SEGEXIT - to execute the Database Segment exit
  • COMPRESS - to execute the Database Compression exit
    Note: If no exit name is specified, Enterprise Server executes the default compression routine, CBLDCIMS.
  • PROGRESS - to execute the Database Processing exit
Example
Enterprise Developer provides a sample file, DBUPARMS.cpy that documents all three IMSDBU exits. DBUPARMS.cpy is located by default in your $COBDIR/demo/ims/examples directory.
Database User Program Exit
This user exit (USERDB) serves two purposes:
Set DB Catalog Database values
Use USERDB to control some or all of your databases and/or settings. It serves as an alternative mechanism for setting the DB Catalog Database Type value and other catalog settings during IMS execution. You can replace or augment settings defined in the IMS System Properties DB Catalog defaults page and the callable IMS86GIO interface for catalog maintenance.
Rreplace DL/I call processing
You can also use USERDB to replace the DL/I call processing in IMS with your own program. For example, this exit could translate a DL/I call into an SQL query, read an indexed file, or package the call and send it to another system. After processing the call, the exit sets the PCB and I/O areas as if a DL/I call was made. This can be a complicated undertaking depending on the complexity of the DL/I calls and database structures you process. You can select which databases you want to process and let Enterprise Developer IMS support features process the others.

For detailed information about the USERDB exit, see the userdb.txt and userdb.cbl sample files located by default in your $COBDIR/demo\Mainframe\IMS\Classic\Examples.