0001 # Mavimax Enduro/X® Core
0002
0003 ## Build (including atmi/ubf tests) status
0004
0005 | OS | Status | OS | Status |OS | Status |
0006 |----------|:-------------:|----------|:-------------:|----------|:-------------:|
0007 | RHEL/Oracle Linux 9| [](http://www.silodev.com:9090/jenkins/job/endurox-ol9/) |Centos 6|[](http://www.silodev.com:9090/jenkins/job/endurox-centos6/)|FreeBSD 11|[](http://www.silodev.com:9090/jenkins/job/endurox-freebsd11/)|
0008 |Oracle Linux 7|[](http://www.silodev.com:9090/jenkins/job/endurox-ol7/)|OSX 11.4|[](http://www.silodev.com:9090/jenkins/job/endurox-osx11_4/)|raspbian11_arv7l|[](http://www.silodev.com:9090/jenkins/job/endurox-raspbian10_arv7l/)|
0009 |SLES 12|[](http://www.silodev.com:9090/jenkins/job/endurox-sles12/)|SLES 15|[](http://www.silodev.com:9090/jenkins/job/endurox-sles15/)|Solaris 10|[](http://www.silodev.com:9090/jenkins/job/endurox-solaris10-sparc/)|
0010 |Solaris 11| [](http://www.silodev.com:9090/jenkins/job/endurox-solaris11_x86/)|Ubuntu 14.04| [](http://www.silodev.com:9090/jenkins/job/endurox-ubuntu14/)|Ubuntu 18.04| [](http://www.silodev.com:9090/jenkins/job/endurox-ubuntu18/)|
0011 |RHEL/Oracle Linux 8| [](http://www.silodev.com:9090/jenkins/job/endurox-ol8/)|Ubuntu 22.04| [](http://www.silodev.com:9090/jenkins/job/endurox-ubuntu22/)|Ubuntu 20.04| [](http://www.silodev.com:9090/jenkins/job/endurox-ubuntu20/)|
0012
0013 <<<<<<< HEAD
0014 =======
0015 `NOTE: Enduro/X for non-Linux versions is available only under commercial license from Mavimax SIA`
0016
0017 >>>>>>> 27e9322ee89671333910b10440d602252b093839
0018 ## Overview
0019
0020 Enduro/X is Open Source Middleware Platform for Distributed Transaction
0021 Processing
0022
0023 It is modern, micro-services based middleware for writing distributed, open
0024 systems (program consists of several executables) based applications. Thus
0025 by using Enduro/X programmers do not have to worry about threads and concurrency
0026 anymore, the load balancing and multi-CPU loading is done by Enduro/X middleware by it self,
0027 administrator only have to determine how many copies of particular services should
0028 be started. Of-course Enduro/X supports multi-threaded applications too, but now
0029 system architects have a choice either to design multi-threaded executables or
0030 just configure number of executables to start.
0031
0032 For local inter-process-communication (IPC) Enduro/X uses kernel memory based Posix
0033 queues to avoid overhead of the TCP/IP protocol which is used in other middlewares
0034 or REST based micro-service architectures. Thus this approach greatly increases
0035 application speed, as kernel queues is basically a matter of block memory
0036 copy from one process to another (by contrast of 7 layers of TCP/IP stack and
0037 streaming nature of the sockets vs block copy).
0038
0039 Enduro/X provides SOA architecture for C/C++ applications and allows to cluster
0040 application in fault tolerant way over multiple physical servers.
0041 Enduro/X provides Oracle(R) Tuxedo(R) FML/FML32 library emulation,
0042 including boolean expressions. Other Tuxedo specific APIs are supported,
0043 such as tpforward() and work with distributed transactions (tpbegin(),
0044 tpcommit(), etc.).
0045
0046 Platform provides X/Open XATMI and XA interfaces/APIs for C/C++ applications. Enduro/X can
0047 at some level can be considered as replacement
0048 for Oracle(R) Tuxedo(R), Jboss Blacktie (Narayan), Hitachi OpenTP1 and other XATMI middlewares.
0049
0050 Dual licensed under Affero General Public License Version 3 for use in Open
0051 Source project or Commercial license Acquired from Mavimax Ltd
0052 (https://www.mavimax.com),
0053
0054 EnduroX have bindings for:
0055 - Golang (client & server)
0056 - Java (client & server)
0057 - Python 3 (client & server)
0058 - PHP (client)
0059 - Perl (client & server)
0060
0061 Enduro/X provides following features:
0062
0063 * Standards based APIs - SCA, The Open Group XATMI
0064 Communication types - Synchronous, Asynchronous, Conversational, Publish/subscribe
0065 * Typed buffers
0066 * UBF (Unified Buffer Format) which provides emulation of Tuxedo's FML/FML32
0067 format. UBF if high performance binary protocol buffer format. Buffer is
0068 indexed by binary search on fixed data types. Types supported include BFLD_CHAR,
0069 BFLD_SHORT, BFLD_LONG, BFLD_FLOAT, BFLD_DOUBLE, BFLD_STRING, BFLD_CARRAY,
0070 BFLD_PTR, BFLD_UBF (recursive buffers), BFLD_VIEW
0071 * STRING buffer format.
0072 * CARRAY (byte array) buffer format.
0073 * JSON buffer format, automatic conversion between JSON and UBF available.
0074 * VIEW buffer (starting from version 5.0+). This offer C structure sending
0075 between processes in cross platform way. Also this allows to map UBF
0076 fields to VIEW fields, thus helping developer quicker to develop applications,
0077 by combining UBF and VIEW buffers.
0078 * Transaction Management - Global Transactions - Two-phase commit protocol - X/Open XA
0079 * Clustering - on peer-to-peer basis
0080 * Multi-threaded Event broker (also called publish and subscribe messaging)
0081 * System process monitoring and self healing (pings and restarts)
0082 * SOA Service cache. XATMI services can be cached to LMDB database. Resulting
0083 that next call to service from any local client receives results
0084 directly from cache (mainly from direct memory read).
0085 * Dynamic re-configuration
0086 * Custom server polling extensions
0087 * XATMI sub-system is able to work without main application server daemon (ndrxd)
0088 * Main application server daemon (ndrxd) can be restarted (if crashed).
0089 When started back it enters in learning mode for some period of time,
0090 in which in gathers information about system, what services are running,
0091 etc. After learning =-period, it starts to do normal operations
0092 * tpforward() call
0093 * ATMI server threads may become clients, and can do tpcall()
0094 * Extensive logging & debugging. Enduro/X logging can be configured per binary
0095 with different log levels. As ATMI servers can be started outside of
0096 appserver, it is possible to debug them from programming IDE or with
0097 tools like valgrind.
0098 * For quality assurance project uses automated unit-testing and integration-testing
0099 * Built in ATMI service profiling.
0100 * Environment variables can be updated for XATMI server processes with
0101 out full application reboot.
0102 * Generic client process monitor (cpm). Subsystem allows to start/stop/monitor
0103 client executables. At client process crashes, cpm will start it back.
0104 * Starting with version 5.2 Enduro/X provides configuration data encryption feature,
0105 so that software which is built on top of Enduro/X may comply with
0106 Payment Card Industry Data Security Standard (PCI/DSS).
0107 * Application monitoring with TM_MIB interface. For example NetXMS.
0108 * XA Driver for PostgreSQL.
0109 * Fully functional buildserver, buildclient, buildtms tools.
0110 * Provides server entry point _tmstartserver().
0111 * Multi-threaded dispatcher support (mindispatchthreads/maxdispatchthreads),
0112 including support for tpsvrthrinit() tpsvrthrdone() callbacks.
0113 * Fast Pool Allocator - for performance reasons malloc results are cached,
0114 so that blocks can be re-used instead of doing malloc again, thus Enduro/X
0115 is gaining overall performance.
0116 * Support of writing server daemons for multi-threaded servers
0117 i.e. tpacall() to self advertised services during tpsvrinit().
0118 * Support of Data Dependent Routing for UBF buffers.
0119 * XATMI service auto-transactions are supported.
0120 * For Linux and FreeBSD platforms call priorities are supported.
0121 * Enduro/X logger now supports log-rotate calls (to re-open log handles) during
0122 the runtime.
0123 * Enduro/X logger now allows to change log levels on the fly for any Enduro/X
0124 related process.
0125 * Enduro/X provides Latent Command Framework (LCF), where developers via
0126 plugin interface can publish CLI commands in xadmin tool, while any Enduro/X related
0127 program can receive such commands via callback and perform custom action.
0128 * Has tpsetcallinfo() and tpgetcallinfo() APIs.
0129 * Product is extensively documented.
0130 * Tool for automatic configuration migration from Oracle Tuxedo to Enduro/X.
0131
0132 
0133
0134 # Load balancing
0135
0136 
0138
0139 Supported operating system: GNU/Linux, starting from 2.6.12 kernel
0140 (needed for POSIX Queues). Starting with Enduro/X Version 3.1.2 IBM AIX (6.1 and
0141 7.1),
0142 Oracle Solaris 11, MAC OS X (experimental) and Cygwin (experimental)
0143 support is added. Supported compilers: gcc, LLVM clang, IBM xlC.
0144
0145 - Build and installation guides are located at: www.endurox.org/dokuwiki
0146
0147 - Support forum: http://www.endurox.org/projects/endurox/boards
0148
0149 - Binary builds (RPMs & DEBs) for various platforms are here:
0150 https://www.mavimax.com/downloads
0151
0152 - Documentation available here: http://www.endurox.org/dokuwiki/doku.php
0153
0154 - Source corss reference: http://www.silodev.com/lxr/source
0155
0156 # Call/message forwarding
0157
0158 ## Instead of doing calls to each server separately...
0159
0160 
0161
0162 This is typciall way for example if doing micro-services with HTTP/REST.
0163 You need to do the calls to each service separately. And that is extra
0164 overhead to system (multiple returns) and the caller must orchestrate the all
0165 calls.
0166
0167 ## ...Enduro/X offers much effective way - tpforward() where request is
0168 passed around the system
0169
0170 
0172
0173 In this case the destination service orchestrates the system, it is up to
0174 service to choose the next service which will continue the call processing.
0175 The caller is not aware of final service which will do the reply back
0176 (tpreturn()).
0177
0178 Note that service after doing "tpforward()" becomes idle and can consume next
0179 call.
0180
0181 # High availability and self healing
0182
0183 Enduro/X is capable of detecting stalled/hanged XATMI servers and gracefully
0184 can reboot them. The ping times are configurable on per server basis. In case
0185 if main daemon dies, it is possible to configure special XATMI server named
0186 "tprecover" which monitors "ndrxd" and vice versa, ndrxd can monitor tprecover.
0187 Thus if any of these services are not cleanly shut down, then system will
0188 heal it self, and boot service/daemons back.
0189
0190 The ndrxd learning mode is some period of time (configurable) in which ndrxd
0191 will request all the system for active servers and their services,
0192 to get back the view of the system and be in control. Note that system is able
0193 to work even without ndrxd, but at that time no server healing
0194 and management will be done.
0195
0196 
0198
0199 # Real time system patching
0200
0201 It is possible to patch the Enduro/X system (update stateless XATMI servers)
0202 without service interruption. This is achieved by following scheme:
0203
0204 
0205
0206 # Monitoring
0207
0208 Enduro/X provides TM_MIB API for information reading. Out of the box NetXMS
0209 monitoring suite uses this API to monitor application. Thus full featured
0210 monitoring is possible. Presentation here (video):
0211
0212 [](https://www.youtube.com/watch?v=ubJk27bjKGE)
0213
0214 # Performance
0215
0216 Due to fact that Enduro/X uses memory based queues, performance numbers are
0217 quite high:
0218
0219 ## ATMI client calls server in async way (tpacall(), no reply from server)
0220
0221  performance")
0222
0223
0224 ## Local one client calls server, and gets back response:
0225
0226  performance")
0227
0228 ## Multiple clients calls multiple servers
0229
0230  performance")
0232
0233 ## Single client calls single server via network (two app servers bridged)
0234
0235 
0236 performance")
0237
0238 ## Persistent storage (message enqueue to disk via tpenqueue())
0239 The number here are lower because messages are being saved to disk.
0240 Also internally XA transaction is used, which also requires logging to stable
0241 storage. This benchmark uses default Enduro/X setting for data
0242 flushing to disk which is fflush() Unix system call. Fflush() does not guarantee data
0243 consistence at power outage event. For fully guaranteed data consistence,
0244 flags (FSYNC/FDATASYNC/DSYNC) can be set for XA resource. However expect much
0245 lower TPS performance.
0246
0247  performance")
0249
0250
0251 ## Tpcall cache benchmark
0252 This benchmark shows the performance of cached XATMI service calls.
0253
0254  cache performance")
0255
0256 # Migration from Oracle Tuxedo to Enduro/X
0257
0258 The migration is as simple as this (ideal scenario):
0259
0260 * Re-build the source code against Enduro/X.
0261 * Migrate the configuration to Enduro/X format in seconds with [ubb2ex](doc/manpage/ubb2ex.adoc) tool.
0262 * Test migrated application.
0263 * Go live.
0264 * See full [migration_tuxedo](doc/migration_tuxedo.adoc) guide.
0265
0266 Configuration migration example (ubb_config1 is Tuxedo UBB configuration file):
0267
0268 ```
0269 $ ubb2ex ubb_config1 -P ./test_dir
0270 UBB2EX Tool
0271
0272 Enduro/X 7.5.36, build Dec 17 2021 22:33:46, using epoll for LINUX (64 bits)
0273
0274 Enduro/X Middleware Platform for Distributed Transaction Processing
0275 Copyright (C) 2009-2016 ATR Baltic Ltd.
0276 Copyright (C) 2017-2021 Mavimax Ltd. All Rights Reserved.
0277
0278 This software is released under one of the following licenses:
0279 AGPLv3 (with Java and Go exceptions) or Mavimax license for commercial use.
0280
0281
0282 $ cd test_dir/user90/conf
0283
0284 $ ls -1
0285
0286 app.test1.ini
0287 ndrxconfig.test1.xml
0288 settest1
0289
0290 $ source settest1
0291
0292 $ xadmin start -y
0293 Enduro/X 7.5.36, build Dec 17 2021 22:33:46, using epoll for LINUX (64 bits)
0294
0295 Enduro/X Middleware Platform for Distributed Transaction Processing
0296 Copyright (C) 2009-2016 ATR Baltic Ltd.
0297 Copyright (C) 2017-2021 Mavimax Ltd. All Rights Reserved.
0298
0299 This software is released under one of the following licenses:
0300 AGPLv3 (with Java and Go exceptions) or Mavimax license for commercial use.
0301
0302 * Shared resources opened...
0303 * Enduro/X back-end (ndrxd) is not running
0304 * ndrxd PID (from PID file): 57479
0305 * ndrxd idle instance started.
0306 exec cconfsrv -k C4Lwt7G4 -i 1 -e /tmp/test_dir/user90/log/cconfsrv.1.log -r -- :
0307 process id=57481 ... Started.
0308 exec cconfsrv -k C4Lwt7G4 -i 2 -e /tmp/test_dir/user90/log/cconfsrv.2.log -r -- :
0309 process id=57482 ... Started.
0310 exec tpadmsv -k C4Lwt7G4 -i 3 -e /tmp/test_dir/user90/log/tpadmsv.3.log -r -- :
0311 process id=57483 ... Started.
0312 exec tpadmsv -k C4Lwt7G4 -i 4 -e /tmp/test_dir/user90/log/tpadmsv.4.log -r -- :
0313 process id=57484 ... Started.
0314 exec tpevsrv -k C4Lwt7G4 -i 5 -e /tmp/test_dir/user90/log/tpevsrv.5.log -r -- :
0315 process id=57485 ... Started.
0316 exec tmsrv -k C4Lwt7G4 -i 8 -e /tmp/test_dir/user90/log/tmsrv.8.log -r -- -t1 -l /tmp/test_dir/user90/tmlogs/rm8 :
0317 process id=57491 ... Started.
0318 exec tmsrv -k C4Lwt7G4 -i 9 -e /tmp/test_dir/user90/log/tmsrv.9.log -r -- -t1 -l /tmp/test_dir/user90/tmlogs/rm8 :
0319 process id=57503 ... Started.
0320 exec tmqueue -k C4Lwt7G4 -i 40 -e /tmp/test_dir/user90/log/tmqueue.40.log -r -- -s1 -p10 -f10 :
0321
0322 ...
0323 ```
0324
0325
0326 # Releases
0327
0328 - Version 2.5.1 released on 18/05/2016. Support for transactional
0329 persistent message queues. Provides APIs: tpenqueue(), tpdequeue() and
0330 command line management tools. See doc/persistent_message_queues_overview.adoc,
0331 doc/manpage/tmqueue.adoc, doc/manpage/xadmin.adoc, doc/manpage/q.config.adoc.
0332 Use cases can be seen under atmitests/test028_tmq
0333
0334 - Version 3.1.2 released on 25/06/2016. Added support for other Unix systems.
0335 Currently production grade support is provided for following operating systems:
0336 GNU/Linux, FreeBSD, IBM AIX and Oracle Solaris. MAC OS X and Cygwin versions
0337 are
0338 considered as experimental. FreeBSD installation guides are located at
0339 doc/freebsd_notes.adoc, AIX install guide: doc/aix_notes.adoc,
0340 Solaris install guide: doc/solaris_notes.adoc and OS X guide:
0341 doc/osx_notes.adoc. Also with this version lot of core processing bug fixes are
0342 made.
0343
0344 - Version 3.2.1 released on 06/07/2016. Major UBF optimization. Now for each
0345 data type memory offset is maintained. For fixed data types (short, long, char,
0346 float, double) binary search is performend when field is read from buffer.
0347
0348 - Version 3.2.2 released on 15/07/2016. Bugfixes for UBF binary search. Added
0349 UBF benchmarking scripts and documents.
0350
0351 - Version 3.3.1 released on 05/09/2016. Implemented common configuration engine
0352 (can use ini files in alternative to environment variables, debug config and
0353 persistent queue config).
0354
0355 - Version 3.3.2 released on 01/10/2016. Works on TP logger, user accessible
0356 logging framework. Set of tplog\* functions.
0357
0358 - Version 3.3.5 released on 10/01/2017. Fixes for RPM build and install on
0359 Red-hat enterprise linux platform.
0360
0361 - Version 3.3.6 released on 12/01/2017. Fixes for integration mode, changes in
0362 tpcontinue().
0363
0364 - Version 3.4.1 released on 13/01/2017. New ATMI server flag for developer -
0365 reloadonchange - if cksum change changed on binary issue sreload.
0366
0367 - Version 3.4.2 released on 20/01/2017. Network protocol framing moved from 2
0368 bytes to 4 bytes.
0369
0370 - Version 3.4.3 released on 26/01/2017. Memory leak fixes for tmsrv and tmqueue
0371 servers.
0372
0373 - Version 3.4.4 released on 26/01/2017. Works on documentation. Fixes on
0374 PScript.
0375
0376 - Version 3.4.5 released on 14/02/2017. Fixes in generators.
0377
0378 - Version 3.5.1 released on 03/03/2017. Updates on tpreturn() - more correct
0379 processing as in Tuxedo, free up return buffer + free up auto buffer.
0380
0381 - Version 3.5.2 released on 24/03/2017. Bug #105 fix. Abort transaction if it
0382 was in "preparing" stage, and tmsrv loaded it from logfile. Meaning that caller
0383 alaready do not wait for tpcommit() anymore and got inconclusive results, thus
0384 better to abort.
0385
0386 - Version 3.5.3 released on 26/03/2017. Fixes for Solaris, Sun Studio (SUNPRO)
0387 compiler
0388
0389 - Version 3.5.4 released on 01/03/2017. Fixed bug #108 - possible CPM crash
0390
0391 - Version 3.5.5 released on 23/03/2017. Works Feature #113 - mqd_t use as file
0392 descriptor - for quick poll operations.
0393
0394 - Version 3.5.6 released on 02/04/2017. Fixed issues with possible deadlock for
0395 poll mode on bridge service calls. Fixed issuw with 25 day uptime problem for
0396 bridges on 32bit platfroms - the messages becomes expired on target server.
0397 Issues: #112, #145, #140, #139, #113
0398
0399 - Version 3.5.7 release on 23/04/2017. Fixed Bug #148 (Bdelall corrupts ubf
0400 buffer)
0401 Bug #110 (tpbridge does not report connection status to ndrxd after ndrxd is
0402 restarted for recovery)
0403
0404 - Version 3.5.9 released on 22/06/2017. Bug fix #160 - retry xa_start with
0405 xa_close/xa_open. New env variable NDRX_XA_FLAGS, tag "RECON".
0406
0407 - Version 4.0.1 released on 29/06/2017. Multi-threaded bridge implementation.
0408 tpnotify(), tpbroadcast(), tpsetunsol(), tpchkunsol() API implementation.
0409
0410 - Version 4.0.2 released on 19/07/2017. Fixed ndrxd core dump issue Bug #174.
0411
0412 - Version 4.0.3 released on 26/07/2017. Fixes of #176 #178. NDRX_DUMP, UBF_DUMP
0413 fixes.
0414
0415 - Version 4.0.4 released on 29/07/2017. Feature #162 - added evt_mib.h
0416
0417 - Version 4.0.5 released on 01/08/2017. Feature #180 - refactoring code towards
0418 ISO/IEC 9899:201x standard.
0419
0420 - Version 5.0.1 released on 21/08/2017. Feature #96 - Typed View support, Bug
0421 #182 - fix in bridge protocol.
0422
0423 - Version 5.0.2 released on 22/08/2017. Bug #183
0424
0425 - Version 5.0.3 released on 22/08/2017. Bug #186
0426
0427 - Version 5.0.4 released on 22/08/2017. Bug #186
0428
0429 - Version 5.0.5 released on 27/08/2017. Bug #184, Bug #191, Bug #190, Bug #192,
0430 Bug #193
0431
0432 - Version 5.0.6 released on 28/08/2017. Bug #195
0433
0434 - Version 5.0.7 released on 01/09/2017. Feature #161 - tmsrv database pings &
0435 automatic reconnecting in case of network failures.
0436
0437 - Version 5.0.8 released on 17/09/2017. Works on dynamic view access. #99, #206,
0438 #207, #210
0439
0440 - Version 5.0.9 released on 27/09/2017. (development) Works on #224
0441
0442 - Version 5.0.10 released on 13/10/2017. (stable) Feature #232, Feature #231,
0443 -O2 optimization by default
0444
0445 - Version 5.1.1 released on 13/10/2017. (development) Feature #127, Bug #229,
0446 Feature #230, Bug #234, Feature #244, Bug #243, Feature #248, Bug #240, Bug #238
0447
0448 - basically big message size support (over the 64K)
0449
0450 - Version 5.1.2 released on 18/10/2017. (stable) Bug #250
0451
0452 - Version 5.2.1 released on 18/12/2017. (development) Major work on support for PCI/DSS mandatory
0453 configuration encryption. Introduction of plugin architecture (currently used for
0454 crypto key providers). Implemented tpconvert() ATMI call. Now @global section for ini files are
0455 read twice. Thus ini file can reference to previosly defined env/global variable.
0456 Fixes: #261 Bug, #118 Feature, #237 Feature, #236 Bug, #245 Feature, #258
0457 Support, #259 Support, #255 Bug, #254 Bug.
0458
0459 - Version 5.2.2 released on 21/12/2017. (stable) First stable version of Enduor/X 5.2. Rolled
0460
0461 - Version 5.2.4 released on 22/12/2017. (stable) Fixed Bug #268.
0462
0463 - Version 5.2.6 released on 02/01/2018. (stable) Happy New Year! Fixed Bug #269.
0464
0465 - Version 5.2.8 released on 26/01/2018. (stable) Fixed Bug #274 - too many open files,
0466 when threaded logger using for multi-contexting (like go runtime)
0467
0468 - Version 5.2.10 released on 27/01/2018. (stable) Feature #275 - allow to mask
0469
0470 - Version 5.2.12 released on 27/01/2018. (stable) Feature #275 - fixes for server un-init (not critical)
0471
0472 - Version 5.2.14 released on 03/02/2018. (stable) Feature #278 - new fields for compiled connection id
0473
0474 - Version 5.2.15 released on 08/02/2018. (development) Feature #282 - new UBF api Baddfast()
0475
0476 - Version 5.2.16 released on 09/02/2018. (stable) Feature #282 - new UBF api Baddfast(), finished
0477 documentation and added unit tests.
0478
0479 - Version 5.3.2 released on 25/03/2018 (stable) Fixes on Feature #272, Bug #291, Feature #287, Bug #290, Support #279
0480
0481 - Version 5.3.4 released on 26/03/2018 (stable) Feature #294, Bug #293
0482
0483 - Version 5.3.5 released on 28/03/2018 (Development) Working progress on Feature #295
0484
0485 - Version 5.3.6 released on 01/04/2018 (stable) Finished works on Feature #295
0486
0487 - Version 5.3.8 released on 06/04/2018 (stable) Implemented Feature #299 - new flag TPNOABORT
0488
0489 - Version 5.3.9 released on 09/04/2018 (development) Fixed Bug #300
0490
0491 - Version 5.3.10 released on 10/04/2018 (stable) Fixed Support #301
0492
0493 - Version 5.3.12 released on 12/04/2018 (stable) Support #302 - added last 8 chars of hostname to logfile
0494
0495 - Version 5.3.14 released on 21/04/2018 (stable) Bug #306
0496
0497 - Version 5.3.15 released on 23/04/2018 (development) Feature #307
0498
0499 - Version 5.3.16 released on 16/05/2018 (stable) Bug #317
0500
0501 - Version 5.3.17 released on 18/05/2018 (development) Feature #320 - cmdline tag for server in xml config
0502
0503 - Version 5.3.18 released on 27/06/2018 (stable) Bug #325
0504
0505 - Version 5.3.20 released on 10/10/2018 (stable) Backport Bug #321 fix to 5.3
0506
0507 - Version 6.0.1 released on 18/11/2018 (development) Latvia's 100th anniversary.
0508 Major work on System V queue support, works for Java support, lots of bugs fixed.
0509 Support #252, Feature #281, Feature #307, Support #310, Support #326,
0510 Bug #330, Feature #331, Feature #333, Feature #334, Bug #338,
0511 Bug #339, Bug #341, Bug #347, Support #350, Bug #351, Support #352, Bug #353
0512
0513 - Version 6.0.2 released on 02/12/2018 (stable) Bug #355 and other stability issues fixed
0514 released with 6.0.1.
0515
0516 - Version 6.0.3 released on 16/12/2018 (development) Bug #364, Bug #360.
0517 Added new command "ps" for xadmin, so that unit tests have unified access to
0518 processing listings across all supported OSes.
0519
0520 - Version 6.0.5 released on 24/12/2018 (development) Feature #366
0521
0522 - Version 6.0.6 released on 08/01/2019 (stable) Marking stable release
0523
0524 - Version 6.0.8 released on 11/01/2019 (stable) Feature #372
0525
0526 - Version 6.0.10 released on 13/01/2019 (stable) Support #373, Bug #374
0527
0528 - Version 6.0.12 released on 16/01/2019 (stable) Bug #375, Bug #376
0529
0530 - Version 6.0.13 released on 18/01/2019 (development) Feature #181
0531
0532 - Version 6.0.14 released on 30/01/2019 (stable) Marking stable version
0533
0534 - Version 6.0.15 released on 01/01/2019 (development) Feature #380
0535
0536 - Version 6.0.17 released on 02/01/2019 (development) Feature #382, Feature #367, Support #303, Feature #271
0537
0538 - Version 6.0.19 released on 15/03/2019 (development) Bug #394, Feature #393
0539
0540 - Version 6.0.21 released on 19/03/2019 (development) Feature #397
0541
0542 - Version 6.0.23 released on 19/03/2019 (development) Additional work for Feature #397
0543
0544 - Version 6.0.25 released on 22/03/2019 (development) Feature #396
0545
0546 - Version 6.0.26 released on 25/03/2019 (stable) Support #400
0547
0548 - Version 6.0.27 released on 30/03/2019 (development) Feature #402
0549
0550 - Version 6.0.28 released on 11/06/2019 (stable) Feature #419
0551
0552 - Version 7.0.10 released on 03/11/2019 (stable) Release notes are here: https://www.endurox.org/news/18
0553
0554 - Version 7.0.12 released on 13/11/2019 (stable) Fixes on Bug #466
0555
0556 - Version 7.0.14 released on 13/11/2019 (stable) Fixes on Feature #470, Support #471, Support #473, Support #475
0557
0558 - Version 7.0.16 released on 16/11/2019 (stable) Fixes on Support #443, Support #493
0559
0560 - Version 7.0.18 released on 17/01/2020 (stable) Fixes on Bug #412, Support #505
0561
0562 - Version 7.0.20 released on 22/01/2020 (stable) Fixes on Support #502
0563
0564 - Version 7.0.22 released on 31/01/2020 (stable) Feature #509
0565
0566 - Version 7.0.24 released on 01/01/2020 (stable) Support #506
0567
0568 - Version 7.0.26 released on 09/03/2020 (stable) Support #528, Support, #527, Support #524,
0569 Bug #523, Bug #521, Bug #515, Support #512, Bug #507, Support #503
0570
0571 - Version 7.0.28 released on 12/03/2020 (stable) Bug #530, Feature #313, Feature #536
0572
0573 - Version 7.0.30 released on 24/03/2020 (stable) Bug #537
0574
0575 - Version 7.0.32 released on 29/03/2020 (stable) Bug #544
0576
0577 - Version 7.0.34 released on 11/05/2020 (stable) Bug #501
0578
0579 - Version 7.0.36 released on 25/06/2020 (stable) Feature #262
0580
0581 - Version 7.5.1 released on 10/06/2020 (development) Feature #547, Support #553, Feature #545, Feature #540,
0582 Feature #218, Feature #368, Feature #398, Feature #440, Feature #463, Feature #497, Feature #511, Feature #539,
0583 Bug #542, Feature #549, Bug #576, Feature #577, Bug #580, Support #582
0584
0585 - Version 7.0.38 released on 03/07/2020 (stable) Bug #565
0586
0587 - Version 7.0.38 released on 03/07/2020 (stable) Bug #565, Bug #566
0588
0589 - Version 7.0.40 released on 11/07/2020 (stable) Bug #570, Support #571
0590
0591 - Version 7.0.42 released on 13/08/2020 (stable) Bug #572, Bug #578, Feature #581
0592
0593 - Version 7.5.2 released on 18/08/2020 (stable) First release version. Support #585, Bug #584, Bug #575
0594
0595 - Version 7.5.4 released on 21/09/2020 (stable) Feature #516, Bug #589, Support #590, Bug #592, Feature #588, Feature #598, Feature #594
0596
0597 - Version 7.5.6 released on 2/11/2020 (stable) Feature #603
0598
0599 - Version 7.5.8 released on 26/11/2020 (stable) Bug #610
0600
0601 - Version 7.0.44 released on 27/11/2020 (stable) Feature #606
0602
0603 - Version 7.0.44 released on 27/11/2020 (stable) Feature #606
0604
0605 - Version 7.0.44 released on 27/11/2020 (stable) Feature #606, Support #611
0606
0607 - Version 7.5.10 released on 27/11/2020 (stable) Feature #606
0608
0609 - Version 7.5.12 released on 16/12/2020 (stable) Support #612, Support #611
0610
0611 - Version 7.5.14 released on 21/12/2020 (stable) Feature #613
0612
0613 - Version 7.0.46 released on 17/01/2021 (stable) Support #623
0614
0615 - Version 7.5.16 released on 17/01/2021 (stable) Support #623
0616
0617 - Version 7.5.18 released on 18/02/2021 (stable) Support #633
0618
0619 - Version 7.5.20 released on 18/02/2021 (stable) Feature #213, Feature #286, Feature #401, Bug #608, Support #481, Support #644
0620
0621 - Version 7.5.22 released on 15/02/2021 (stable) Feature #640, Support #657
0622
0623 - Version 7.5.24 released on 11/04/2021 (stable) Bug #666, Support #667, Bug #675
0624
0625 - Version 7.5.26 released on 11/04/2021 (stable) Bug #602, Support #671, Support #677, Support #673, Bug #624
0626
0627 - Version 7.5.28 released on 30/05/2021 (stable) Support #634, Feature #699, Support #703, Bug #704, Feature #709, Feature #714,
0628 Feature #715
0629
0630 - Version 7.5.30 released on 24/07/2021 (stable) Feature #717, Bug #719
0631
0632 - Version 7.5.32 released on 08/07/2021 (stable) Support #721, Bug #725
0633
0634 - Version 7.5.34 released on 10/09/2021 (stable) Feature #726, Feature #447, Bug #730, Support #729, Bug #734, Support #737
0635
0636 - Version 8.0.1 released on 09/10/2021 (development) Support #63, Support #265, Support #753, Support #752, Bug #701, Feature #211, Support #753, Support #752,
0637 Feature #226, Bug #601, Feature #518, Support #622, Feature #517, Support #599, Support #554, Bug #555, Support #759, Bug #639, Support #267
0638
0639 - Version 7.5.36 released on 16/12/2021 (stable) Support #742, Bug #745, Bug #747, Support #748, Bug #749, Bug #750, Bug #796
0640
0641 - Version 8.0.4 released on 05/02/2022 (stable) Support #763, Feature #764, Support #765
0642
0643 - Version 8.0.6 prepared on 07/03/2022 (stable) Feature #767, Support #768, Support #769, Bug #771
0644
0645 - Version 7.0.48 released on 26/01/2021 (stable) Support #761
0646
0647 - Version 7.0.50 released on 12/11/2022 (stable) Bug #794
0648
0649 - Version 7.5.38 released on 12/11/2022 (stable) Bug #794, Bug #796, Bug #801
0650
0651 - Version 8.0.2 released on 26/01/2022 (stable) Marking initial release
0652
0653 - Version 8.0.4 released on 05/02/2022 (stable) Support #763, Feature #764, Support #765
0654
0655 - Version 8.0.6 prepared on 07/03/2022 (stable) Feature #767, Support #768, Support #769, Bug #771, Feature #772, Bug #774, Bug #775
0656
0657 - Version 8.0.8 prepared on 19/09/2023 (stable) Bug #789, Feature #792, Bug #794, Support #795, Bug #796, Bug #149,
0658 Bug #798, Bug #738, Support #448, Bug #125, Bug #202, Bug #799, Bug #801, Support #802, Support #806
0659
0660 - Version 8.0.10 prepared on 10/08/2023 (stable) Bug #810, Bug #811, Bug #812, Feature #739
0661
0662 - Version 8.0.12 prepared on 19/01/2024 (stable) Bug #822, Bug #824, Bug #827, Feature #839
0663
0664 - Version 7.5.40 logged on 11/03/2024 (stable) Bug #827
0665
0666 # Build configurations
0667
0668 ## Configure make with:
0669
0670 $ cmake -DCMAKE_INSTALL_PREFIX:PATH=`pwd`/dist .
0671
0672 ### Flags:
0673
0674 - To enable System V message queue, pass '-DDEFINE_SYSVQ=ON' to cmake (applies
0675 to Linux only). Default on AIX and Solaris.
0676
0677 - To enable poll() use instead of epoll() in Linux use '-DDEFINE_FORCEPOLL=ON'
0678 (applies to Linux only).
0679
0680 - To force use emulated message queue, add '-DDEFINE_FORCEEMQ=ON' (applies to
0681 Linux only). Default on Macos.
0682
0683 - To disable GPG_ME, pass additional flag to cmake '-DDEFINE_DISABLEGPGME=ON'
0684
0685 - To disable documentation building add '-DDEFINE_DISABLEDOC=ON'
0686
0687 - To disable platform script building use '-DDEFINE_DISABLEPSCRIPT=ON'
0688
0689 - To do release build, use '-DDEFINE_RELEASEBUILD=ON'
0690
0691 - To log the memory allocation to user log add '-DNDRX_MEMORY_DEBUG=1'
0692
0693 - To trace of the Object-API use '-DNDRX_OAPI_DEBUG=1'
0694
0695 - To trace of the Semaphore handling use '-DNDRX_SEM_DEBUG=1'
0696
0697 - To enable test047 with Oracle PRO*C database access use '-DENABLE_TEST47=ON'
0698 Note that *proc* must be in path and ORACLE_HOME must be set. Also Oracle DB
0699 libraries must be present in LD_LIBRARY_PATH (or equivalent environment for
0700 target OS).
0701
0702 - To force memory alignment usage, use '-DDEFINE_ALIGNMENT_FORCE=1', by default
0703 on for SPARC cpus.
0704
0705 - To enable address sanitizer for GCC/Clang on supported hardware platforms,
0706 use '-DDEFINE_SANITIZE=1'
0707
0708 - To enable PostgreSQL XA Driver build use '-DENABLE_POSTGRES=ON'
0709
0710 - To disable PostgreSQL ECPG Driver build use '-DDISABLE_ECPG=ON' (for certain
0711 Operating systems ECPG, postgres-devel package is missing, thus let only pq
0712 driver to build)
0713
0714 - To enable strict mutex checking on GNU platform, use '-DMUTEX_DEBUG=ON' (for
0715 GNU platforms only)
0716
0717 - To force use AIX System V Polling on AIX and Linux (for Linux dev build only, non functional),
0718 add '-DDEFINE_SVAPOLL=ON'.
0719