News

8.0.10 Patch release

Added by Editor 4 months ago

Overview

This is regular patch release. With new feature implemented - process groups.

Fixes

Feature #739 - Singleton process groups and delayed queue support
Bug #810 - Invalid counter used for <restart_min>, <restart_step> and <restart_max> at respawn checking
Bug #811 - tpext_addperiodcb() for certain load types, callback may be called with longer intervals, than specified in 'secs' parameter
Bug #812 - tpbridge in -f mode may fail to send BFLD_CHAR field with value 0x00

NOTE: When upgrading, Feature #739 requires full instance stop accompanied by "$ xadmin down -y".

Release availability

See https://www.mavimax.com/downloads

8.0.8 Patch release

Added by Editor 7 months ago

Overview

This is regular patch release.

Fixes

Bug #125 - Do not reload server when it is shutdown (normally)
Bug #149 - Remove "<respawncheck>" for samples and docs
Bug #202 - reloadonchange starts max count of services
Support #448 - xadmin sreload invalid error message
Bug #738 - Ignore error in case if cannot read file from FIELDTBLS and continue with next file
Bug #789 - For UBF buffers: TPSVCINFO field "len" is set to 0
Feature #792 - Add "-o" (for stdout) for the XATMI servers, at the ATMI_SERVER_SYSTEM_OPTIONS
Bug #794 - ubf user type convert functions might core dump on doubles which representation is larger than 63 symbols
Support #795 - tpadm T_CLIENT class does not report dead clients
Bug #796 - JSON functions used in Enduro/X might incorrectly process large long fields
Bug #798 - Enduro/X might double start processes if they failed to reload for some reason (i.e. not killed in time) and <end_max>*<sanity time> is higher than <srvstopwait>
Bug #799 - Conversational API (tpconnect()) may corrupt XATMI server memory
Bug #801 - Blen documentation
Support #802 - ndebug.h shall use "const char *" for paramers which are const
Support #806 - ndrxd sanitiy scan timing precision

Decommissioned/EOL builds: AIX 7.1, MacOS OS X El Capitian, Raspbian 10, FreeBSD 11
New build systems added: Ubuntu 22.04, Oracle Linux 9, Raspbian 11, FreeBSD 13

Release package naming have been streamlined. Key changes:
- RHEL/Oracle Linux/Centos packages contains “el<version>” identifier
- SUSE Linux packages now contain “sl<version>” identifier
- PowerPC architecture now is named after “ppc64”
- All package name is in lower case

Release availability

See https://www.mavimax.com/downloads

7.5.38 Patch release

Added by Editor 7 months ago

Overview

This is regular patch release.

Fixes

Bug #794 - ubf user type convert functions might core dump on doubles which representation is larger than 63 symbols
Bug #796 - JSON functions used in Enduro/X might incorrectly process large long fields
Bug #801 - Blen documentation

Decommissioned/EOL builds: AIX 7.1, MacOS OS X El Capitian
New build systems added: AIX 7.3, Ubuntu 22.04, Oracle Linux 9

Release availability

See https://www.endurox.org/projects/endurox/files

8.0.6 Patch release

Added by Editor over 1 year ago

Overview

Wit this release, Mavimax brings Python language support for the Enduro/X.

Fixes

Feature #767 - Bnext2() API call
Support #768 - tpcommit() status reporting
Support #769 - Random generator update to use thread local storage for seed
Bug #771 - PROTO error - no reply from service in multi-threaded server mode without long jump
Feature #772 - New flag TPCI_NOEOFERR for tpgetcallinfo()
Bug #774 - BFLD_PTR embedded fields shall be freed automatically when tpfree() is run on main buffer
Bug #775 - Concurrent (from different threads) debug init and tpinit from another thread might cause deadlock at binary startup
Feature #776 - API for debug file pointer handling
Support #777 - tpcancel() shall remove messages from reply queue
Bug #778 - tpgblktime(0) returns 0 in case if there as any previous affected XATMI call e.g. tpcall
Bug #779 - DDR routed services with UBF type calling with other buffer types hangs the tpcall() routine
Support #781 - tprecv() with TPNOBLOCK flag on empty queue sets tperrno=0
Feature #782 - Add support for xadmin ctrl+d handler for quitting the utility
Feature #783 - Add support for CBfastadd() UBF API call
Bug #784 - Error in SystemV IPC mode shared memory houskeeping
Bug #785 - Duplicate server may be started, if died server is rebooted by ndrxd and meanwhile started by xadmin CLI tool
Support #788 - on fork exec (clients, servers) close stdin

