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(); } }