This is major strategic release. Major changes in this release is that, there is no more requirements of the large process stack are. Now Enduro/X uses dynamic allocated memory for internal buffer management. To keep the performance levels high, Enduro/X employs Fast Pool Allocator (FPA) which caches certain sizes of allocated memory blocks, so that lot of malloc() calls are eliminated. Previously new thread stack size was based on message size factor estimations. Now NDRX_THREADSTACKSIZE environment variable is used for this purposes (and if not sent default 8M is used). Other news is that this version implements more compliant build tools, including buildserver, buildclient and buildtms tools. Now buildserver generates the main() entry points of the server processes. Also when generating, main function, automatic service advertise is provided too. Build tools includes '-r' flag for static XA resource manager symbol application, thus for these cases libndrxxatmsx.so driver shall be used to use built-in xa switch handler.
New version of Enduro/X supports XATMI dispatcher multi-threading, supports callbacks of tpsvrthrinit() and tpsvrthrdone() via _tmstartserver(). Enduro/X event dispatching server tpevsrv is upgraded to multi-thread support via mindispatchthreads/maxdispatchthreads settings.
UBF Buffer now is optimized for BFLD_STRING field handling. The UBF buffer internally caches the string length, previously any iteration over the UBF buffer made strlen() for each string field occurrence, now cached length is used.
Generic System V mode has been reworked. Instead of previously using internal unnamed was utilized on every timed message processing. Now System V time-out scanning thread wakes ups every NDRX_SCANUNIT milliseconds, checking for queue thread time-out. This boost performance for System-V as no other internal message roundtrip is needed, but now periodic wakups are performed by XATMI processes for time-out scanning.
Thanks to IBM AIX extension now polling on System-V queues are performed in the same fashion as it is done on Linux.
Due to poor performance, and fact that no customers are using GPG-ME bridge traffic encryption, this functions is removed from the tpbridge process.
PDF documentation is removed from build processes, and binary distributions which includes documentation release, now includes HTML only documents.
For better analysis, logging is moved to microseconds format.
- BF_LENGTH/F_LENGTH value is changed from 32 to 64 (Max UBF field length)
- _tmstartserver() added arguments to tmsvrargs_t for p_tpsvrthrinit/p_tpsvrthrdone
- UBF buffer format changes due to string len caching. Thus any binary blob saved from previous Enduro/X version will not work in new version (if there are string fields)
- If server processes are started by _tmstartserver(), then there might be possible segmentation fault, as new Enduor/X version probes for tmsvrargs_t for p_tpsvrthrinit/p_tpsvrthrdone fields. If _tmstartserver() was not used, then there are no ABI changes to this aspect.
Feature #547 - BFLD_STRING shall store cached string length internally
Support #553 - Move tpexport/tpimport to dynamic memory
Feature #545 - Add call descriptor ranges for conversational IPC, avoid fast cd reuse
Feature #540 - Threadpool optimizations for waiting for free slot
Feature #218 - buildserver support for automatic server advertise
Feature #368 - xadmin start dead process detailed reason infos
Feature #398 - MINDISPATCHTHREADS and MAXDISPATCHTHREADS
Feature #440 - AIX Message queue poll feature
Feature #463 - System V queue interface optimizations
Feature #497 - Allow tpacall with TPNOREPLY to be executed from tpsrvinit()
Feature #511 - Move logs to microsecond format
Feature #539 - Thread pool shall use spinlocks for protecting internal counters
Bug #542 - tpgetrply for same thread multiple active call descriptors might drop call descriptor if reading the reply for different active all descriptor
Feature #549 - Moved to dynamic memory instead of stack allocation
Bug #576 - tmqueue at startup might get race conditions and create folder likes: ./QSPACE1/prepared/prepared
Feature #577 - tpbridge -i should accept host names too
Bug #580 - ini config duplicate key values in same section might cause memory leak
Support #582 - Move packaged documentation to HTML format
Support #562 - macos slow xadmin stop
Bug #575 - Binary with atmictx client starting first and only after server may cause to go out of shared memory mode
Bug #584 - server <sysopt>, <appopt> and cpmsrv client cmdline string argument quote issues
Support #585 - Remove gpg-me support for bridge traffic encryption
Support #558 - bridge overload
Bug #560 - tpcall() with TPETIME does not cancel the message
Support #557 - xadmin output updates
Bug #486 - if using tpacall() mixing with tpcall() may cause to drop pending async responses