Release availability

See https://www.mavimax.com/downloads

Enduro/X 8.0 Release

Added by Editor about 2 years ago

Overview

This is major strategic release. New release includes several overall improvements for the system stability, compatibility and performance. Major feature implemented is support for sub-UBF buffers (recursive buffers), support for PTR type fields in UBF and VIEW fields in UBF. New APIs have been added tpsetcallinfo() and tpgetcallinfo(). Platform independent network protocol mode for tpbridge has been refactored and receives performance boost as well as release includes full protocol description document. Another big feature for this release is inclusion of new tool "ubb2ex" which allows to perform automatic Oracle Tuxedo configuration file migration to Enduro/X format in matter of seconds. Tool performs best possible mapping to Enduro/X configuration, including, support for clustering, persistent queues, servers, services, routing. Migration document has been created which describes how manually to migrate from Oracle Tuxedo to Enduro/X. With this version AIX 7.3 builds are provided.

API changes

New APIs:

  • tpsetcallinfo()
  • tpgetcallinfo()
  • Bgetr(), Bgetrv(), CBgetr(), CBgetrv(), Bfindr(), Bfindrv(), CBfindr(), CBfindrv(), Bpresr(), Bpresrv(), CBvgetr(), CBvgetrv(), CBgetallocr(), CBgetallocrv(), Bvnullr(), Bvnullrv(), CBvgetallocr(), CBvgetallocrv() - for quick recursive field access

WARNING: Any UBF buffers saved as blobs shall be completed prior upgrade, due to UBF internal structure changes.

WARNING: Application must be re-built if migrating from 7.5, 7.0 or earlier Enduro/X version.

Fixes

Support #63 - Network protocol document
Support #265 - xatmi.h TPEVCTL and TPSVCINFO service name length fixes
Support #753 - Restore SIGCHLD/SIGHUP/SIGTERM/SIGINT handlers to default after ndrxd/cpmsrv forks
Support #752 - mkfldhdr allow duplicate field IDs
Bug #701 - System-V switching server rqaddr requires full restart
Feature #211 - Write a document for Migration from Tuxedo to Enduro/X
Support #753 - Restore SIGCHLD/SIGHUP/SIGTERM/SIGINT handlers to default after ndrxd/cpmsrv forks
Support #752 - mkfldhdr allow duplicate field IDs
Feature #226 - Recursive UBF field support in UBF
Bug #601 - Bprint() shall escape BFLD_CHAR fields
Feature #518 - Add support for tpgetcallinfo() / tpsetcallinfo()
Support #622 - Baddfast() shall not allow to add bfldid lesser then previously added.
Feature #517 - New data types: PTR , FML32 and VIEW32
Support #599 - Parallel build support - issue with viewc
Support #554 - Bcmp / Fcmp32 shall return -2 on error
Bug #555 - Bextread / ud equal (=) operator might use corrupted data
Support #759 - ndrxd shall unlink local died local service queue, regardless of shared network service available or not
Bug #639 - ndebug.h api consider const char * to use for NDRX_LOG, etc. So that C++ would bark about warning: ISO C++ forbids converting...
Support #267 - Update getting started doc to use common configuration with xadmin provision
Bug #756 - tpcall sequence number may duplicate
Bug #755 - Request file logging tplogsetreqfile() may close stderr FILE desciptor, if one was used
Support #758 - Updated UID generatione algorythm
Support #761 - ndrxd reduce log levels

Release availability

See https://www.mavimax.com/downloads

7.5.36 Patch release

Added by Editor about 2 years ago

Fixes

Support #742 - For consistency, tmqueue default queue workers shall be set to 1 instead of 2
Bug #745 - XATMI server startup hangs, in case if tpsvrthrinit() callback returns -1
Bug #747 - debug.conf threaded=y may produce invalid file names
Support #748 - Fix for CVE-2021-41556
Bug #749 - TPGOTSIG not reported, instead error TPEBADDESC is returned
Bug #750 - Incorrect XA switch is used for IBM DB2

Release availability

See https://www.mavimax.com/downloads

7.5.34 Patch release

