unsigned int SQueueParameters::ReadRunTimeoutPrecision(const IRegistry & reg, const string & sname) { return GetIntNoErr("run_timeout_precision", default_run_timeout_precision); }
unsigned int SQueueParameters::ReadNotifLofreqMult(const IRegistry & reg, const string & sname) { unsigned int val = GetIntNoErr("notif_lofreq_mult", default_notif_lofreq_mult); if (val <= 0) val = default_notif_lofreq_mult; return val; }
time_t SQueueParameters::ReadPendingTimeout(const IRegistry & reg, const string & sname) { time_t val = GetIntNoErr("pending_timeout", default_pending_timeout); if (val <= 0) val = default_pending_timeout; return val; }
unsigned int SQueueParameters::ReadNotifHifreqPeriod(const IRegistry & reg, const string & sname) { unsigned int val = GetIntNoErr("notif_hifreq_period", default_notif_hifreq_period); if (val <= 0) val = default_notif_hifreq_period; return val; }
unsigned int SQueueParameters::ReadDumpBufferSize(const IRegistry & reg, const string & sname) { unsigned int val = GetIntNoErr("dump_buffer_size", default_dump_buffer_size); if (val < default_dump_buffer_size) val = default_dump_buffer_size; // Avoid too small buffer else if (val > 10000) val = 10000; // Avoid too large buffer return val; }
void SNSRegistryParameters::Read(const IRegistry & reg, const string & sname, const string & name, unsigned int default_max, unsigned int default_high_mark_percentage, unsigned int default_low_mark_percentage, unsigned int default_high_removal, unsigned int default_low_removal, unsigned int default_dirt_percentage) { string plural; if (name == "affinity") plural = "affinities"; else plural = name + "s"; max_records = GetIntNoErr("max_" + plural, default_max); if (max_records <= 0) max_records = default_max; // GC settings high_mark_percentage = GetIntNoErr(name + "_high_mark_percentage", default_high_mark_percentage); low_mark_percentage = GetIntNoErr(name + "_low_mark_percentage", default_low_mark_percentage); high_removal = GetIntNoErr(name + "_high_removal", default_high_removal); low_removal = GetIntNoErr(name + "_low_removal", default_low_removal); dirt_percentage = GetIntNoErr(name + "dirt_percentage", default_dirt_percentage); x_CheckGarbageCollectorSettings(default_high_mark_percentage, default_low_mark_percentage, default_high_removal, default_low_removal, default_dirt_percentage); }
void SNS_Parameters::Read(const IRegistry& reg, const string& sname) { reinit = GetBoolNoErr("reinit", false); max_connections = GetIntNoErr("max_connections", default_max_connections); max_threads = GetIntNoErr("max_threads", default_max_threads); init_threads = GetIntNoErr("init_threads", default_init_threads); if (init_threads > max_threads) { LOG_POST(Message << Warning << "INI file sets init_threads > max_threads. " "Assume init_threads = max_threads(" << max_threads << ") instead of given " << init_threads); init_threads = max_threads; } port = (unsigned short) GetIntNoErr("port", default_port); use_hostname = GetBoolNoErr("use_hostname", default_use_hostname); network_timeout = GetIntNoErr("network_timeout", default_network_timeout); if (network_timeout == 0) { LOG_POST(Message << Warning << "INI file sets 0 sec. network timeout. Assume " << default_network_timeout << " seconds."); network_timeout = default_network_timeout; } // Logging parameters is_log = GetBoolNoErr("log", default_is_log); log_batch_each_job = GetBoolNoErr("log_batch_each_job", default_log_batch_each_job); log_notification_thread = GetBoolNoErr("log_notification_thread", default_log_notification_thread); log_cleaning_thread = GetBoolNoErr("log_cleaning_thread", default_log_cleaning_thread); log_execution_watcher_thread = GetBoolNoErr("log_execution_watcher_thread", default_log_execution_watcher_thread); log_statistics_thread = GetBoolNoErr("log_statistics_thread", default_log_statistics_thread); // Job deleting parameters del_batch_size = GetIntNoErr("del_batch_size", default_del_batch_size); markdel_batch_size = GetIntNoErr("markdel_batch_size", default_markdel_batch_size); scan_batch_size = GetIntNoErr("scan_batch_size", default_scan_batch_size); purge_timeout = GetDoubleNoErr("purge_timeout", default_purge_timeout); CheckGarbageCollectorSettings(); // Affinity GC settings affinity_high_mark_percentage = GetIntNoErr("affinity_high_mark_percentage", default_affinity_high_mark_percentage); affinity_low_mark_percentage = GetIntNoErr("affinity_low_mark_percentage", default_affinity_low_mark_percentage); affinity_high_removal = GetIntNoErr("affinity_high_removal", default_affinity_high_removal); affinity_low_removal = GetIntNoErr("affinity_low_removal", default_affinity_low_removal); affinity_dirt_percentage = GetIntNoErr("affinity_dirt_percentage", default_affinity_dirt_percentage); CheckAffinityGarbageCollectorSettings(); // Max affinities max_affinities = GetIntNoErr("max_affinities", default_max_affinities); if (max_affinities <= 0) { LOG_POST(Message << Warning << "INI file sets the max number of preferred affinities <= 0." " Assume " << default_max_affinities << " instead."); max_affinities = default_max_affinities; } admin_hosts = reg.GetString(sname, "admin_host", kEmptyStr); admin_client_names = reg.GetString(sname, "admin_client_name", kEmptyStr); return; }
time_t SQueueParameters::ReadBlacklistTime(const IRegistry & reg, const string & sname) { return GetIntNoErr("blacklist_time", default_blacklist_time); }
unsigned int SQueueParameters::ReadFailedRetries(const IRegistry & reg, const string & sname) { return GetIntNoErr("failed_retries", default_failed_retries); }
unsigned int SQueueParameters::ReadTimeout(const IRegistry & reg, const string & sname) { return GetIntNoErr("timeout", default_timeout); }
// A configuration file is always already validated so the reading // must not produce any log output etc. // See ns_util.cpp NS_ValidateConfigFile(...) void SNS_Parameters::Read(const IRegistry & reg) { const string sname = "server"; max_connections = GetIntNoErr("max_connections", default_max_connections); if (max_connections < max_connections_low_limit) max_connections = (max_connections_low_limit + max_connections_high_limit) / 2; else if (max_connections > max_connections_high_limit) max_connections = max_connections_high_limit; max_threads = GetIntNoErr("max_threads", default_max_threads); init_threads = GetIntNoErr("init_threads", default_init_threads); if (init_threads > max_threads) init_threads = max_threads; port = (unsigned short) GetIntNoErr("port", 0); use_hostname = GetBoolNoErr("use_hostname", default_use_hostname); network_timeout = GetIntNoErr("network_timeout", default_network_timeout); if (network_timeout == 0) network_timeout = default_network_timeout; // Logging parameters is_log = GetBoolNoErr("log", default_is_log); log_batch_each_job = GetBoolNoErr("log_batch_each_job", default_log_batch_each_job); log_notification_thread = GetBoolNoErr("log_notification_thread", default_log_notification_thread); log_cleaning_thread = GetBoolNoErr("log_cleaning_thread", default_log_cleaning_thread); log_execution_watcher_thread = GetBoolNoErr("log_execution_watcher_thread", default_log_execution_watcher_thread); log_statistics_thread = GetBoolNoErr("log_statistics_thread", default_log_statistics_thread); // Job deleting parameters del_batch_size = GetIntNoErr("del_batch_size", default_del_batch_size); markdel_batch_size = GetIntNoErr("markdel_batch_size", default_markdel_batch_size); scan_batch_size = GetIntNoErr("scan_batch_size", default_scan_batch_size); purge_timeout = GetDoubleNoErr("purge_timeout", default_purge_timeout); x_CheckJobGarbageCollectorSettings(); stat_interval = GetIntNoErr("stat_interval", default_stat_interval); if (stat_interval < 1) stat_interval = 1; int val = GetIntNoErr("job_counters_interval", default_job_counters_interval); if (val < 0) job_counters_interval = 0; else job_counters_interval = val; affinity_reg.Read(reg, sname, "affinity", default_max_affinities, default_affinity_high_mark_percentage, default_affinity_low_mark_percentage, default_affinity_high_removal, default_affinity_low_removal, default_affinity_dirt_percentage); group_reg.Read(reg, sname, "group", default_max_groups, default_group_high_mark_percentage, default_group_low_mark_percentage, default_group_high_removal, default_group_low_removal, default_group_dirt_percentage); scope_reg.Read(reg, sname, "scope", default_max_scopes, default_scope_high_mark_percentage, default_scope_low_mark_percentage, default_scope_high_removal, default_scope_low_removal, default_scope_dirt_percentage); reserve_dump_space = NS_GetDataSize(reg, "server", "reserve_dump_space", default_reserve_dump_space); wst_cache_size = GetIntNoErr("wst_cache_size", default_wst_cache_size); if (wst_cache_size < 0) wst_cache_size = default_wst_cache_size; max_client_data = GetIntNoErr("max_client_data", default_max_client_data); if (max_client_data <= 0) max_client_data = default_max_client_data; admin_hosts = reg.GetString(sname, "admin_host", kEmptyStr); try { admin_client_names = reg.GetEncryptedString(sname, "admin_client_name", IRegistry::fPlaintextAllowed); } catch (...) { // All the warnings are collected at the time of validating the // configuration file, so here a problem is simply suppressed } state_transition_perf_log_queues = reg.GetString(sname, "state_transition_perf_log_queues", kEmptyStr); state_transition_perf_log_classes = reg.GetString(sname, "state_transition_perf_log_classes", kEmptyStr); #if defined(_DEBUG) && !defined(NDEBUG) ReadErrorEmulatorSection(reg); #endif }