Exemplo n.º 1
0
 public void GetInheritableSettings(string keyName, CommonSettings settings, CommonSettings defaultSettings)
 {
     using (RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(keyName))
     {
         settings.InstanceProcessName                         = RegUtils.GetProperty <string>(registryKey, "InstanceProcessName", defaultSettings.InstanceProcessName);
         settings.TruncationLimit                             = RegUtils.GetProperty <int>(registryKey, "TruncationLimit", defaultSettings.TruncationLimit);
         settings.TruncationPaddingLength                     = RegUtils.GetProperty <int>(registryKey, "TruncationPaddingLength", defaultSettings.TruncationPaddingLength);
         settings.DurationToWaitBeforeRestart                 = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "DurationToWaitBeforeRestartInMSec", defaultSettings.DurationToWaitBeforeRestart);
         settings.AccessEndpointPortNumber                    = RegUtils.GetProperty <int>(registryKey, "AccessEndpointPortNumber", defaultSettings.AccessEndpointPortNumber);
         settings.AccessEndpointProtocolName                  = RegUtils.GetProperty <string>(registryKey, "AccessEndpointProtocolName", defaultSettings.AccessEndpointProtocolName);
         settings.InstanceEndpointPortNumber                  = RegUtils.GetProperty <int>(registryKey, "InstanceEndpointPortNumber", defaultSettings.InstanceEndpointPortNumber);
         settings.InstanceEndpointProtocolName                = RegUtils.GetProperty <string>(registryKey, "InstanceEndpointProtocolName", defaultSettings.InstanceEndpointProtocolName);
         settings.IsAllowDynamicReconfig                      = RegUtils.GetBoolProperty(registryKey, "IsAllowDynamicReconfig", defaultSettings.IsAllowDynamicReconfig);
         settings.IsAppendOnlyMembership                      = RegUtils.GetBoolProperty(registryKey, "IsAppendOnlyMembership", defaultSettings.IsAppendOnlyMembership);
         settings.IsKillInstanceProcessWhenParentDies         = RegUtils.GetBoolProperty(registryKey, "IsKillInstanceProcessWhenParentDies", defaultSettings.IsKillInstanceProcessWhenParentDies);
         settings.StoreAccessWcfTimeout                       = RegUtils.GetWcfTimeoutProperty(registryKey, "StoreAccessWcfTimeout", defaultSettings.StoreAccessWcfTimeout);
         settings.StoreAccessHttpTimeoutInMSec                = RegUtils.GetProperty <int>(registryKey, "StoreAccessHttpTimeoutInMSec", defaultSettings.StoreAccessHttpTimeoutInMSec);
         settings.StoreInstanceWcfTimeout                     = RegUtils.GetWcfTimeoutProperty(registryKey, "StoreInstanceWcfTimeout", defaultSettings.StoreInstanceWcfTimeout);
         settings.TruncationPeriodicCheckInterval             = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "TruncationPeriodicCheckIntervalInMSec", defaultSettings.TruncationPeriodicCheckInterval);
         settings.InstanceHealthCheckPeriodicInterval         = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "InstanceHealthCheckPeriodicIntervalInMSec", defaultSettings.InstanceHealthCheckPeriodicInterval);
         settings.StateMachineStopTimeout                     = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "StateMachineStopTimeoutInMSec", defaultSettings.StateMachineStopTimeout);
         settings.LeaderPromotionTimeout                      = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "LeaderPromotionTimeoutInMSec", defaultSettings.LeaderPromotionTimeout);
         settings.PaxosCommandExecutionTimeout                = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "PaxosCommandExecutionTimeoutInMSec", defaultSettings.PaxosCommandExecutionTimeout);
         settings.GroupHealthCheckDuration                    = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "GroupHealthCheckDurationInMSec", defaultSettings.GroupHealthCheckDuration);
         settings.GroupHealthCheckAggressiveDuration          = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "GroupHealthCheckAggressiveDurationInMSec", defaultSettings.GroupHealthCheckAggressiveDuration);
         settings.GroupStatusWaitTimeout                      = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "GroupStatusWaitTimeoutInMSec", defaultSettings.GroupStatusWaitTimeout);
         settings.MemberReconfigureTimeout                    = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "MemberReconfigureTimeoutInMSec", defaultSettings.MemberReconfigureTimeout);
         settings.PaxosUpdateTimeout                          = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "PaxosUpdateTimeoutInMSec", defaultSettings.PaxosUpdateTimeout);
         settings.SnapshotUpdateInterval                      = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "SnapshotUpdateIntervalInMSec", defaultSettings.SnapshotUpdateInterval);
         settings.PeriodicExceptionLoggingDuration            = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "PeriodicExceptionLoggingDurationInMSec", defaultSettings.PeriodicExceptionLoggingDuration);
         settings.PeriodicTimeoutLoggingDuration              = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "PeriodicTimeoutLoggingDurationInMSec", defaultSettings.PeriodicTimeoutLoggingDuration);
         settings.ServiceHostCloseTimeout                     = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "ServiceHostCloseTimeoutInMSec", defaultSettings.ServiceHostCloseTimeout);
         settings.MaxAllowedLagToCatchup                      = RegUtils.GetProperty <int>(registryKey, "MaxAllowedLagToCatchup", defaultSettings.MaxAllowedLagToCatchup);
         settings.DefaultSnapshotFileName                     = RegUtils.GetProperty <string>(registryKey, "DefaultSnapshotFileName", defaultSettings.DefaultSnapshotFileName);
         settings.MaxEntriesToKeep                            = RegUtils.GetProperty <int>(registryKey, "MaxEntriesToKeep", defaultSettings.MaxEntriesToKeep);
         settings.MaximumAllowedInstanceNumberLag             = RegUtils.GetProperty <int>(registryKey, "MaximumAllowedInstanceNumberLag", defaultSettings.MaximumAllowedInstanceNumberLag);
         settings.DefaultHealthCheckRequiredNodePercent       = RegUtils.GetProperty <int>(registryKey, "DefaultHealthCheckRequiredNodePercent", defaultSettings.DefaultHealthCheckRequiredNodePercent);
         settings.AdditionalLogOptions                        = (LogOptions)RegUtils.GetProperty <int>(registryKey, "AdditionalLogOptions", defaultSettings.AdditionalLogOptionsAsInt);
         settings.InstanceStartSilenceDuration                = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "InstanceStartSilenceDurationInMSec", defaultSettings.InstanceStartSilenceDuration);
         settings.InstanceStartHoldupDurationMaxAllowedStarts = RegUtils.GetProperty <int>(registryKey, "InstanceStartHoldupDurationMaxAllowedStarts", defaultSettings.InstanceStartHoldupDurationMaxAllowedStarts);
         settings.InstanceStartHoldUpDuration                 = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "InstanceStartHoldUpDurationInMSec", defaultSettings.InstanceStartHoldUpDuration);
         settings.InstanceMemoryCommitSizeLimitInMb           = RegUtils.GetProperty <int>(registryKey, "InstanceMemoryCommitSizeLimitInMb", defaultSettings.InstanceMemoryCommitSizeLimitInMb);
         settings.IsUseHttpTransportForInstanceCommunication  = RegUtils.GetBoolProperty(registryKey, "IsUseHttpTransportForInstanceCommunication", defaultSettings.IsUseHttpTransportForInstanceCommunication);
         settings.IsUseHttpTransportForClientCommunication    = RegUtils.GetBoolProperty(registryKey, "IsUseHttpTransportForClientCommunication", defaultSettings.IsUseHttpTransportForClientCommunication);
         settings.IsUseBinarySerializerForClientCommunication = RegUtils.GetBoolProperty(registryKey, "IsUseBinarySerializerForClientCommunication", defaultSettings.IsUseBinarySerializerForClientCommunication);
         settings.IsUseEncryption                             = RegUtils.GetBoolProperty(registryKey, "IsUseEncryption", defaultSettings.IsUseEncryption);
         settings.StartupDelay = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "StartupDelayInMSec", defaultSettings.StartupDelay);
     }
 }
