Ejemplo n.º 1
0
            public override bool Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
            {
                NativeActivityTransactionContext transactionContext = null;

                try
                {
                    transactionContext = new NativeActivityTransactionContext(this.ActivityInstance, executor, bookmarkManager, this.SerializedWaiter.Handle);
                    this.SerializedWaiter.CallbackWrapper.Invoke(transactionContext, this.SerializedWaiter.State);
                }
                catch (Exception e)
                {
                    if (Fx.IsFatal(e))
                    {
                        throw;
                    }

                    this.ExceptionToPropagate = e;
                }
                finally
                {
                    if (transactionContext != null)
                    {
                        transactionContext.Dispose();
                    }
                }

                return(true);
            }
        private void RequireContextCallback(NativeActivityTransactionContext transactionContext, object state)
        {
            ReceiveMessageState state2 = state as ReceiveMessageState;

            transactionContext.SetRuntimeTransaction(state2.CurrentTransaction);
            NativeActivityContext executionContext = transactionContext;

            this.ServerScheduleOnReceivedMessage(executionContext, state2.Instance);
        }
Ejemplo n.º 3
0
        private void OnContextAcquired(NativeActivityTransactionContext context, object state)
        {
            TimeSpan           span    = this.Timeout.Get(context);
            TransactionOptions options = new TransactionOptions {
                IsolationLevel = this.IsolationLevel,
                Timeout        = span
            };

            context.SetRuntimeTransaction(new CommittableTransaction(options));
            this.ScheduleBody(context);
        }
Ejemplo n.º 4
0
        void OnContextAcquired(NativeActivityTransactionContext context, object state)
        {
            Fx.Assert(context != null, "ActivityTransactionContext was null");

            TimeSpan           transactionTimeout = this.Timeout.Get(context);
            TransactionOptions transactionOptions = new TransactionOptions()
            {
                IsolationLevel = this.IsolationLevel,
                Timeout        = transactionTimeout
            };

            context.SetRuntimeTransaction(new CommittableTransaction(transactionOptions));

            ScheduleBody(context);
        }