15.10 - Rules and Restrictions for Routines - MultiLoad

Teradata MultiLoad Reference

prodname
MultiLoad
vrm_release
15.10
category
Programming Reference
featnum
B035-2409-035K

Rules and Restrictions for Routines

The following sections describe operational rules and restrictions for using INMOD and notify exit routines in Teradata MultiLoad jobs.

Specifying Routines

INMOD and notify exit routine names must be unique within the system.

A Teradata MultiLoad job can specify one INMOD routine with each IMPORT command. These specifications can be to the same or different INMOD routines.

Each Teradata MultiLoad job can specify an exit routine with the NOTIFY… EXIT option of the BEGIN MLOAD command.

Compiling and Linking Routines

The methods for compiling and linking routines vary with the operating system. The following sections describe the methods for z/OS, UNIX OS, and Windows.

Using z/OS

On mainframe-attached z/OS client systems, INMOD and notify exit routines must be compiled under IBM C.

Using UNIX OS

On network-attached UNIX client systems, INMOD and notify exit routines must:

  • Be compiled with the native UNIX C compiler
  • Be linked into a shared object module
  • Use an entry point named _dynamn
  • Using Windows

    On network-attached Windows client systems, INMOD and notify exit routines must:

  • Be written in C
  • Have a dynamn entry point that is a __declspec
  • Be saved as a dynamic-link library (DLL) file
  • For sample programs and procedures that compile and link INMOD and notify exit routines for the operating system environment, see Appendix C: “INMOD and Notify Exit Routine Examples.”

    Addressing Mode on z/OS Systems

    On Teradata MultiLoad 07.00.00 and later, use either 31-bit or 24-bit addressing for INMOD routines on mainframe-attached systems. The 31-bit mode provides access to more memory, which enhances performance for Teradata MultiLoad jobs with a large number of sessions.

    Use the following linkage parameters to specify the addressing mode when building INMOD routines for z/OS systems:

  • For 31-bit addressing: AMODE(31) RMODE(24)
  • For 24-bit addressing: AMODE(24) RMODE(24)
  • INMOD Routine Compatibility with Other Load Utilities

    Use FDL-compatible INMOD routines that were created for FastLoad by including the FDLINMOD parameter as the USING (parms) option of the IMPORT command. Using this parameter provides compatible support operations, except for the way checkpointing is performed:

  • If a Teradata MultiLoad job uses the FROM, FOR, or THRU options to request a range of records from an FDL-compatible INMOD routine, then Teradata MultiLoad bypasses any default record checkpointing.
  • If Teradata Database experiences a restart/ recovery operation, Teradata MultiLoad starts over and gets the records again from the beginning of the range.

    Under these same circumstances, if the BEGIN MLOAD command included a CHECKPOINT rate other than 0, Teradata MultiLoad terminates with an error condition.

  • If a Teradata MultiLoad job does not request a range of records, then Teradata MultiLoad performs checkpointing either by default or per the job specifications.
  • If Teradata Database experiences a restart/ recovery operation, and the INMOD routine supports recovery, Teradata MultiLoad continues the data acquisition activity from the last recorded checkpoint.

    Note, however, that the source sequence numbers generated by Teradata MultiLoad may not correctly identify the sequence in which the INMOD routine supplied the records. The data is still applied correctly, however, despite this discrepancy.

    An FDL-compatible INMOD routine with the INFILE specification of a Teradata MultiLoad IMPORT command cannot be specified.

    When an INMOD routine with the INFILE specification is specified:

  • Teradata MultiLoad performs the file read operation
  • The INMOD routine acts as a pass-through filter
  • The combination of an FDL-compatible INMOD routine with a Teradata MultiLoad INFILE specification is not valid because an FDL-compatible INMOD routine must always perform the file read operation.

    Checkpoints

    To support Teradata MultiLoad restart operations, the INMOD routine must support checkpoint operations, as described in “Teradata MultiLoad/INMOD Routine Interface” on page 73.

    If an INMOD routine that does not support the checkpoint function is used, a job may encounter problems when Teradata MultiLoad takes a checkpoint.

    By default, Teradata MultiLoad takes a checkpoint every 15 minutes. To bypass the Teradata MultiLoad checkpoint function specify a CHECKPOINT rate of zero in the BEGIN MLOAD command; that way, the job completes without taking a checkpoint.

    When the CHECKPOINT rate is greater than 60, the specified number refers to the number of records, not the number of minutes. Though this would nullify the Teradata MultiLoad restart/reload capability, it would allow use of an INMOD routine that does not support the checkpoint function.