public static void StartNewNode(out string friendlyName)
{
friendlyName = null;
NumberOfNodesToStart++;
if (NumberOfNodesToStart > 0)
{
Logger.DebugWithLineNumber("Start creating node configuration file for node id : " + NumberOfNodesToStart);
var nodeConfig = CreateNodeConfigurationFile(NumberOfNodesToStart);
friendlyName = nodeConfig.Name;
Logger.DebugWithLineNumber("AppDomainNodeTask");
var appDomainNodeTask =
new AppDomainNodeTask(_buildMode,
DirectoryNodeAssemblyLocationFullPath,
nodeConfig,
Settings.Default.NodeAssemblyName);
Logger.DebugWithLineNumber("Start : AppDomainNodeTask.StartTask");
appDomainNodeTask.StartTask(new CancellationTokenSource());
Logger.DebugWithLineNumber("Finished : AppDomainNodeTask.StartTask");
var appDomainUniqueId = appDomainNodeTask.GetAppDomainUniqueId();
AppDomainNodeTasks.AddOrUpdate(appDomainUniqueId,
appDomainNodeTask,
(s, task) => appDomainNodeTask);
Logger.DebugWithLineNumber("Finished creating node configuration file for node : ( id, config file ) : ( " +
NumberOfNodesToStart + ", " + nodeConfig.FullName + " )");
}
}