Customizing TDPUTCE - Teradata Director Program

Teradata® Director Program Reference

Product
Teradata Director Program
Release Number
17.00
Published
June 2020
Language
English (United States)
Last Update
2020-06-18
dita:mapPath
pxm1544831938750.ditamap
dita:ditavalPath
obe1474387269547.ditaval
dita:id
B035-2416
lifecycle
previous
Product Category
Teradata Tools and Utilities

When NPs are used, TDP employs the MVS EZASMI socket API, so only this socket API may be used by TDPUTCE. 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.

Because TDPUTCE runs as part of TDP, it is privileged. If it is improperly coded, TDPUTCE can cause errors or even destroy TDP.

When customizing a TDPUTCE module, consider the following points:

  • TDPUTCE can only access data supplied by TDP in data control blocks described in MACLIB and SAMPLIB, on a release tape of Teradata software. It is not permitted access to other TDP components.
  • The TDPUTCE module can directly use most normal OS services.
  • If TDPUTCE is abnormally terminated, TDP error recovery disables TDPUTCE, but once the problem is resolved it can be reactivated using the TDP ENABLE TMON command.

    On z/OS or VOS3, 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 can 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.

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

Control is passed to the TDPUTCE routine with general register 1 pointing to the TDPMNPRM control block. This control block contains a user word, the request/response string, and pointers to fields containing information about the requestor.

When invoked to process a TDP command, any userids, passwords, and account names can consist of characters from the character set passed to the exit. When supported by this character set (or, for the START POOL command, in the command itself), 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 EBCDIC double-byte characters.

When invoked to process requests and responses, data (including object names) can contain EBCDIC double-byte characters if double byte characters are valid in the session character set passed to the exit.