Introduction

This chapter describes the internal architecture, system architecture, administration, and directory structure of Tmax.

1. Overview

In a client/server computing environment, an increase in the number of clients has caused problems such as machine diversification, systems running a mixture of different operating systems and databases, data incompatibility, and deterioration of server performance.

Tmax, a transaction processing middleware solution, resolves such problems and provides functions such as process and transaction management, load balancing, and resource management in a heterogeneous environment.

figure1 1
Tmax Features
  • Process management

    Tmax manages server instance (server process) loading, task distribution, and automatic process creation.

  • Transaction management

    Tmax ensures the ACID properties of each transaction (Atomicity, Consistency, Isolation, and Durability).

  • Load balancing

    Tmax provides optimal system performance and efficient processing.

  • Heterogeneous resource management

    Tmax resolves various problems that arise from integrating heterogeneous platforms/resources.

2. Tmax Architecture

The Tmax system is made up of nine system operation processes (TMM, TMS, CLL, CLH, RQS, GW, CAS, TLM, and HMS) and four management tools (tmadmin, racd, tmboot, and tmdown).

figure1 2
Tmax Engine Architecture
  • System Operation Processes

    • TMM (Tmax Manager)

      TMM, the Tmax Manager, manages the overall operations of Tmax. It manages system operation information and CLL, CLH, TMS, and RQS processes as well as various Tmax application processes. TMM is the first component to load when Tmax starts up, and the last to be terminated when Tmax shuts down.

      If a Tmax system contains multiple nodes, the TMM on each node maintains session connections with the others to monitor their heartbeats and provide fault tolerance for the server group. TMM is also responsible for logging each process and updating all shared data. TMM ensures normal system operation when a problem occurs that disrupts logging, such as lacking disk space, by temporarily suspending logging until the problem is resolved.

    • CLL (Client Listener)

      CLL, the Client Listener, forms an initial link between a client and Tmax system. The initial client-Tmax connection is handled by the CLL. When a client issues a service request, all service processing is done through an internal connection with CLH.

    • CLH (Client Handler)

      CLH, the Client Handler aka the client manager, serves as a mediator between client and server processes. CLH controls data flow by connecting to application server process, gateway, RQ process, and Tmax process. When a service is requested by a client, the CLH forwards the request to the appropriate application server process. Once it receives the results from the application server process, it returns them to the client.

    • TMS (Transaction Management Server)

      TMS, Transaction Management Server, is responsible for managing database and distributed transactions. While TMM, CLL, and CLH are critical processes that always gets loaded into memory, the TMS is only responsible for database management and distributed transaction processing. It is implemented by using the database libraries.

    • RQS (Reliable Queue Server)

      The RQS, Reliable Queue Server, manages Tmax disk queues. Generally, all data stored within a system is at some level of risk, and the data stored in memory waiting to be processed can be lost in the event of a system failure. The RQS resolves this problem by storing data on the disk before and after service requests to preserve the stored data and resume services when the system is restarted.

      The RQS is only loaded when it is specified in the configuration file since an active RQS process can negatively impact the service processing performance.

    • GW (Gateway)

      In a Tmax system that consists of multiple domains, the GW (Gateway) handles inter-domain communications. By using communication methods such as TCP/IP, SNA/LU0, SNA/LU6, and X.25, GW can facilitate communication and integration not only between different Tmax domains, but also between Tmax system and various other systems.

      Gateways are only loaded when they are specified in the configuration file. The actual name of a process may vary depending on the setting in the configuration file, and some gateways may require settings to be added to or modified in the configuration file. GW is an optional process that runs only when it is specified in the configuration file.

    • CAS (Client Authentication Server)

      In Tmax systems that require security, the CAS performs level one and level two security checks for user authentication.

    • TLM (Transaction Log Manager)

      TLM, Transaction Log Manager, monitors pending transactions and performs transaction logging, which was previously performed by TMM (earlier than 4.0).

    • HMS (Hybrid Messaging System)

      HMS, Hybrid Messaging System, serves as the communication mediator that enables loose coupling between a sender and a receiver. Even though a sender and a receiver do not know each other, the messaging system enables them to communicate with one another with only virtual channel information of the destination. HMS ensures reliability in message transmission in order to allow delayed data processing by providing the ability to distinguish between the time the message is sent and received.

  • Management Tools

    • tmadmin (Tmax Administration)

      Tmadmin is a management tool that can be used to dynamically check or modify the Tmax configuration file. It can also be used to monitor the behavior of server processes and to check the statuses of application service processes and queues.

    • racd (Remote Access Control Daemon)

      Racd is a daemon process that runs on each node (machine) in the system. When a Tmax system is comprised of multiple nodes in a single domain (group of nodes that share a single configuration file), racd can be used to enable the central monitoring and management of the entire system and nodes from a single node through tmadmin. It can also be used to ensure that changes in the configuration file are applied to all nodes of the domain without having to copy the file each time.

    • tmboot (Tmax System Boot)

      Tmboot is used to start up Tmax using the configuration file. It first loads the system processes, including TMM, CLL, and CLH, and then the RQ, TMS, and GW processes for additional environment configuration, and lastly it loads the application server processes. Tmboot can be used with various options to start Tmax.

    • tmdown (Tmax System Down)

      Tmdown is used to shutdown Tmax using the configuration file. It first terminates application server processes, and then shuts down the Tmax management processes.

