/lixa

LIXA, LIbre XA, is a free and open source XA transaction manager

Primary LanguageCGNU General Public License v2.0GPL-2.0

L     I X   X   A
L     I  X X   A A    LIXA
L     I   X   A   A   LIbre XA
L     I  X X  AAAAA   a free and open source XA Transaction Manager
LLLLL I X   X A   A   http://www.tiian.org/lixa/



*********
ABSTRACT:

LIXA, acronym of LIbre XA, is an open source and free software Transaction
Manager that implements:
- the distributed transaction processing "XA specification" and
  the "TX (transaction demarcation) specification" according to the
  X/Open CAE Specification
- XTA, XA Transaction API, an interface specifically designed to supply
  TXaaS (Transaction as a Service) features in a FaaS (Function as a Service)
  ecosystem.
LIXA is a Transaction Manager but it's not a Transaction Monitor: this is the
distinguishing feature of the project: it enables every application container,
like a web server or a shell, to become an XA compliant application server.
The client/server architecture of LIXA allows many application containers to
point a single LIXA state server: this is ideal where horizontal scalability is
a must and many identical application containers must refer to the same
transactional environment. 



********
LICENSE:

LIXA is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as published
by the Free Software Foundation.

LIXA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

******************
LICENSE EXCEPTION:

A piece of LIXA (liblixab, liblixac, liblixta and switch file wrappers) is
distributed under the terms of GNU Lesser General Public License version 2.1
as published by the Free Software Foundation.
The license exception allows the usage of the * LIBRARIES * provided by the LIXA
project under the terms of GNU Lesser General Public License version 2.1.



***************
SPECIAL THANKS:
August 1st, 2016: Christian Ferrari thanks Globetom Holdings (Pty) Ltd 
for its donation to Emergency NGO, an international charity that promotes 
a culture of peace, solidarity and respect for human rights providing free, 
high quality medical and surgical treatment to the victims of war, landmines 
and poverty.



*****************
XTA SPECIAL NOTE:
XA Transaction API (XTA) is a testing feature introduced since LIXA 1.5.0 and
it's not yet ready for a production environment: the development phase has not
been completed and the code can still contains severe bugs.
If you don't like to test XTA, you can disable it at configure time using:
./configure --disable-xta .....
Please use Github issue tracking https://github.com/tiian/lixa/issues or
SourceForge ticketing system https://sourceforge.net/p/lixa/bug/ to document
XTA possible bugs.
Example programs are available in doc/examples/xta



**************
DOCUMENTATION:
Documentation is available in these places:
- local directory doc/manuals/index.html after tarball extraction
- http://www.tiian.org/lixa/manuals/html/
- http://lixa.sourceforge.net/lixa-doc/html/
- http://lixa.sourceforge.net/lixa-doc/xta/

Some important things you should check in the documentation before going on:
1. check LIXA dependency looking at "Installation/System requirements"
2. understand LIXA installation procedure describe at "Installation/Configure,
   build and install"
3. if you are interested in the test procedure (after build), take a look to
   "Installation/Checking"
4. how to understand what's happening inside LIXA code is explained in
   "In Depth/Tracing"
5. examples are described in chapter "Development"

Doxygen source code documentation: how to extract from LIXA source code the
documentation of files, structs and functions (you must install Doxygen
http://www.stack.nl/~dimitri/doxygen/ before you can use it).
Please update doxygen.conf.in and change /var/www/lixa to a suitable 
destination in your system.
Use "configure" (see above) to produce "doxygen.conf" file.
If you installed Graphviz (http://www.graphviz.org/), configure should detect
it and would produce data and headers dependencies too.



********************
DEPENDENCIES REPORT:
O.S.            Feature         Packages
Ubuntu          Basic           make gcc libglib2.0-dev libxml2-dev uuid-dev pkg-config automake
Ubuntu		MySQL		mysql-server libmysqlclient-dev
Ubuntu		PostgreSQL	postgresql libpq-dev
Ubuntu          GnuCOBOL	open-cobol
CentOS          Basic           gcc glib2-devel libxml2-devel libuuid-devel autoconf net-tools
CentOS		MySQL		mysql-server/mariadb-server mysql-devel/mariadb-devel
CentOS		PostgreSQL	postgresql postgresql-server postgresql-devel
RHEL 7.3	Basic		gcc glib2-devel libxml2-devel libuuid-devel
				autoconf net-tools libtool


Enjoy LIXA!
Ch.F.