IBM Connect:Direct Exits

Note: APARs and PTFs from IBM® have "HOLD for ACTION" directives that identify if reassembly of exits is required. Reassemble exits accordingly. If you upgrade, reassemble your exits to pick up any macro or control block changes.

IBM Connect:Direct® provides several sample exits some of which can be used to customize the online execution of IBM Connect:Direct. One of these exits, the Stage 2 Security exit, can be used to test new applications and customer connections. For more information, see Process Exit for Testing (DGAXPRCT).

Before coding or using an exit, read the Special Considerations section below to ensure that the exit executes properly.

Note: All sample exits provided in IBM Connect:Direct define the proper AMODE and RMODE settings within the source member themselves. All user exits should be link-edited with AMODE=ANY and capable of executing in 31-bit mode (calls to user code will have the parameter list passed using 31-bit addresses). Each user exit should preserve the mode in which it was invoked and return to the caller in the proper mode. Modules written to execute in 31-bit mode can be link-edited with RMODE=ANY or RMODE=24. Check the source for the sample exits to see how IBM Connect:Direct defines the proper AMODE and RMODE settings.

To notate modifications by user in the the module maintenance history section of NDMLOG, include the local user ID by specifying the &UID SETC 'xxxx' local identifier in IBM Connect:Direct exits as part of the SCENTER macro. This value can contain up to 8 characters.

Sample JCL for assembling user exits is provided in $CD.SDGASAMP library members DGAXSTG1 and DGAXSTG2.

Special Considerations

The following special considerations apply to IBM Connect:Direct for z/OS® exits:
  • Avoiding Out-of-Storage ABENDS
    • To avoid out-of-storage ABENDS in IBM Connect:Direct, examine all user exits to verify that all obtained storage either via GETMAIN or STORAGE OBTAIN is freed. For each GETMAIN/STORAGE OBTAIN that an exit issues, the exit must also issue a corresponding FREEMAIN/STORAGE RELEASE to avoid accumulating storage. If an exit opens a file, you may need to issue a FREEPOOL after the file is closed.

  • Using Exits in 31-Bit Addressing Environments
    • Because information passed to the exit by IBM Connect:Direct is located above the 16 megabyte line, you must link-edit the module with AMODE 31 to make it capable of executing in 31-bit mode. Refer to the section in this chapter describing the particular exit to see if this requirement applies.
    • IBM Connect:Direct honors the addressing mode (AMODE) and residence mode (RMODE) attributes of user exits. The exit modules are loaded based on the RMODE specification and given control in the addressing mode specified in the AMODE attribute. Link exits that run above 16 megabytes in 31-bit mode to AMODE=31, RMODE=ANY.
    • Verify that your exits are coded to receive control and execute in the AMODE with which they are linked.
    • Exits must return control to IBM Connect:Direct in the AMODE in effect when IBM Connect:Direct invokes the exit. IBM Connect:Direct calls your exit through Branch and Save and Set Mode (BASSM), and you return to IBM Connect:Direct through Branch and Set Mode (BSM).
    Note: All sample exits provided in IBM Connect:Direct define the proper AMODE and RMODE settings within the source member themselves. All user exits should be link-edited with AMODE=31 and capable of executing in 31-bit mode (calls to user code will have the parameter list passed using 31-bit addresses). Each user exit should preserve the mode in which it was invoked and return to the caller in the proper mode. Modules written to execute in 31-bit mode can be link-edited with RMODE=ANY or RMODE=24. Check the source for the sample exits to see how IBM Connect:Direct defines the proper AMODE and RMODE settings.
  • Linkage Editor Attribute Requirements
    • You must create all exits that execute in the DTF address space and link-edit them as RENT and REUS.