TRANSACTIONTIMEOUT
Valid For
Replicat
Description
Use the TRANSACTIONTIMEOUT
parameter to prevent an uncommitted Replicat target transaction from holding locks on target tables and consuming database resources unnecessarily. You can change the value of this parameter so that Replicat can work within existing application timeouts and other database requirements on the target.
TRANSACTIONTIMEOUT
limits the amount of time that Replicat will hold a target transaction open if it has not received the end-of-transaction record for the last source transaction in that transaction. By default, Replicat groups multiple source transactions into one target transaction to improve performance, but it will not commit a partial source transaction and will wait indefinitely for that last record. The Replicat parameter GROUPTRANSOPS
controls the minimum size of a grouped target transaction. The range is 1–604800.
The following events could last long enough to trigger TRANSACTIONTIMEOUT
:
-
Network problems prevent trail data from being delivered to the target system.
-
Running out of disk space on any system, preventing trail data from being written.
-
Collector abends (a rare event).
-
Extract abends or is terminated in the middle of writing records for a transaction.
-
An Extract data pump abends or is terminated.
-
There is a source system failure, such as a power outage or system crash.
How TRANSACTIONTIMEOUT Works
During normal operations, Replicat remembers the position in the trail of the beginning of the first source transaction in the current target transaction, in case the transaction must be abended and retried. When TRANSACTIONTIMEOUT
is enabled, Replicat also saves the position of the first record of the current source transaction and will use that position as the logical end-of-file (EOF) if TRANSACTIONTIMEOUT
is triggered.
When triggered, TRANSACTIONTIMEOUT
does the following:
-
Aborts the current target transaction
-
Repositions to the beginning of the first source transaction in the aborted target transaction.
-
Processes all of the trail records up to the logical end-of-file position (the beginning of the last, incomplete source transaction).
-
Commits the transaction at logical EOF point.
-
Waits for new trail data before processing any more trail records.
TRANSACTIONTIMEOUT
can be triggered multiple times for the same source transaction, depending on the nature of the problem that is causing the trail data to arrive slowly enough to trigger TRANSACTIONTIMEOUT
.
Detecting a TRANSACTIONTIMEOUT Condition
To determine whether or not Replicat is waiting for the rest of a source transaction when TRANSACTIONTIMEOUT
is enabled, issue the SEND REPLICAT
command with the STATUS
option. The following statuses indicate this condition:
Performing transaction timeout recovery Waiting for data at logical EOF after transaction timeout recovery
Default
Disabled
Syntax
TRANSACTIONTIMEOUT n units
-
n
-
An integer that specifies the wait interval. Valid values are from one second to one week (seven days). This value should be greater than that set with the
EOFDELAY
parameter in both the primary Extract and any associated data pumps. -
units
-
One of the following:
S, SEC, SECS, SECOND, SECONDS, MIN, MINS, MINUTE, MINUTES, HOUR, HOURS, DAY, DAYS
.
Example
TRANSACTIONTIMEOUT 5 S