General tab
This tab contains these parameters:
-
Select this to enable/disable rollback procs if an error happens in the DTC thread. By default, this is selected.
When a message is received at Stop State, DTC initiates these operations:
- The message is in an error state:
- If transactions are enabled, then the Rollback TPS is called in reverse order on each state as entered in this transaction.
- Transaction information is deleted from the DTC.
- The message is then sent to the error database.
- The message is not in an error state:
- The message is passed to the Action TPS with the transaction ID and DTC Mode “Data”.
- The Action TPS is run. This returns a Transition Code.
- If the Transition Code is an error, then the error state steps are
followed.
Otherwise, the transaction info is deleted.
- The message is in an error state:
-
Max Steps
The initial value is 1000. This must be defined. Choose a number that is large enough for your logic to run. The goal is to limit the possibility of an infinite loop in DTC processing.
-
XID Proc
The DTC protocol automatically generates the XID. When it is the scope of the DTC, the XID is used as the unique identifier for the message. You can override the default XID that is generated by implementing an XID proc. This is the same as a trxid proc. You should let the DTC assign the XID.
- Timeout
This configuration is used to check the messages in the staging database. If a message stays in the staging database longer than the time-out value, then DTC rolls it back. The default value is 30. The DTC timeout value is limited to 8-bit numbers (0-99999999).
In previous versions, DTC lacked a time-out mechanism, so that a transaction could stop responding if the waited reply never came. The DTC protocol thread cannot deliver messages across processes. Only xlate threads can do that. For DTC threads, sending a message to another process creates a panic. The DTC timer rolls back messages that are stored in the staging database for a long time.
In some situations, certain states might occur in a loop. Because of errors, the loop could run continually. To detect this situation, the total steps in the state machine are no more than the defined max steps.
select max(step) from stage where datatype = ‘DTC’ and keyspace = XID
You cannot change or alter the steps in the DTC table.