Enduro/X is an enterprise middleware platform for distributed transaction processing.
It is built on proven APIs as X/Open group’s XATMI and XA.
The platform mostly functions as a replacement of Oracle’s Tuxedo, requiring little or none source code adaptation (depending on APIs used and supported by Enduro/X), and having configuration semantics similar to Tuxedo. In foundation of the platform are used in-memory kernel message queues. This ensures high Inter Process Communication throughput.
This is free and open source software.
Features include:
- Standards based APIs – SCA, The Open Group XATMI Communication types – Synchronous, Asynchronous, Conversational, Publish/subscribe.
- Typed buffers:
- UBF (Unified Buffer Format) which provides emulation of Tuxedo’s FML/FML32 format. UBF if high performance binary protocol buffer format. Buffer is indexed by binary search on fixed data types. Types supported include BFLD_CHAR, BFLD_SHORT, BFLD_LONG, BFLD_FLOAT, BFLD_DOUBLE, BFLD_STRING, BFLD_CARRAY, BFLD_PTR, BFLD_UBF (recursive buffers), BFLD_VIEW
- STRING buffer format.
- CARRAY (byte array) buffer format.
- JSON buffer format, automatic conversion between JSON and UBF available.
- VIEW buffer (starting from version 5.0+). This offer C structure sending between processes in cross platform way. Also this allows to map UBF fields to VIEW fields, thus helping developer quicker to develop applications, by combining UBF and VIEW buffers.
- Transaction Management – Global Transactions – Two-phase commit protocol – X/Open XA
Clustering – on peer-to-peer basis. - Multi-threaded Event broker (also called publish and subscribe messaging).
- System process monitoring and self healing (pings and restarts).
- SOA Service cache. XATMI services can be cached to LMDB database. Resulting that next call to service from any local client receives results directly from cache (mainly from direct memory read).
- Dynamic re-configuration.
- Custom server polling extensions.
- XATMI sub-system is able to work with out main application server daemon (ndrxd)
- Main application server daemon (ndrxd) can be restarted (if crashed). When started back it enters in learning mode for some period of time, in which in gathers information about system, what services are running, etc. After learning =-period, it starts to do normal operations
tpforward() call. - ATMI server threads may become clients, and can do tpcall().
- Extensive logging & debugging. Enduro/X logging can be configured per binary with different log levels. As ATMI servers can be started outside of appserver, it is possible to debug them from programming IDE or with tools like valgrind.
- For quality assurance project uses automated unit-testing and integration-testing
- Built in ATMI service profiling.
- Environment variables can be updated for XATMI server processes with out full application reboot.
- Generic client process monitor (cpm). Subsystem allows to start/stop/monitor client executables. At client process crashes, cpm will start it back.
- Provides configuration data encryption feature, so that software which is built on top of Enduro/X may comply with Payment Card Industry Data Security Standard (PCI/DSS).
- Application monitoring with TM_MIB interface. For example NetXMS.
- XA Driver for PostgreSQL.
- Fully functional buildserver, buildclient, buildtms tools.
- Provides server entry point _tmstartserver().
- Multi-threaded dispatcher support (mindispatchthreads/maxdispatchthreads), including support for tpsvrthrinit() tpsvrthrdone() callbacks.
- Fast Pool Allocator – for performance reasons malloc results are cached, so that blocks can be re-used instead of doing malloc again, thus Enduro/X is gaining overall performance.
- Support of writing server daemons for multi-threaded servers i.e. tpacall() to self advertised services during tpsvrinit().
- Support of Data Dependent Routing for UBF buffers.
- XATMI service auto-transactions are supported.
- For Linux and FreeBSD platforms call priorities are supported.
- Enduro/X logger now supports log-rotate calls (to re-open log handles) during the runtime.
- Enduro/X logger now allows to change log levels on the fly for any Enduro/X related process.
Enduro/X provides Latent Command Framework (LCF), where developers via plugin interface can publish CLI commands in xadmin tool, while any Enduro/X related program can receive such commands via callback and perform custom action. - Has tpsetcallinfo() and tpgetcallinfo() APIs.
- Product is extensively documented.
- Tool for automatic configuration migration from Oracle Tuxedo to Enduro/X.
Website: www.endurox.org
Support: GitHub Code Repository
Developer: Mavimax Ltd
License: GNU Affero General Public License v3.0
Enduro/X is written in C. Learn C with our recommended free books and free tutorials.
Enduro/X provides APIs for C/C++/Go and Java. Additionally connectivity package is provided for exposing XATMI services as rest services.
Return to C++ Application Servers
Popular series | |
---|---|
The largest compilation of the best free and open source software in the universe. Each article is supplied with a legendary ratings chart helping you to make informed decisions. | |
Hundreds of in-depth reviews offering our unbiased and expert opinion on software. We offer helpful and impartial information. | |
The Big List of Active Linux Distros is a large compilation of actively developed Linux distributions. | |
Replace proprietary software with open source alternatives: Google, Microsoft, Apple, Adobe, IBM, Autodesk, Oracle, Atlassian, Corel, Cisco, Intuit, and SAS. | |
Awesome Free Linux Games Tools showcases a series of tools that making gaming on Linux a more pleasurable experience. This is a new series. | |
Machine Learning explores practical applications of machine learning and deep learning from a Linux perspective. We've written reviews of more than 40 self-hosted apps. All are free and open source. | |
New to Linux? Read our Linux for Starters series. We start right at the basics and teach you everything you need to know to get started with Linux. | |
Alternatives to popular CLI tools showcases essential tools that are modern replacements for core Linux utilities. | |
Essential Linux system tools focuses on small, indispensable utilities, useful for system administrators as well as regular users. | |
Linux utilities to maximise your productivity. Small, indispensable tools, useful for anyone running a Linux machine. | |
Surveys popular streaming services from a Linux perspective: Amazon Music Unlimited, Myuzi, Spotify, Deezer, Tidal. | |
Saving Money with Linux looks at how you can reduce your energy bills running Linux. | |
Home computers became commonplace in the 1980s. Emulate home computers including the Commodore 64, Amiga, Atari ST, ZX81, Amstrad CPC, and ZX Spectrum. | |
Now and Then examines how promising open source software fared over the years. It can be a bumpy ride. | |
Linux at Home looks at a range of home activities where Linux can play its part, making the most of our time at home, keeping active and engaged. | |
Linux Candy reveals the lighter side of Linux. Have some fun and escape from the daily drudgery. | |
Getting Started with Docker helps you master Docker, a set of platform as a service products that delivers software in packages called containers. | |
Best Free Android Apps. We showcase free Android apps that are definitely worth downloading. There's a strict eligibility criteria for inclusion in this series. | |
These best free books accelerate your learning of every programming language. Learn a new language today! | |
These free tutorials offer the perfect tonic to our free programming books series. | |
Linux Around The World showcases usergroups that are relevant to Linux enthusiasts. Great ways to meet up with fellow enthusiasts. | |
Stars and Stripes is an occasional series looking at the impact of Linux in the USA. |