internal InternalTransaction(Transaction outcomeSource, DistributedTransaction distributedTx)
{
_promotedTransaction = distributedTx;
_absoluteTimeout = long.MaxValue;
// Store the initial creater as it will be the source of outcome events
_outcomeSource = outcomeSource;
// Initialize the hash
_transactionHash = TransactionManager.TransactionTable.Add(this);
// Start the transaction off as active
TransactionState.TransactionStateNonCommittablePromoted.EnterState(this);
// Until otherwise noted this transaction uses normal promotion.
_promoteState = TransactionState.TransactionStateNonCommittablePromoted;
}