Back to home page

Enduro/X

 
 

    


0001 SYNOPSIS
0002 --------
0003 *tmrecovercl*
0004 
0005 *tmrecoversv* ['SERVER OPTIONS']
0006 
0007 
0008 DESCRIPTION
0009 -----------
0010 
0011 Transaction manager recovery processes. These tools are used to find and rollback
0012 in the Enduro/X application prepared orphan transactions. *tmrecovercl*
0013 is client version, which performs single system scan. *tmrecoversv* is server process 
0014 which shall be put in the *ndrxconfig.xml(5)* at the end of the server startup
0015 sequence, so that at each boot housekeeping on transactions is performed. 
0016 *tmrecoversv* can be configure to perform periodic scans for orphan prepared 
0017 transactions.
0018 
0019 The algorithm of the tools is following:
0020 
0021 - Query all '@TM-X' services to return xa_recover() list of raw XIDs.
0022 
0023 - Tool detects the XID format which belongs to Enduro/X. In the XID format 
0024 originating Enduro/X cluster node id, resource manager id, and server id is encoded.
0025 
0026 - Tool requests originating *tmsrv(8)* to check for base XID (with out current RMid and 
0027 current branch id) existence.
0028 
0029 - If transaction status is *TPEMATCH* (transaction not found in the tmsrv logs),
0030 current '@TM-X' service is requested to rollback raw branch XID.
0031 
0032 - For reducing the overhead of transaction checking, if there are many transaction
0033 branches, base XID results from tmsrv are cached.
0034 
0035 It is safe to run the tools at the any time, as during the normal transaction
0036 operations logs exist in corresponding tmsrv instances, and thus no rollback
0037 is performed.
0038 
0039 If recovery run is done during the transaction processing, it might be possible,
0040 that *tmrecovercl*/*tmrecoversv* debug logs might contain false messages
0041 that orphan rollbacks has happened. This is due to race condition between
0042 recovery tool and any in progress transaction which is normally committed or
0043 aborted i.e. at the momment when recover tool asked resources for transaction
0044 listings transaction did exist, but at momment when it asked for status to *tmsrv*
0045 for transaction status, the transaction was already completed, thus logs was
0046 removed.
0047 
0048 SERVER OPTIONS
0049 --------------
0050 [*-s* 'SCAN_TIME']::
0051 Number of seconds after which to start the scan for the orphan transactions.
0052 The default value is *30*. Normally *tmrecoversv* shall be put at the end of
0053 application startup sequence and this scan time gives a system time-frame for
0054 any bridges to connect, thus allowing to collect orphans from cluster nodes.
0055 
0056 [*-p*]::
0057 Perform scans periodically. By default *tmrecoversv* performs scan only once.
0058 
0059 [*-i*]::
0060 Perform first scan during the boot time of the process. The default mode
0061 is to perform first scan after the *-s* specified scan time (parameter is off).
0062 If *-i* is specified, and *-p* is not, then condition renders parameter
0063 *-s* unused, as no deferred operations will be done.
0064 
0065 EXIT STATUS
0066 -----------
0067 *0*::
0068 Success
0069 
0070 *1*::
0071 Failure
0072 
0073 BUGS
0074 ----
0075 Report bugs to support@mavimax.com
0076 
0077 SEE ALSO
0078 --------
0079 *ndrxconfig.xml(5)* *tmsrv(8)*
0080 
0081 COPYING
0082 -------
0083 (C) Mavimax, Ltd
0084