General tab

This tab contains these parameters:

  • Enable Transaction

    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:
      1. If transactions are enabled, then the Rollback TPS is called in reverse order on each state as entered in this transaction.
      2. Transaction information is deleted from the DTC.
      3. The message is then sent to the error database.
    • The message is not in an error state:
      1. The message is passed to the Action TPS with the transaction ID and DTC Mode “Data”.
      2. The Action TPS is run. This returns a Transition Code.
      3. If the Transition Code is an error, then the error state steps are followed.

        Otherwise, the transaction info is deleted.

  • 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.

When a state is entered, it is saved in the staging database. Current count of steps can be found with this query:
select max(step) from stage where datatype = ‘DTC’ and keyspace = XID

You cannot change or alter the steps in the DTC table.