Esempio n. 1
0
        private static int StartSilo(string[] args)
        {
            // define the cluster configuration
            var config = new ClusterConfiguration();

            config.LoadFromFile("OrleansConfiguration.dev.xml");
            config.UseStartupType <Startup>();

            hostWrapper = new OrleansHostWrapper(config, args);
            return(hostWrapper.Run());
        }
Esempio n. 2
0
        private static void AdjustClusterConfiguration(ClusterConfiguration config)
        {
            var settings = new Dictionary <string, string>();

            // get initial settings from configs
            ProviderSettings.WriteProperties(settings);
            ProviderConfig.WriteProperties(settings);
            BalancerConfig.WriterProperties(settings);
            // register stream provider
            config.Globals.RegisterStreamProvider <MemoryStreamProvider>(StreamProviderName, settings);
            config.Globals.RegisterStorageProvider <MemoryStorage>("PubSubStore");
            config.UseStartupType <TestStartup>();
        }
Esempio n. 3
0
        static void RunSilo(int number)
        {
            var config = new ClusterConfiguration();

            config.LoadFromFile($"../../OrleansConfiguration{number}.xml");
            config.UseStartupType <Startup>();
            config.Globals.DeploymentId = "Silo";
            var silo = new SiloHost($"Silo {number}", config);

            silo.InitializeOrleansSilo();
            silo.StartOrleansSilo();
            silos.Add(silo);
            Console.WriteLine($"Silo {number} is ready.");
        }
Esempio n. 4
0
        internal ClusterActorSystem(ClusterConfiguration configuration, Action <IServiceCollection> di, ActorInvocationPipeline pipeline, IActorRefInvoker invoker)
            : base(invoker)
        {
            this.di  = di;
            Pipeline = pipeline;

            current = this;
            configuration.UseStartupType <Startup>();

            using (Trace.Execution("Orleans silo initialization"))
            {
                Host = new SiloHost(Dns.GetHostName(), configuration);
                Host.LoadOrleansConfig();
                Host.InitializeOrleansSilo();
            }

            Silo = Host.GetSilo();
            Initialize(Silo.GetServiceProvider());
        }
Esempio n. 5
0
        public override ClusterConfiguration Build()
        {
            var rvalue = new ClusterConfiguration();

            DirectoryInfo dir  = new DirectoryInfo(_configurationFileDir);
            var           file = dir.GetFiles(_configurationFileName)?.FirstOrDefault();

            if (file != null)
            {
                rvalue.LoadFromFile(file.FullName);
            }
            rvalue.UseStartupType <ClusterStartup>();
            rvalue.Globals.ServiceId                        = _serviceId;
            rvalue.Globals.DeploymentId                     = _serviceName.ToString().Replace("fabric:/", "").Replace('/', '-').Replace('.', '-');
            rvalue.Globals.ClusterId                        = _clusterId;
            rvalue.Globals.DataConnectionString             = _defaultConnectionString;
            rvalue.Globals.ReminderServiceType              = ReminderServiceProviderType.AzureTable;
            rvalue.Globals.DataConnectionStringForReminders = _defaultConnectionString;

            return(rvalue);
        }
Esempio n. 6
0
 public static void ConfigureCustomQueueBalancer(Dictionary <string, string> streamProviderSettings, ClusterConfiguration config)
 {
     CustomPersistentProviderConfig.WriteProperties(streamProviderSettings);
     config.UseStartupType <TestStartup>();
 }
Esempio n. 7
0
        static int Main(string[] args)
        {
            string environment = Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Development";
            var    builder     = new ConfigurationBuilder()
                                 .SetBasePath(Directory.GetCurrentDirectory())
                                 .AddInMemoryCollection(new Dictionary <string, string> // add default settings, that will be overridden by commandline
            {
                { "Id", "OrleansHost" },
                { "Version", "1.0.0" },
                { "DeploymentId", "testdeploymentid" },
            })
                                 .AddCommandLine(args)
                                 .AddJsonFile($"appconfig.json", optional: true)
                                 .AddJsonFile($"appconfig.{environment}.json", optional: true)
                                 .AddEnvironmentVariables("ASPNETCORE_"); // The CloudService will pass settings (such as) the connectionstring through environment variables

            if ("Development".Equals(environment) && builder.GetFileProvider().GetFileInfo("OrleansHost.csproj").Exists)
            {
                // For more details on using the user secret store see http://go.microsoft.com/fwlink/?LinkID=532709
                builder.AddUserSecrets <Program>();
            }

            var config = builder.Build();

            loggerFactory.AddConsole(config.GetSection("Logging"));
            loggerFactory.AddDebug();
            var logger = loggerFactory.CreateLogger <Program>();

            ClusterConfiguration clusterConfig = ClusterConfiguration.LocalhostPrimarySilo();

            clusterConfig.Globals.DeploymentId         = config["Id"];
            clusterConfig.Globals.DataConnectionString = config.GetConnectionString("DataConnectionString");
            clusterConfig.AddMemoryStorageProvider("Default");
            clusterConfig.AddMemoryStorageProvider("PubSubStore");
            clusterConfig.AddSimpleMessageStreamProvider("Default");
            clusterConfig.Defaults.DefaultTraceLevel = Orleans.Runtime.Severity.Warning;
            clusterConfig.Defaults.TraceFileName     = "";
            clusterConfig.UseStartupType <Startup>();

            var siloHost = new SiloHost(config["Id"], clusterConfig);

            try
            {
                siloHost.InitializeOrleansSilo();
                bool ok = siloHost.StartOrleansSilo(catchExceptions: false);

                if (!ok)
                {
                    logger.LogError(string.Format($"Failed to start Orleans silo '{siloHost.Name}' as a {siloHost.Type} node."));
                    return(1);
                }
            }
            catch (Exception exc)
            {
                siloHost.ReportStartupError(exc);
                return(2);
            }

            Console.WriteLine("OrleansHost is running. Press [Ctrl]-C to stop...");
            siloHost.WaitForOrleansSiloShutdown();
            // logger.LogInformation(string.Format($"Orleans silo '{siloHost.Name}' shutdown. Press [Enter]"));
            // Console.ReadLine();
            return(0);
        }