public void LinkAsRunAway(DefaultForkedTransaction transaction) {
     try
     {
         Context ctx = GetContext();
         if (ctx != null)
         {
             _mValidator.LinkAsRunAway(transaction);
         }
     }
     catch (Exception ex)
     {
         Cat.lastException = ex;
     }
 }
            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 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();
            }

        }