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.