11.29.1 Called Service in Same Transaction as Caller

When a caller in transaction mode calls another service to participate in the current transaction, the following facts apply:

  • tpreturn() and tpforward(), when called by the participating service, place that service’s portion of the transaction in a state from which it can be either aborted or committed by the initiator.
  • The success or failure of the called process affects the current transaction. If any fatal transaction errors are encountered by the participant, the current transaction is marked “abort-only.”
  • Whether or not the tasks performed by a successful participant are applied depends on the fate of the transaction. In other words, if the transaction is aborted, the work of all participants is reversed.
  • The TPNOREPLY flag cannot be used when calling another service to participate in the current transaction.