Example

The following example illustrates a request to delete several devices, and explains the interaction between the installation program that requests notification of I/O configuration changes, the configuration change exit routine that receives control, and the system:
  • An operator or system programmer wants to delete several devices, and activates an installation's I/O definition file (IODF) that causes the deletion of the devices.
  • The system ensures that the devices to be deleted are offline and unallocated. If the request passes this validation step, the system passes control to the configuration change exit that the program specified on the CONFCHG CHGREQ macro (and to any other configuration change exit routines specified by other installation programs).
    Note: If the request does not pass this initial validation, the system rejects the change and issues notification messages to the operator.
  • On entry to the exit routine, GPR 1 contains the address of a parameter list, which contains an indication of the change that was requested, and information about the devices being deleted. The parameter list data structure (the DCCD) is mapped by the IOSDDCCD mapping macro, described in z/OS MVS Data Areas in the z/OS Internet library. To distinguish between a configuration change that was requested and a configuration change that was rejected, the exit routine can check the DCCDFUNC field in the parameter list. DCCDFUNC=DCCDFPFC (where DCCDFPFC is a system-defined constant) when this is a request for a configuration change.
  • Depending on your installation needs, the configuration change exit might unpin the UCBs that were pinned by installation programs, so that the new configuration definition can take effect. To unpin the UCBs, the exit must issue the UCBPIN macro.
  • After all the configuration change exits complete, the system determines if all the UCBs for devices to be deleted have been unpinned by all the exit routines. If this validation step succeeds, and if the configuration change completes successfully, the system passes control to the configuration change exit routine that the program specified on the CONFCHG CHGCOMPL macro (and to any other configuration change exit routines specified by other installation programs).
  • The exit routine can then take the appropriate action. For example:
    • The routine might be keeping a table of all tape devices. Based on the information in the parameter list, the routine might then update its table.
    • The routine might pin UCBs for devices that were being added to the system.
  • If any of the UCBs for the devices to be deleted have not been unpinned, the system rejects the entire configuration change. The system passes control to the configuration change exit routine the program specified on the CONFCHG CHGREQ macro. The system passes the parameter list to the exit routine with DCCDFUNC=DCCDFCCR (where DCCDFCCR is a system-defined constant), indicating the requested change was rejected. In this case, the exit routines might want to re-pin any UCBs they have unpinned, because the deletion will not take place. If the exit routines had deleted the devices from any tables they maintain, they might then add the devices back into the tables.