3. System Architecture

A domain is the highest modular unit of a Tmax system that uses a single configuration file. Domains can be composed of a single or multiple nodes, which are connected in a peer-to-peer relationship. In a domain with multiple nodes, the nodes communicate with each other at a constant time interval and share configuration information. Thus, all nodes of the domain possess information about all the other nodes and the overall domain status, which means that clients can access all services offered by the domain from any node.

Clients can connect to a particular node of the domain. If possible, a service requested by the client gets processed by the node that the client is connected to. However, if the service is provided by a different node, the node that the client is connected to will forward the request to that node. Once the request has been processed, the result will be returned to the client.

If the requested service is not provided by the node it is connected to, (refer to Passing a Request between Two Nodes) the request is processed as follows:

figure1 4
Passing a Request between Two Nodes

The node (Node A), which the client is connected to (1), communicates with the node that provides the service (Node B) to forward the request for processing (2). Node A will then receive the result from Node B (3) and then pass the result back to the client (4).

The following figure is a detailed architecture of Tmax system.

figure1 3
Tmax System Architecture

4. System Administration

Tmax system can be managed either statically or dynamically.

  • Static Management

    Static management involves the manipulation of the system configuration file to perform administrative tasks before the system starts or without affecting the running system.

  • Dynamic Management

    Dynamic management refers to manipulating the system while it is running to perform administrative tasks that may influence the state or performance of a running system, such as starting or shutting down (tmboot/tmdown), management through Tmax administration, or the modification of environment variables.

4.1. Static Management

Static management of the system is done through environment configuration.

The following must be completed before configuring Tmax system.

  • Creating Tmax Configuration File

    Before starting a Tmax system or configuring the environment, the configuration file for the system must be created. This is one of the key responsibilities of Tmax administrators. Once created, the Tmax configuration file will contain general information about a single domain that makes up an independent system unit, gateways that provide inter-domain connections or communication with legacy systems, nodes that make up the system, services of each node, server processes that provide services, and the logical groups of servers called a server group.

    For more information about creating the configuration file, refer to Environment Configuration.

  • Configuration File Compilation

    Once the configuration file has been created, it will need to be compiled. If there are no errors in the configuration file, it will be compiled into a binary file. This binary file will be referred to whenever Tmax starts up or shuts down.

  • Service Table Creation

    A complete configuration file is required before the service table can be created. The service table informs Tmax about the type and location of services available in the system. The service table should contain a separate table for each service defined in the configuration file. Executable programs must be linked to the service table in order for Tmax to recognize and execute them. The service table is used to compile program source codes written by developers to create server-side application programs.

