CommonEnterState() приватный Метод

private CommonEnterState ( InternalTransaction tx ) : void
tx InternalTransaction
Результат void
Пример #1
0
        internal OletxTransaction PSPEPromote(InternalTransaction tx)
        {
            TransactionState state = tx.State;

            base.CommonEnterState(tx);
            OletxTransaction oletxTransactionFromTransmitterPropigationToken = null;

            try
            {
                byte[] propagationToken = tx.promoter.Promote();
                if (propagationToken == null)
                {
                    throw TransactionException.CreateInvalidOperationException(System.Transactions.SR.GetString("TraceSourceLtm"), System.Transactions.SR.GetString("PromotedReturnedInvalidValue"), null);
                }
                try
                {
                    oletxTransactionFromTransmitterPropigationToken = TransactionInterop.GetOletxTransactionFromTransmitterPropigationToken(propagationToken);
                }
                catch (ArgumentException exception)
                {
                    throw TransactionException.CreateInvalidOperationException(System.Transactions.SR.GetString("TraceSourceLtm"), System.Transactions.SR.GetString("PromotedReturnedInvalidValue"), exception);
                }
                if (TransactionManager.FindPromotedTransaction(oletxTransactionFromTransmitterPropigationToken.Identifier) != null)
                {
                    oletxTransactionFromTransmitterPropigationToken.Dispose();
                    throw TransactionException.CreateInvalidOperationException(System.Transactions.SR.GetString("TraceSourceLtm"), System.Transactions.SR.GetString("PromotedTransactionExists"), null);
                }
            }
            finally
            {
                state.CommonEnterState(tx);
            }
            return(oletxTransactionFromTransmitterPropigationToken);
        }