Exemplo n.º 1
0
        public IForkedTransaction NewForkedTransaction(string type, string name)
        {
            // this enable CAT client logging cat message without explicit setup
            if (!_mManager.HasContext())
            {
                _mManager.Setup();
            }

            if (_mManager.CatEnabled)
            {
                IMessageTree tree = _mManager.ThreadLocalMessageTree;

                if (tree.MessageId == null)
                {
                    tree.MessageId = CreateMessageId();
                }

                IForkedTransaction transaction = new DefaultForkedTransaction(type, name, _mManager);

                if (_mManager is DefaultMessageManager)
                {
                    ((DefaultMessageManager)_mManager).LinkAsRunAway(transaction);
                }
                _mManager.Start(transaction, true);
                return(transaction);
            }
            else
            {
                return(NullMessage.FORKEDTRANSACTION);
            }
        }
            public void LinkAsRunAway(DefaultForkedTransaction transaction)
            {
                DefaultEvent evt = new DefaultEvent("RemoteCall", "RunAway");

                evt.AddData(transaction.ForkedMessageId, transaction.Type + ":" + transaction.Name);
                evt.Timestamp = transaction.Timestamp;
                evt.Status    = CatConstants.SUCCESS;
                evt.SetCompleted(true);
                transaction.Standalone = true;

                _mManager.Add(evt);
            }
 public void LinkAsRunAway(DefaultForkedTransaction transaction)
 {
     try
     {
         Context ctx = GetContext();
         if (ctx != null)
         {
             _mValidator.LinkAsRunAway(transaction);
         }
     }
     catch (Exception ex)
     {
         Cat.lastException = ex;
     }
 }
Exemplo n.º 4
0
        public virtual IForkedTransaction NewForkedTransaction(String type, String name)
        {
            if (!_mManager.HasContext())
            {
                _mManager.Setup();
            }

            if (_mManager.CatEnabled)
            {
                DefaultForkedTransaction transaction = new DefaultForkedTransaction(type, name, _mManager);
                if (_mManager is DefaultMessageManager)
                {
                    ((DefaultMessageManager)_mManager).LinkAsRunAway(transaction);
                }
                _mManager.Start(transaction, true);
                return(transaction);
            }
            else
            {
                return(new NullTransaction());
            }
        }