Added by Editor over 2 years ago

Fixes

Feature #447 - Implement: tpgblktime(), tpsblktime()
Bug #602 - TMQ invalid prepare files shall be dropped (i.e if size is bellow the must have size)
Bug #624 - SystemV mode Enduor/X core dump
Support #634 - Review global transaction abort rules when particpated server fails
Bug #666 - UBF Carray convert to string, even if carray contains 0x00, the 0x00 is not being added to output string, but converted to maximum carray len, with random string bytes starting from 0x00 byte pos
Support #667 - tmqueue keep in progress (uncommitted) message status after the tmqueue restart
Support #671 - If calling server in transaction mode, the callers transaction shall be automatically suspend
Support #673 - stderr logrotate for xatmi servers
Bug #675 - If autotran setting for service is set to N, but defaults was set to Y, then service still gets the Y setting (enabled autotrans)
Support #677 - tmsrv two phase commit state machine review
Feature #699 - errorq setting for tmqueue
Support #703 - tmsrv corrupted file housekeeping
Bug #704 - tpbridge in protocol mode (-f) cannot handle UBF messages larger than 32K bytes
Feature #709 - Tool for orphaned transaction rollback
Feature #714 - tmqueue internal transaction accouting
Feature #715 - ndrxdebug.conf threaded mode new setting for mutex locking
Feature #717 - corrid compatibility for tmqeueue
Bug #719 - tpalloc/tprealloc/tpfree race condition issue in highly multi-threaded environment
Support #721 - tmqueue QoS support forwarder message distribution
Bug #725 - tmqueue might deadlock when performing tpenqueue() or tpdequeue() in global transaction
Feature #726 - tmqueue optimization - forwarder thread wakeup in case if sleeping and having enqueued forwardable msg
Bug #730 - tmqueue / forward transaction/XATMI call timeout
Support #729 - Reduce error logging for read only transactions
Bug #734 - Transaction Processing: Read only committed transaction can corrupt the commit flow
Support #737 - XA resource reconnect engine shall be improved - support for tmsrv reconnects

Release availability

See https://www.mavimax.com/downloads

Enduro/X 7.5 Release

Added by Editor almost 3 years ago

Overview

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.

With this release Data Dependent Routing (DDR) support has been introduced. With DDR service call priority handling is added (only for Linux and FreeBSD), as well auto-transactions are added for XATMI services. See ndrxconfig.xml(5) manage for configuration details.

This version introduces new framework - Latent Command Frameworks - which allows to publish certain commands in shared memory and Enduro/X libraries processes these commands at debug points (which are in many places in Enduro/X). The published command checking is done very efficiency and does not introduce any overhead. With help of these commands now in the real-time logging configuration for processes can be changed and also loss-less logrotate can be performed. Framework allows for developers to publish custom commands to processes via plugin interface and such new API commands as: ndrx_lcf_func_add(), ndrx_lcf_xadmin_add(). With this LCF framework new shared memory segment is open by Enduro/X at startup. After the shutdown the shared memory segment is kept open (but all command data is reset). To fully remove all shared memory segments, use xadmin down -y command.

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.

With this release, new endurox-connect version 2.5.x is released, which includes Distributed Transaction orchestration API over the web services. endurox-connect v2.5.x is not compatible with earlier Enduro/X versions.

API changes

  • 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

ABI changes

  • 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 Enduro/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.
  • If programs were using Enduro/X logging framework via ndebug.h provided macros, applications needs to be re-built. This also applies to any modules which were using endurox-go.

Fixes

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
Support #657 - System-V mode service semaphore locking algorithm review
Feature #416 - exbench Enduro/X benchmark tool experimental release
Feature #286 - async logger and latent command framwork (LCF)
Bug #608 - xadmin cli failures
Support #633 - Bboolev with fields longer than 511 chars might get invalid results
Feature #655 - Static analysis of the source
Feature #401 - DDR for services
Support #611 - Excompat cleanup, leave only used fields
Feature #594 - Add support for TPEXIT flag
Feature #613 - ndrxconfig.xml shall allow no-entities - flatten the XML
Support #623 - Bridge clock adjustment improvements
Feature #598 - svqids and svsemids shall work in similar way as shms. Added headers for shms command

Release availability

See https://www.mavimax.com/downloads

1 2 3 (1-10/27)

Also available in: Atom