Chapter 1. Introduction

Why should I use LIXA project?

LIXA project allows you to develop Application Programs that perform two phase commit transactions using multiple Resource Managers. Two phase commit is a transactional protocol designed to guarantee ACID (Atomicity, Consistency, Isolation, Durability) transactionality.

LIXA supports different programming APIs and different programming models:

  • XTA, XA Transaction API, an original API implemented by LIXA to provide two phase commit transactions for micro services and/or serverless oriented applications

  • TX, a standard developed by X/Open in 1995

Warning

It applies to XA/TX programming model only.

The reference model ([RefModel]) technical guide available on the Open Group™ web site is more recent than the XA specification ([XAspec]); after XA, the X/Open Company developed the XA+ specification and the reference model was improved with the concepts necessary for XA+. LIXA project does not implement the XA+ specification, but only XA and the following concepts explained in [RefModel] do not apply to the LIXA project:

  • 3.1: Superior Node

  • 3.1: Subordinate Node

  • 3.1: Communication Resource Manager (CRM)

  • 3.5: Distributed Communication Facilities

  • 3.6: Activity between Functional Components Involving Two or More APs

  • 3.7: CRM Communication Paradigms with APs

  • 3.8: High-level TP Language

XA specification was designed to implement the two phase commit protocol in the case there is only one Application Program running inside a Transaction Monitor and using a Transaction Manager to coordinate any number of Resource Managers. XA+ specification was designed to implement the two phase commit protocol in the case there are two or more Application Programs running inside distinct Transaction Monitors and using distinct Transaction Managers to coordinate any number of Resource Managers.

Note

The above warning does not applies to XTA programming model, because it provides an alternative implementation of the following concepts:
  • Superior Node

  • Subordinate Node

  • Activity between Functional Components Involving Two or More APs

by mean of XTA (XA Transactional API) [1].