Customizing TDPLGUX - Teradata Director Program

Teradata® Director Program Reference - 17.20

Teradata Director Program
Release Number
June 2022
English (United States)
Last Update
Product Category
Teradata Tools and Utilities

When NPs are used, TDP employs the z/OS EZASMI socket API, so only this socket API may be used by TDPLGUX. According to IBM publication z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference, only one type of socket API may be used within a single address space, with unpredictable problems if another API is used.

When customizing a TDPLGUX module, the following points must be considered:

  • Because TDPLGUX runs as part of TDP, it is privileged. If improperly coded, it can cause errors or even destroy TDP.
  • TDPLGUX can access only data supplied by TDP in data control blocks described in MACLIB and SAMPLIB, on a release tape of Teradata software. It can not access other TDP components.
  • TDPLGUX can directly use most normal OS services.
  • If TDPLGUX is abnormally terminated, TDP error recovery disables TDPLGUX and allows logon requests to continue, but once the problem is resolved it can be reactivated using the TDP ENABLE LGUX command.

    On z/OS, a dump is written to the TDPSNAP DDName. If the exit attaches tasks and a subtask abnormally terminates, TDP does not process the error. That is, the exit is not disabled and no dump is written by TDP. However, the operating system might record the dump if the standard resources are available (a SYSUDUMP DD statement on z/OS, for example). It is the exit’s responsibility to properly manage its subtasks so that such failures do not impact its operation.

  • TDPLGUX runs under TDP as a single-threaded routine, and can process only one request at a time. Consequently, the exit routine must be at least serially reusable or re-enterable in order to be compatible with the rest of TDP.
  • TDPLGUX can keep its own tables. A single word is always passed between TDPLGUX and TDP as part of the parameter list. TDPLGUX can use this word to point to a block of storage containing information that is required across calls.
  • As a subroutine of TDP, TDPLGUX must save and restore registers in the standard OS format when it is called. If other services besides TDPLGUX also are called, the routine must provide its own save area. Finally, TDPLGUX must return to the address passed in general register 14.

Control is passed to TDPLGUX with general register 1 pointing to the TDPLGPRM control block. This control block contains a user word, the logon string, pointers to fields containing information about the register, and the session character set.

If the logon string is parsed, the userid, password, and account name each consists of characters from the session character set. When supported by the session character set, each contiguous group of EBCDIC double-byte characters is preceded by the Shift-out control character, X’0E’, and followed by the Shift-in control character, X’0F’. Neither commas nor blanks can be specified as double byte characters.

On return, TDPLGUX passes one of the following return codes to TDP in general register 15:

Return Code Meaning
0 Allow the logon request to continue.
Nonzero Do not allow the logon request to continue.