4.2. Dynamic Management

The following describes how to dynamically manage system operation and system startup and shutdown.

  • Startup and Shutdown

    After completing environment configuration, the administrator can start up Tmax. This involves starting various components of the Tmax engine, such as the TMM, CLL, and CLH (as well as TMS if database is involved, and RQS if RQ is involved) processes and the application server processes that will process client requests. It is important to note that normally servers are not started and terminated separately. They are managed by Tmax and are started and terminated when the Tmax engine components are started.

  • System Operation Management

    The administrator can monitor the status of each system components while Tmax is running, and take appropriate actions if necessary. Dynamic management of the system is performed through tmadmin, an interactive monitoring program that can be accessed through the console.

    • Information Display

      Administrators can use tmadmin commands and options to collect information about clients (names and locations), servers (location, server group, availability, and execution count), server processes (location, status, processing time, execution count, and data backlog) and networking (connected nodes and partitioned nodes), as well as information on transactions and application program parameters.

    • Dynamic Modification of Tmax Configuration

      Administrators can dynamically modify Tmax system environment, including adjusting time-out values, priorities and load balancing, restarting dead processes, terminating processes, restarting terminated processes, and adding new services to an active server process.

      Environment variables that are modified during system operation will revert back to the values defined in the configuration file when the system shuts down (tmdown) and is rebooted (tmboot).

5. Directory Structure

The following is the basic structure of the Tmax installation directory. This directory will be referred by several environment variables within the configuration file.

$Tmax HOME
+---- appbin
+---- bin
+---- config
+---- lib (or lib64 for 64-bit)
+---- license
|---- log
        +---- slog
        +---- tlog
        +---- ulog
+---- mod
+---- path
+---- run
|---- sample
        +---- client
        +---- tdl
        +---- fdl
        +---- sdl
        +---- server
+---- svct
+---- usrinc
+---- topinc
+---- cobinc
+---- tuxinc
+---- tcpgw
+---- tcpgwthr
+---- x25gw
+---- UninstallerData
+---- bk_appbin
$Tmax HOME

Tmax home directory. (System variable: TMAXDIR, configuration file item: TMAXDIR)

appbin

Contains server applications developed using Tmax. (Configuration file item: APPDIR)

bin

Contains Tmax commands and utilities.

config

Contains Tmax system configuration files.

lib (or lib64 for 64-bit)

Contains Tmax library files.

license

Contains license files.

log

Contains log files.

Subdirectory Description

slog

Contains system log files. (Configuration file item: SLOGDIR)

ulog

Contains user log files. (Configuration file item: ULOGDIR)

tlog

Contains transaction information. (Configuration file item: TLOGDIR)

mod

Contains libraries to update when using TDL.

path

Used as a pipe for inter-process communication. (Configuration file item: PATHDIR)

run

Contains libraries with a version after executing tdlupdate when using TDL.

sample
Subdirectory Description

client

Contains sample client program files.

tdl

Contains sample TDL program files.

fdl

Contains sample field key definition files (demo.f). (System variable: FDLFILE)

sdl

Contains sample structure definition file (demo.s). (System variable: SDLFILE)

server

Contains sample server program files.

svct

Contains service table files used to compile server applications.

usrinc

Contains Tmax header files.
demo.f defines Field Definition Language (FDL) fields, and demo.s defines Structure Definition Language (SDL) fields. You can create and use FDL and SDL fields for a project.

topinc

Contains header files used to migrate TOP END to Tmax.

cobinc

Contains COBOL header files.

tuxinc

Contains header files used to migrate Tuxedo to Tmax.

tcpgw

Contains TCPGW header files.

tcpgwthr

Contains TCPGW THR header files.

x25gw

Contains x25gw header files.

UninstallerData

Contains files used to uninstall Tmax.

bk_appbin (optional)

Contains a new process that is installed to replace an existing server process. Must be created by a user. (System variable: TMAX_BKAPPDIR)