예제 #1
0
        protected override void Execute(CodeActivityContext activityContext)
        {
            QueryBase query = Query.Get(activityContext);

            // Single server mode will run on one partition by definition,
            // Graywulf mode has to look at the registry for available machines
            switch (query.ExecutionMode)
            {
            case ExecutionMode.SingleServer:
                query.InitializeQueryObject(null);
                break;

            case ExecutionMode.Graywulf:
                using (Context context = ContextManager.Instance.CreateContext(this, activityContext, ConnectionMode.AutoOpen, TransactionMode.AutoCommit))
                {
                    query.InitializeQueryObject(context);
                    query.CollectTablesForStatistics();
                }
                break;

            default:
                throw new NotImplementedException();
            }
        }