Chapter 1. Introduction

Table of Contents

1.1. Overview
1.2. TDL Features

This chapter describes the concepts and features of the TDL(Tmax Dynamic Library).

1.1. Overview

TDL(Tmax Dynamic Library) uses dynamic library linking which an OS provides to support seamless updates of application modules which frequently change.

Such dynamic application modules must be built in the form of shared libraries. The version is given when updated by using the TDL management tools so that an environment where the old and new versions can be simultaneously used is created. An developer must call modules through the tdlcall() function which uses the most recent version of the module to convert the old version into the new version seamlessly.

[Figure 1.1] TDL(Tmax Dynamic Library) Structure

TDL(Tmax Dynamic Library) Structure

1.2. TDL Features

The following are the TDL features.

  • Manages version information using shared memories.

    TDL must maintain information about each library version, which will be stored in shared memories as the information must be used when the Tmax server or client program uses tdlcall(). Accordingly, TDL is available to use in local Tmax clients and $TDLDIR environment variables must be configured.

  • Supports version consistency.

    As TDL updates during operation, the old and new versions can be used concurrently. Applications bound to a transaction or batch applications must use the module with the same version. For this, TDL supports version consistency. There are explicit version consistency and implicit version consistency.

    • Explicit Version Consistency

      Explicit version consistency enables the same version used through APIs such as tdlstart(), tdlend(), tdlsuspend(), and tdlresume().

      [Figure 1.2] Explicit Version Consistency

      Explicit Version Consistency

    • Implicit Version Consistency

      Implicit version consistency automatically enables the same version used for applications bound to a transaction. To use this function, TDL parameters must be set to the DOMAIN or NODE clauses.

      [Figure 1.3] Implicit Version Consistency

      Implicit Version Consistency

  • The recursive call ensures the consistency of module.

    When a user calls a module recursively, module updates must be prevented before calling the function is complete. For this, a module has a reference count, which increases whenever the module is called and decreases when the call is complete. If the reference count is not zero, this prevents the module from being updated or released from memory.

  • Supports various management tools.

    Supports management tools for TDL initialization and updates, information about the shared memory version and status, statistics inquiry, and deleting the older version of files. For detailed information about the management tools, refer to "2.3. System Management Tools".

  • Supports error logging and backup.

    Can leave logging for errors and information that occur when using management tools and API. To log errors, configure a LOGDIR parameter of the TDL environment file($TMAXDIR/config/tdl.cfg).

    Supports a file back up service for shared memory to load from the backed up file when the equipment fails or restarts. To specify a backed up file, configure a BACKUP parameter of the TDL environment file($TMAXDIR/config/tdl.cfg).

  • Supports a multi-node environment.

    TDL basically supports the TMAX multi-node environment. But, among multiple nodes, only one node must be a master node and others must be slave nodes. Initialization and update tools can be run only on the master node. Query tools can be run on slave nodes.

    To use a multi-node environment, all nodes must configure the TDL environment. If there is a node that does not use the TDL environment, the RACFILE parameter of the TDL environment file($TMAXDIR/config/tdl.cfg) must be specified.

    When multi nodes are used, racd must be run on all the nodes. For detailed information about racd, refer to "Tmax Administrator's Guide".

  • Supports the TDL domain.

    Multiple TMAX domains can be set to one TDL domain in TDL. It is necessary for an environment where a TDL module must be used commonly over the domain. But, to use the TDL domain, racd must be used. Accordingly, the DOMAINID and RACFILE parameters of the TDL environment file($TMAXDIR/config/tdl.cfg) must be specified.

    In particular, the DOMAINID parameter must be specified differently if the TDL domain is different. If the DOMAINID value is not configured, it is automatically set to zero. When the TDL domain is used, racd must be run on all the nodes.

    The TDL domain is closely related with the library version consistency. Explicit version consistency is guaranteed only within the TDL domain. Implicit version consistency automatically makes the consistency maintained per domain if the TDL domain is different.

    [Figure 1.4] TDL Domain Composition

    TDL Domain Composition