Exemplo n.º 2
0
        public InstanceManagerConfig GetManagerConfig()
        {
            InstanceManagerConfig instanceManagerConfig = new InstanceManagerConfig();

            instanceManagerConfig.NameResolver   = this;
            instanceManagerConfig.Self           = this.Self;
            instanceManagerConfig.ComponentName  = this.componentName;
            instanceManagerConfig.IsZeroboxMode  = this.isZeroboxMode;
            instanceManagerConfig.NetworkAddress = instanceManagerConfig.NameResolver.ResolveNameBestEffort(this.Self);
            instanceManagerConfig.DefaultTimeout = new WcfTimeout();
            using (RegistryKey registryKey = this.OpenManagerConfigKey(false))
            {
                instanceManagerConfig.BaseStorageDir          = Environment.ExpandEnvironmentVariables(RegUtils.GetProperty <string>(registryKey, "BaseStorageDir", this.DefaultStorageBaseDir));
                instanceManagerConfig.InstanceMonitorInterval = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "InstanceMonitorIntervalInMSec", TimeSpan.FromSeconds(15.0));
                instanceManagerConfig.EndpointPortNumber      = RegUtils.GetProperty <int>(registryKey, "EndpointPortNumber", 808);
                instanceManagerConfig.EndpointProtocolName    = RegUtils.GetProperty <string>(registryKey, "EndpointProtocolName", "net.tcp");
                instanceManagerConfig.DefaultTimeout          = RegUtils.GetWcfTimeoutProperty(registryKey, "DefaultTimeout", new WcfTimeout());
                instanceManagerConfig.ManagerStopTimeout      = RegUtils.GetLongPropertyAsTimeSpan(registryKey, "ManagerStopTimeoutInMSec", TimeSpan.FromMinutes(1.0));
                CommonSettings defaultSettings = this.CreateDefaultCommonSettings(instanceManagerConfig.EndpointPortNumber, instanceManagerConfig.EndpointProtocolName, instanceManagerConfig.DefaultTimeout);
                instanceManagerConfig.Settings = new CommonSettings();
                this.GetInheritableSettings(this.GetManagerSettingsKeyName(), instanceManagerConfig.Settings, defaultSettings);
            }
            return(instanceManagerConfig);
        }