- #160 Feature Closed High Add feature to XA subsystem so that if tpbegin() fails, then do tpclose/tpopen/tpbegin again
In short, in some customer environments setups, the aggressive firewalls might drop the connection which have been established to database via tpopen(internally xa_open). In those cases if Transaction Manager Server (tmsrv) have been long standing with out activity, the connection might be dropped. Then next incoming request for new transaction might fail with different errors. Thus to address this issue new "NDRX_XA_FLAGS" environment variable have been added. It is tag-value based parameter. Currently new tag "RECON" have been added.
Excerpt from manpage
NDRX_XA_FLAGS=XADMIN_XA_FLAGS Special for XA sub-system. It is semicolon separated tags with values. currently tag RECON is defined. RECON tag defines the number of attempts of xa_close()/xa_open() and doing xa_start() again in case if original xa_start() failed (the ATMI call tpbegin()) - for example firewall have been closed the connection. The format for the tag is: RECON:<comma separated list of error codes e.g. 4,-8,* - any err>:<number of attempts>:<sleep between attempts milli-sec> example: RECON:*:3:100, meaning reconnect on any xa_start error, do the 3x attempts, sleep 100 milliseconds between attempts.
The parameter shall be set in environment file, or Common-Configuration [@global] section.