Chapter 3. Configuration

A LIXA system is the assembling of two components: the client and the server. The figure below shows a typical configuration with one Application Program and two Resource Managers.

Figure 3.1. Typical LIXA topology

Typical LIXA topology

The model shows logical and "phisycal" blocks:

The model shows how the blocks communicate:

Architectural elements

The lixad daemon process can be executed on any system: there is no need to execute it on the same system that's hosting the Application Programs. The communications between the client and the server (lixad) uses TCP/IP sockets.

The lixac library is embedded in the Application Programs; the communication between the Application Program and the lixac library uses TX (Transaction Demarcation) API, see [TXspec]. The lixac library contains all the logic of the LIXA Transaction Manager.

The communication between the Application Program and the Resource Managers depends on Resource Managers type and configuration: it may be cross memory, TCP/IP, System V IPC, etc... The communication between the lixac library and the Resource Manager depends on Resource Manager configuration and must be of the same used by the Application Program.

The communication between lixac library and lixad is ever istantiated by the client: the server never calls the clients.

Deployment models

This section explains some different deployment models you can set up leveraging the LIXA project technology.

The easiest non trivial model

The easiest non trivial deployment of a distributed transaction processing system based on the LIXA project is showed below: a single node hosts the Application Program, the Resource Managers and the LIXA server.

Figure 3.2. Easiest non trivial deployment model

Easiest non trivial deployment model

A trivial model

A trivial deployment of a distributed transaction processing system based on the LIXA project is showed below: a single node hosts the Application Program, the Resource Manager and the LIXA server. This configuration is obtained from the previous one removing a Resource Manager.

Using only one Resource Manager is supported by the LIXA project technology, but it's quite useless because you don't need a transaction manager to perform single phase commit against one Resource Manager. This type of configuration will not be described more deeply.

Figure 3.3. Trivial deployment model

Trivial deployment model

A fully distributed model

A fully distributed transaction processing system can be achieved hosting every component in a different node. The picture below shows 4 different nodes:

  • an application server node hosting the Application Program

  • a Transaction Manager dedicated node hosting the LIXA server

  • two Resource Manager dedicated nodes hosting the Reosurce Managers

Figure 3.4. Fully distributed deployment model

Fully distributed deployment model

A more complex distributed model

A more complex distributed transaction processing system can be achieved introducing a second application server and a third Resource Manager; in the picture below the third Resource Manager is hosted in the same node of the second Resource Manager.

The two different Application Programs do not need to be hosted in different application servers. They are different Application Programs because they use a different mix of Resource Managers.

Figure 3.5. Complex distributed deployment model

Complex distributed deployment model

Further complexity can be reached introducing an Application Program that uses three (or more) different Resource Managers, but this document will not go on this path to preserve understandability [16] .



[16] The dashed box named "Transaction Manager" was removed to simplify the picture.