/// <summary>
        /// Notifies this object that an escalation of the delegated transaction has been requested.
        /// </summary>
        /// <returns>
        /// A transmitter/receiver propagation token that marshals a distributed transaction.
        /// </returns>
        /// <seealso cref="TransactionInterop.GetTransactionFromTransmitterPropagationToken(System.Byte[])"/>
        byte[] ITransactionPromoter.Promote()
        {
            try
            {
                m_ctx = new CommittableTransaction();
                m_ctx.EnlistDurable(this.Rmid, this, EnlistmentOptions.None);

                byte[] propagationToken = TransactionInterop.GetTransmitterPropagationToken(m_ctx);

                return propagationToken;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }