Skip to content

Master: ecmwf.properties

The Master's ecmwf.properties controls scheduling, database access, public services, operational events and shared infrastructure. This reference includes options read by the implementation even when they are absent from the shipped file.

Other services have separate references: Monitor and Data Mover.

Identity extensions

[AuthenticationExtension] class and [UserDirectoryExtension] class select trusted Master identity providers. A blank authentication class automatically selects the bundled ECMWF TOTP adapter when [TOTP] active=true; otherwise it preserves local WebUser password authentication. A nonblank class selects the configured provider. Set [AuthenticationExtension] required=yes to fail Master startup if no authentication provider is configured; it defaults to no. Provider-specific options belong in the same section. Configuration is read at startup and requires a restart; a configured provider that cannot start fails Master startup. See Identity extensions for installation, lifecycle and authentication precedence.

The optional ECaccess directory extension uses host and port in [UserDirectoryExtension] and requires explicit bounded [RMIClientSocketFactory] connection/read timeouts. It does not provide password/passcode authentication.

[RemoteServiceExtensions] explicitly maps service IDs to provider configuration sections. It defaults to no registrations. See Remote service extensions and the optional ECaccess transfer module.

[InteractiveLoginExtension] class independently enables browser-based Monitor login. It defaults to blank. [InteractiveLoginMapping] maps local WebUser IDs to JSON objects containing the verified external issuer and subject. See OpenID Connect login for the bundled provider, full configuration and account requirements.

File location and configuration layers

The source template is etc/master/conf/ecmwf.properties. RPM installations place it in /usr/local/ecpds/master/conf/ecmwf.properties. The launcher selects the file with the ecmwf.properties JVM property; container mounts can change where its contents are stored.

Use /etc/ecpds/master.cnf or the container/service environment for launcher settings such as addresses, ports, database connection details and secrets. The launcher translates supported variables into the JVM properties referenced by the template. Arbitrary environment variables do not automatically become ecmwf.properties options.

The final directive:

#include "${master.etc}/ecmwf.properties"

loads a local override file from the launcher's master.etc directory if it exists and is readable. Despite the leading #, #include is an active configuration directive, not an ordinary comment. It must start at the beginning of the line. The supplied service layout uses a separate directory for this file, normally /etc/ecpds/master; do not point an include back to the file containing it. An unreadable or missing include produces a warning.

An override contains only the sections and values to change, for example:

[TransferScheduler]
queueSize=80

[StoragePolicy]
enabled=no
interval=1m

Restart the affected service after changing configuration unless a feature's documentation explicitly describes runtime reload support. Many values are cached when classes or services initialize. #reload "Group" permits the configuration loader to reload that group, but does not make every consumer apply a changed value dynamically.

Syntax and defaults

Optional Master-only SNMP location collection uses [PhysicalLocation], [PhysicalLocationSystems], [PhysicalLocationMachine.ID] and [PhysicalLocationProfile.ID]. It is off by default and uses the physical-location tables included in the installation schema. See Physical system locations for target mappings, protected credential files, limits and RMI/display behavior.

Syntax Meaning
[Group] followed by key=value A case-sensitive section and option name.
# text A comment, except recognized directives such as #include, #reload and #property.
${master.data} A JVM system property supplied by the launcher.
${Login[hostName]} Another option in this configuration.
${fully.qualified.Class.method()} A supported static-method substitution used by the templates.
yes / no, true / false Boolean values.
30s, 5m, 24h, 7d Explicit durations for duration-reading options; ISO-8601 durations are also accepted.

Duration units depend on the reader

Options read as durations treat a bare configured number as hours, not milliseconds. Plain integer options may instead use milliseconds, seconds, minutes, bytes or counts. For example, [Monitor] delay=120 means 120 hours, while [SocketConfig] connectTimeOut=30000 means 30 seconds. Duration defaults passed by the Java implementation are milliseconds; the tables below label these separately from configured values.

The catalogue distinguishes code fallback (what a particular reader uses when the option is absent) from shipped value (what the template explicitly sets). They are not necessarily equal. Removing a setting can therefore change behaviour. A dash in the shipped column means it is not assigned in the template. null means that reader supplies no value, not that the option is safe to omit. An empty list and an empty string are shown explicitly.

Context-dependent Java expressions are retained rather than replaced by a guessed constant. Where readers use different fallbacks, they appear on separate rows with links to their source. File-content options interpret the configured value as a path, but their fallback is content. Shipped credentials are not reproduced here.

Entries marked template entry have no direct literal reader in the reviewed sources. They may be consumed through substitutions or retained for compatibility; their presence alone is not evidence of an active runtime switch. Named-socket and open-map readers are documented separately.

Operational guidance

  • Enable native log export, journaling and tracing independently; see Event Logging. Only the Master needs Collector connectivity and OpenTelemetry connection settings.
  • [StoragePolicy] enabled=yes can enforce existing policies immediately. Read Storage Lifecycle Policies before enabling it.
  • Scheduler switches in [Server] enable workers; [Scheduler] configures their cadence, concurrency and watchdogs. Increasing concurrency also increases database, memory and Mover load.
  • Repository *Size settings select storage-worker thread counts, not queue capacities or records per batch. Do not use them as retention limits.
  • Keep RMI and callback interfaces on trusted networks. Public service bind addresses and advertised addresses serve different purposes.
  • Protect credentials and keystores with restrictive file permissions. trustAllCerts, checkCertificates=no and plaintext proxy connections weaken transport protection; shipped values are not security recommendations.

Option catalogue

The following sections cover literal property readers, shared infrastructure, named socket overrides and dynamic option families in the OpenECPDS sources. Shared components only use their options when instantiated; listing a component does not enable it. Host, destination, user and transfer-module property families are linked below rather than conflated with service switches.

[API]

Template-defined configuration; see the reader links for its consuming component.

Option Code fallback when absent Shipped value Reader
api No direct literal reader; template entry Protected value/reference Template:129

[CallBack]

Exported callback endpoint. serverFactory and clientFactory are Java socket-factory classes. This section also accepts the named socket overrides described below.

Option Code fallback when absent Shipped value Reader
clientFactory null (no reader fallback) ecmwf.common.rmi.RMIClientSocketFactory CallBackObject:150
keepAlive Inherits [SocketConfig] keepAlive yes Template:261
listenAddress Inherits [SocketConfig] listenAddress ${Login[internalAddress]} Template:256
port 9000 ${Ports[callBack]} CallBackObject:54
publicAddress Inherits [SocketConfig] publicAddress ${Login[internalAddress]} Template:257
serverFactory null (no reader fallback) ecmwf.common.rmi.RMIServerSocketFactory CallBackObject:116

[Command]

External helper commands. ecauth overrides the token-generation executable; sh selects the ECios shell command.

Option Code fallback when absent Shipped value Reader
ecauth Cnf.at("Server", "ecauth", Cnf.at("ECauthSession", "cmd")) - ECauthTokenGenerator:46
sh null (no reader fallback) - ForkECios:169

[DataBase]

Database broker and JDBC configuration. initSleep is seconds; purge is hours and maxTransferLife is days. fetchSize is rows; retry delays are milliseconds. Broker-specific flags only apply to that broker. The shipped Hibernate broker deliberately differs from the generic broker fallback.

Option Code fallback when absent Shipped value Reader
alias null (no reader fallback) ${database.alias} ECaccessServer:165
alias System.getProperty("database.alias", "") ${database.alias} ManagementImpl:3326
backup No direct literal reader; template entry ${master.conf}/backup.sql Template:228
brokerFactory ecmwf.common.database.BrokerFactoryOJB ecmwf.common.database.BrokerFactoryHibernate ECaccessServer:163
debugCache false - BrokerHibernate:110
debugFrequency 10000 - BrokerHibernate:116
debugPool false - BrokerHibernate:113
debugSql false no ECaccessServer:167
driver null (no reader fallback) org.mariadb.jdbc.Driver ECaccessServer:164
emulateCalcFoundRows "hsqldb".equalsIgnoreCase(Cnf.at("DataBase", "subProtocol", "")) - DBResultSet:55
enableStreamingFetch true no BrokerHibernate:95
fetchSize 500 - BrokerHibernate:92
initCount 1 - ECaccessServer:146
initSleep 30 - ECaccessServer:147
logEvents true yes ECaccessServer:167
maxIdentityCount 7 7 MasterServer:2049
maxTransferLife 210 210 MasterServer:2050
password null (no reader fallback) Protected value/reference ECaccessServer:165
protocol null (no reader fallback) jdbc ECaccessServer:164
purge 360 360 ECaccessServer:215
repository null (no reader fallback) ${master.conf}/sql ECaccessServer:166
retryTransactionCount 2 - BrokerHibernate:104
retryTransactionDelay 1000 - BrokerHibernate:107
server null (no reader fallback) - ECaccessServer:166
setAutoCommit false - BrokerHibernate:98
setReadOnly false - BrokerHibernate:101
subProtocol Empty string mariadb DBResultSet:56
subProtocol null (no reader fallback) mariadb ECaccessServer:164
user null (no reader fallback) master ECaccessServer:165

[ECaccessScheduler]

Shared scheduler's minimum wait duration.

Option Code fallback when absent Shipped value Reader
minimumWait 1000 ms (duration fallback) - ECaccessScheduler:59

[ECauthModule]

ECauth connection and host-list cache. Durations control connection timeout, refresh polling, refresh frequency and cached-entry lifetime. Credentials here identify the ECauth service account.

Option Code fallback when absent Shipped value Reader
connectionTimeout 10000 ms (duration fallback) - Tools:163; Tools:253; Tools:359

[ECauthSession]

Legacy fallback command for ECauth token generation; [Command] ecauth and [Server] ecauth take precedence.

Option Code fallback when absent Shipped value Reader
cmd null (no reader fallback) - ECauthTokenGenerator:47

[ECios]

ECios helper start/kill socket timeouts, in milliseconds. Also accepts named socket overrides.

Option Code fallback when absent Shipped value Reader
killSoTimeout 15000 - ForkECios:258
startSoTimeout 15000 - ForkECios:179

[ECpdsBase]

Database-facing cache refresh pause and expiry durations.

Option Code fallback when absent Shipped value Reader
cachePause 5000 ms (duration fallback) - ECpdsBase:71
cacheTimeout 60000 ms (duration fallback) - ECpdsBase:68

[ECpdsClient]

ECpds socket-client read timeout in milliseconds. This is distinct from the server-side plugin timeout.

Option Code fallback when absent Shipped value Reader
soTimeOut 60000 - ECpdsClient:95

[ECpdsPlugin]

Master ECpds listener and request-processing behaviour. checkPort requires a privileged client source port when enabled. SocketSoTimeout applies to accepted request sockets in milliseconds. resetDataTransferSchedulesByGroup resets schedules on group completion. The section also accepts named socket options.

Option Code fallback when absent Shipped value Reader
SocketSoTimeout 60000 - ECpdsPlugin:608
checkPort true no ECpdsPlugin:764
defaultApplication pgen - ECpdsPlugin:154
failOnDestinationNotFound true - MasterServer:14111; ECpdsPlugin:1966; ECpdsPlugin:2088
forceStandby false - ECpdsPlugin:136
host Cnf.at("Login", "hostName", "localhost") - ECpdsClient:83
ignoreMissingScheduleTime true - ECpdsPlugin:1654
listenAddress Inherits [SocketConfig] listenAddress ${Login[externalAddress]} Template:318
maxSourceNameLength 255 - ECpdsPlugin:151
port Cnf.at("Ports", "ecpds", 6640) ${Ports[ecpds]} ECpdsClient:86
port null (no reader fallback) ${Ports[ecpds]} ECpdsPlugin:466
resetDataTransferSchedulesByGroup false yes ECpdsPlugin:157
soTimeOut Inherits [SocketConfig] soTimeOut 600000 Template:320
transferGroup null (no reader fallback) - ECpdsPlugin:293
waitForInitialWait 25000 ms (duration fallback) - ECpdsPlugin:147
waitForRefreshInterval 15000 ms (duration fallback) - ECpdsPlugin:143
waitForReloadInterval 5000 ms (duration fallback) - ECpdsPlugin:139

[ECproxyPlugin]

Mover ECproxy data listener and repository. Explicit TCP options override the accepted socket's existing values. Buffer sizes are bytes; socket timeouts are milliseconds. Also accepts named socket settings.

Option Code fallback when absent Shipped value Reader
repository /tmp - RegularFile:102

[ExecModule]

Defaults for the executable transfer module. script runs after file reception; dir falls back to the transfer directory. synchronous waits for command completion, returnCode is its accepted exit status, and usePipe supplies arguments on standard input. mkdirs creates parent directories and usetmp stages reception in a temporary file. Empty prefix and suffix select an effective .tmp suffix.

Option Code fallback when absent Shipped value Reader
args Empty string - ExecModule:121
dir dir - ExecModule:117
mkdirs true - ExecModule:122
prefix Empty string - ExecModule:124
returnCode 0 - ExecModule:120
script System.getProperty("ecmwf.dir", "../..") + "/gateway/bin/ectrans" - ExecModule:112
suffix Empty string - ExecModule:125
synchronous true - ExecModule:118
usePipe false - ExecModule:119
usetmp true - ExecModule:123

[ExecutorManager]

Opt-in virtual-thread execution for the shared executor. This is not a general scheduler concurrency limit.

Option Code fallback when absent Shipped value Reader
allowVirtualThread false - ExecutorManager:79

[FTPActiveSocket]

FTP server active-data sockets. Accepts every named socket option below, in addition to these direct readers.

Option Code fallback when absent Shipped value Reader
reuseAddress true yes DataSocket:165
soTimeOut Inherits [SocketConfig] soTimeOut 7200000 Template:364

[FTPPassiveSocket]

FTP server passive-data sockets. boundAddress controls the address used for passive binding. Also accepts named socket settings, including local-port ranges.

Option Code fallback when absent Shipped value Reader
backLog 1 - DataSocket:80
boundAddress boundAddress - DataSocket:99
maxPrivilegedPort Inherits [SocketConfig] maxPrivilegedPort 60000 Template:359
minPrivilegedPort Inherits [SocketConfig] minPrivilegedPort 50000 Template:358
privilegedLocalPort Inherits [SocketConfig] privilegedLocalPort yes Template:357
soTimeOut Inherits [SocketConfig] soTimeOut 300000 Template:360

[Filter]

Streaming compression/decompression command definitions. The four fly.* keys are read by the stream manager. The template also retains pre.out.* definitions, but the current source has no direct reader for those entries.

Option Code fallback when absent Shipped value Reader
fly.in.lbzip2 Empty command list - StreamManagerImp:234
fly.in.zstd Empty command list - StreamManagerImp:242
fly.out.lbzip2 Empty command list - StreamManagerImp:136
fly.out.zstd Empty command list - StreamManagerImp:144

[FtpDomainList]

Virtual FTP/SFTP domain mappings; arbitrary domain names are supported. * is the fallback. Domain mappings select backing filesystem/domain implementations, not network listener addresses.

Option Code fallback when absent Shipped value Reader
* null (no reader fallback) * DOMAIN:47; MinaFileSystemAccessor:781
attachments No mapping; uses * fallback attachments: Template:347
countries No mapping; uses * fallback countries: Template:349
data No mapping; uses * fallback data: Template:351
destinations No mapping; uses * fallback destinations: Template:348
hosts No mapping; uses * fallback hosts: Template:350
types No mapping; uses * fallback types: Template:352

[FtpModuleList]

FTP extension-module lists. Keys select extensions; * supplies the default list. Values are comma-separated module definitions consumed by the FTP utility.

Option Code fallback when absent Shipped value Reader
* Empty list - Util:217

[FtpPlugin]

FTP control listener and behaviour. welcome, browser and help are file paths; tail is response text. passive, rest and extended affect FTP features. hidden is a list of hidden virtual domains. alwaysCheckOnRETR requests retrieval-time checks. The section also accepts named socket options.

Option Code fallback when absent Shipped value Reader
alwaysCheckOnRETR false - RETR:165
browser browser.ftp ${master.conf}/ftp/browser.txt PASS:165
dataTimeOut No direct literal reader; template entry 600000 Template:334
ext Empty list Empty string Util:317
extended false no FEAT:49
extended true no FtpPlugin:284
help help.ftp ${master.conf}/ftp/help.txt HELP:57
hidden Empty list Empty string DOMAIN:53
listenAddress Inherits [SocketConfig] listenAddress ${Login[externalAddress]} Template:331
passive true yes CurrentContext:150
port 21 ${Ports[ftp]} DataSocket:129
port null (no reader fallback) ${Ports[ftp]} FtpPlugin:129
rest true - FEAT:50; FtpPlugin:288
soTimeOut Inherits [SocketConfig] soTimeOut 600000 Template:333
tail Direct comments to ecaccess@ecmwf.int FTP Admin Interface ALIAS:86; CHMOD:90; DOMAIN:89; UMASK:69
welcome welcome.ftp ${master.conf}/ftp/welcome.txt PASS:166

[GeoIP]

Template-defined configuration; see the reader links for its consuming component.

Option Code fallback when absent Shipped value Reader
forced.136.156 No direct literal reader; template entry 44.520320,11.360250,Europe,IT,Bologna Template:369

[IO]

Local repository I/O implementation. byteBufferSizeInMb sets the buffer size in MiB; pool idle age is seconds. Direct buffers and pooling only apply when the byte-buffer path is used. channelForce, channelForceMetadata and fdSync govern persistence/sync behaviour; changing them trades durability and performance.

Option Code fallback when absent Shipped value Reader
byteBufferDirect true - RegularFile:76
byteBufferPool true - RegularFile:70
byteBufferPoolMaxIdleSec 60 - RegularFile:86
byteBufferSizeInMb 1 - RegularFile:79
byteBufferUse true - RegularFile:73
channelForce true - RegularFile:67
channelForceMetadata true - RegularFile:82
fdSync true - RegularFile:64

[InterruptibleRMIServerSideSocket]

Cleanup interval for server-side interruptible RMI socket state, in minutes.

Option Code fallback when absent Shipped value Reader
cleanupIntervalInMinutes 5 - InterruptibleRMIServerSocket:355

[InterruptibleRMISocket]

Interruptible RMI stream-buffer pooling. Buffer size is bytes and buffer TTL is minutes.

Option Code fallback when absent Shipped value Reader
bufferSize 65536 - InterruptibleRMISocket:160
bufferTTLInMinutes 5 - InterruptibleRMISocket:164
usePooledBufferedStreams true - InterruptibleRMISocket:65

[Login]

Component identity, registration credential and addresses. root defaults to the hostname in normal service readers. Several utility readers use their own hostname/service fallback, so removing identity settings is not recommended. External/internal addresses are primarily consumed through template references and named socket sections.

Option Code fallback when absent Shipped value Reader
externalAddress No direct literal reader; template entry ${Login[hostName]} Template:19
hostName InetAddress.getLocalHost().getHostName() ${ecmwf.common.ecaccess.ECaccessInit.getHostName()} ECaccessScheduler:336; PluginContainer:149
hostName role ${ecmwf.common.ecaccess.ECaccessInit.getHostName()} TransferTracing:105
hostName null (no reader fallback) ${ecmwf.common.ecaccess.ECaccessInit.getHostName()} MasterServer:7603
hostName master ${ecmwf.common.ecaccess.ECaccessInit.getHostName()} OperationalEvents:94; OperationalEvents:121
hostName localhost ${ecmwf.common.ecaccess.ECaccessInit.getHostName()} ECpdsClient:83
internalAddress No direct literal reader; template entry ${master.internalAddress} Template:22
password null (no reader fallback) Protected value/reference MasterServer:7623
root Cnf.at("Login", "hostName", role) - TransferTracing:105
root Cnf.at("Login", "hostName") - MasterServer:7603
root Cnf.at("Login", "hostName", "master") - OperationalEvents:94; OperationalEvents:121
service Cnf.at("Login", "hostName", InetAddress.getLocalHost().getHostName()) - ECaccessScheduler:336; PluginContainer:149

[LoginManagement]

Failed-login throttling and ban tracking. active enables enforcement; max is consecutive failures. timer, wait and the login-path delay are seconds. The cleanup thread also reads delay as a raw millisecond polling interval with a different fallback; both readers are shown. whitelist bypasses these checks for matching entries.

Option Code fallback when absent Shipped value Reader
active false - LoginManagement:52
delay 4 - LoginManagement:75
delay 600000 - LoginManagement:288
max 20 - LoginManagement:70
timer 3600 - LoginManagement:58
wait 300 - LoginManagement:78
whitelist Empty list - LoginManagement:64

[Mail]

SMTP and optional mail-store configuration. host/user are the legacy shared defaults; smtpHost overrides the outgoing host. starttls, tls and auth affect transport/authentication. Store settings apply only to mail retrieval. Keep passwords in protected local configuration.

Option Code fallback when absent Shipped value Reader
auth true - MailMBean:286
debug false - MailMBean:280
defaultFrom mailUser - MailMBean:445
folderName INBOX - MailMBean:277
host Empty string ${mail.host} MailMBean:272
password Empty string - MailMBean:276
port 25 - MailMBean:284
smtpHost defaultHost - MailMBean:273
starttls true - MailMBean:285
storeHost Empty string - MailMBean:274
storePort -1 - MailMBean:302
storeType Empty string - MailMBean:279
tls true - MailMBean:314
user Empty string ${mail.user} MailMBean:275

[Master]

Whether Master registration updates a Mover's ECproxy address and port.

Option Code fallback when absent Shipped value Reader
updateECproxyAddressAndPort false - MasterServer:4621

[MetaData]

Metadata reload duration and notification recipient when contact information is missing.

Option Code fallback when absent Shipped value Reader
missingContactsMail Empty string ${metadata.missingContactsMail} ManagementImpl:186
reload 86400000 ms (duration fallback) 24h ManagementImpl:130

[Monitor]

External service-status integration, independent of the web monitoring UI. activated enables it, debug logs submissions and dontSend suppresses delivery. delay is a duration: the template's bare 120 means 120 hours, whereas the code fallback is five minutes.

Option Code fallback when absent Shipped value Reader
activated false no MonitorManager:72
debug false no MonitorManager:78
delay 300000 ms (duration fallback) 120 MonitorManager:75
dontSend false no MonitorManager:81

[NetworkWeather]

Network Weather admission/control limits. Values are counts except maxConfigurationBytes and maxControlResponseBytes, which are bytes. The Monitor controls activation; these settings bound accepted work rather than enabling probes.

Option Code fallback when absent Shipped value Reader
maxCandidates 500 500 WeatherLimits:22
maxConfigurationBytes 49152 49152 WeatherLimits:23
maxControlResponseBytes 65536 - WeatherLimits:35
maxHostChoices 5000 5000 WeatherLimits:22
maxProbePolicies 50 50 WeatherLimits:22
maxSelectedPaths 50 50 WeatherLimits:21
maxSources 20 20 WeatherLimits:21

[OpenTelemetry]

Master-only log, metric and trace SDK defaults. Metric intervals/timeouts and log/trace schedule delays are milliseconds; queue/batch limits count records or spans, and sample ratio is 0-1. Standard JVM/environment SDK settings override these defaults. With log journaling enabled, log queue/batch values govern only in-memory fail-open delivery, not the database backlog.

Option Code fallback when absent Shipped value Reader
logsMaxExportBatchSize 512 512 OperationalEvents:104
logsMaxQueueSize 2048 2048 OperationalEvents:103
logsScheduleDelayMillis 1000 1000 OperationalEvents:105
metricsEnabled false no TransferMetrics:67
metricsExportIntervalMillis 60000 60000 TransferMetrics:74
metricsExportTimeoutMillis 30000 30000 TransferMetrics:75
tracesEnabled false no TransferTracing:84
tracesMaxExportBatchSize 512 512 TransferTracing:95
tracesMaxQueueSize 2048 2048 TransferTracing:94
tracesSampleRatio 0.01 0.01 TransferTracing:93
tracesScheduleDelayMillis 1000 1000 TransferTracing:96

[OperationalEvents]

Independent Splunk-file and native OpenTelemetry event outputs. Journaling persists events before OTLP delivery; install the journal schema before enabling it. journalOwner must remain stable and distinguish independent Masters.

Option Code fallback when absent Shipped value Reader
journalCriticalOldestAgeMillis 1800000 1800000 OperationalEvents
journalCriticalPendingCount 10000 10000 OperationalEvents
journalEnabled false no OperationalEvents:88
journalOwner Cnf.at("Login", "root", Cnf.at("Login", "hostName", "master")) - OperationalEvents:93
journalWarningOldestAgeMillis 300000 300000 OperationalEvents
journalWarningPendingCount 1000 1000 OperationalEvents
openTelemetryEnabled false no OperationalEvents:85
splunkEnabled true yes OperationalEvents:84

The warning and critical thresholds are positive values, and each warning value must be lower than its corresponding critical value. They are loaded at Master startup. Reaching either the pending-count or oldest-admission-age threshold raises the corresponding alert on the journal page.

[Operator]

Transfer-operation message template. $destination[...], $dataFile[...] and related placeholders are expanded from transfer context.

Option Code fallback when absent Shipped value Reader
template null (no reader fallback) $destination[name]: $dataFile[metaTime]-$dataFile[metaStream]($dataFile[timeStep]) -> $dataTransfer[target]($dataFile[formatSize]) $system[message] on $transferMethod[name]://$host[login]@$host[host]($host[nickname];$host[networkCode]) $dataTransfer[comment] TransferScheduler:3222

[OpsViewManager]

OpsView publication endpoints, credentials, filters and TLS verification. URLs default relative to url; filter names differ by acquisition/dissemination/other roles. trustAllCerts=true skips certificate validation.

Option Code fallback when absent Shipped value Reader
acquisitionFilterName ECPDS_Acquisition - OpsViewManager:120
activated true ${opsview.activated} OpsViewManager:81
disseminationFilterName ECPDS_Dissemination - OpsViewManager:116
filterName No direct literal reader; template entry ECPDS_Destinations Template:303
options Empty string - OpsViewManager:84
otherFilterName ECPDS_Other - OpsViewManager:124
password Empty string Protected value/reference OpsViewManager:113
trustAllCerts true yes OpsViewManager:146; OpsViewManager:224
url https://localhost/passive:1443 - OpsViewManager:87
urlDetail URL + "/rest/detail" https://${opsview.host}/rest/detail OpsViewManager:107
urlHost URL + "/rest/config/host" https://${opsview.host}/rest/config/host OpsViewManager:93
urlLogin URL + "/rest/login" https://${opsview.host}/rest/login OpsViewManager:90
urlNotes URL + "/rest/notes/service" - OpsViewManager:101
urlReload URL + "/rest/reload" https://${opsview.host}/rest/reload OpsViewManager:104
user Empty string grid-apiconfig OpsViewManager:110

[Other]

Shared utilities. buffer is an I/O buffer size in bytes; ticketWaitDuration is a raw millisecond timeout. ecauthTokenCache enables token caching. dontCheckIp bypasses the provider's client-address check during subscription. tmp is retained in templates; the launcher separately sets the JVM temporary directory.

Option Code fallback when absent Shipped value Reader
buffer 65536 131072 CurrentContext:132; ECpdsPlugin:3141
dontCheckIp false yes ECaccessProvider:292
ecauthTokenCache true - ECauthTokenManager:52
ticketWaitDuration 120000 - AttachmentAccessImpl:348
tmp No direct literal reader; template entry ${master.tmp} Template:375
trace false - MonitorCall:50

[PluginList]

Template-defined configuration; see the reader links for its consuming component.

Option Code fallback when absent Shipped value Reader
ecpds No plugin definition ecmwf.ecpds.master.plugin.ecpds.ECpdsPlugin@${master.lib}/plugin/ecpds.jar,maxConnections=1000,inverseResolution=no Template:37
ftp No plugin definition ecmwf.common.ftpd.FtpPlugin@${master.lib}/plugin/ftp.jar,maxConnections=50,inverseResolution=no Template:38

[Ports]

Template port substitutions. Most keys are only referenced by listener sections and therefore have no independent code default. ecpds also has a direct client-reader fallback.

Option Code fallback when absent Shipped value Reader
callBack No direct literal reader; template entry ${port.callback} Template:28
ecpds 6640 ${port.ecpds} ECpdsClient:86
ftp No direct literal reader; template entry ${port.ftp} Template:27

[ProxySocket]

Proxy data/control socket settings. plainText chooses non-TLS transport and otherwise depends on the connection's addresses. host/port select the control endpoint; dataHost/dataPort can select the data endpoint separately. cipherSuites is the TLS suite list. Also accepts named socket options.

Option Code fallback when absent Shipped value Reader
cipherSuites Empty list SSL_RSA_WITH_NULL_MD5 ProxySocket:396
cipherSuites null (no reader fallback) SSL_RSA_WITH_NULL_MD5 ProxySocket:400
dataHost Cnf.at("ProxySocket", "host", socketConfig.getPublicAddress()) - ProxySocket:485; ProxySocket:567
dataHost null (no reader fallback) - ProxySocket:487; ProxySocket:569
dataPort Cnf.at("ProxySocket", "port", 646) - ProxySocket:486; ProxySocket:568
host localName ${Login[hostName]} ProxySocket:156
host socketConfig.getPublicAddress() ${Login[hostName]} ProxySocket:206; ProxySocket:485; ProxySocket:518; ProxySocket:567; ProxySocket:602; ProxySocket:679; ProxySocket:729
plainText localAddress.equals(definedAddress) - ProxySocket:163
port 646 - ProxySocket:207; ProxySocket:486; ProxySocket:519; ProxySocket:568; ProxySocket:603; ProxySocket:680; ProxySocket:730

[RMIClientSocketFactory]

Template-defined configuration; see the reader links for its consuming component.

Option Code fallback when absent Shipped value Reader
interruptible Inherits [SocketConfig] interruptible yes Template:274
keepAlive Inherits [SocketConfig] keepAlive yes Template:275
listenAddress Inherits [SocketConfig] listenAddress ${Login[internalAddress]} Template:272
publicAddress Inherits [SocketConfig] publicAddress ${Login[internalAddress]} Template:273

[RMIServerSocketFactory]

Template-defined configuration; see the reader links for its consuming component.

Option Code fallback when absent Shipped value Reader
interruptible Inherits [SocketConfig] interruptible yes Template:267
keepAlive Inherits [SocketConfig] keepAlive yes Template:268
listenAddress Inherits [SocketConfig] listenAddress ${Login[internalAddress]} Template:265
publicAddress Inherits [SocketConfig] publicAddress ${Login[internalAddress]} Template:266

[RequestParser]

Optional parser-backed ECpds ingestion. parserDir holds parser files; requestSize is parser worker count, requestDelay is milliseconds and maxAuthorisedSize bounds pending requests. logRequests controls request logging, not operational-event platform selection.

Option Code fallback when absent Shipped value Reader
clean true - ECpdsPlugin:382
lastTimeStamp -1 - ECpdsPlugin:381
logRequests false yes ECpdsPlugin:133
maxAuthorisedSize 1000 - ECpdsParser:338
parserDir null (no reader fallback) - ECpdsPlugin:379
ratio 1 - ECpdsPlugin:381
requestDelay 1000 - ECpdsParser:336
requestSize 25 - ECpdsParser:335
useParser false no ECpdsPlugin:380

[ResourceTracker]

Shared runtime-resource diagnostics. defaultDebugFrequency counts resource-close events between debug reports; it is not a time interval.

Option Code fallback when absent Shipped value Reader
defaultDebugFrequency 10000 - ResourceTracker:45
enabled true - ResourceTracker:42

[Scheduler]

Worker cadence, concurrency and watchdogs. *JammedTimeout, maximumDuration* and timeOut* read durations; a negative timeout leaves that execution limit unset. *TimeRanges accepts configured execution windows. max*Threads values are concurrency counts; cacheRatio scales prefetch. The legacy purgeDataBase/updateECUsers intervals are hours, with optional clock-time lists.

Option Code fallback when absent Shipped value Reader
acquisitionScheduler 1000 ms (duration fallback) 1s MasterServer:11417
acquisitionSchedulerJammedTimeout 600000 ms (duration fallback) 10m MasterServer:11418
acquisitionSchedulerTimeRanges Empty list - MasterServer:11419
backupScheduler 5000 ms (duration fallback) 1m MasterServer:10548
backupSchedulerJammedTimeout 600000 ms (duration fallback) 10m MasterServer:10549
backupSchedulerTimeRanges Empty list - MasterServer:10550
cacheRatio 40 80 MasterServer:13024
dataTransferCheck 300000 ms (duration fallback) 5m MasterServer:9390
dataTransferCheckJammedTimeout 600000 ms (duration fallback) 30m MasterServer:9391
dataTransferCheckTimeRanges Empty list - MasterServer:9392
debug false - MasterServer:10912; MasterServer:13230
destinationThread 1000 ms (duration fallback) 1s TransferScheduler:3042
destinationThreadJammedTimeout 300000 ms (duration fallback) 5m TransferScheduler:3043
downloadScheduler 1000 ms (duration fallback) 1s MasterServer:13261
downloadSchedulerJammedTimeout 600000 ms (duration fallback) 10m MasterServer:13262
downloadSchedulerTimeRanges Empty list - MasterServer:13263
eventScheduler 5000 ms (duration fallback) 1s MasterServer:8205
eventSchedulerJammedTimeout 600000 ms (duration fallback) 10m MasterServer:8206
eventSchedulerTimeRanges Empty list - MasterServer:8207
eventScriptFile Empty string ${master.etc}/event.js MasterServer:796; MasterServer:8375
exportDataBase No direct literal reader; template entry 0 Template:221
failOnMissingSourceFile false - MasterServer:14222
filterScheduler 5000 ms (duration fallback) 1s MasterServer:9450
filterSchedulerJammedTimeout 300000 ms (duration fallback) 5m MasterServer:9451
filterSchedulerTimeRanges Empty list - MasterServer:9452
hostCheckScheduler 300000 ms (duration fallback) 5m MasterServer:9132
hostCheckSchedulerJammedTimeout 1800000 ms (duration fallback) 30m MasterServer:9133
hostCheckSchedulerTimeRanges Empty list - MasterServer:9134
interruptSlowAcquisitionThread true yes MasterServer:11395
interruptSlowDownloadThread No direct literal reader; template entry yes Template:191
maxAcquisitionThreads 100 140 MasterServer:11388
maxBackupThreads 15 15 MasterServer:10529
maxDownloadThreads 60 ${retrieval.maxPoolSize} MasterServer:13224
maxEventThreads 200 50 MasterServer:8186
maxFilterThreads 15 100 MasterServer:9431
maxPresetPerDestination 60 - MasterServer:13125
maxProxyThreads 15 150 MasterServer:10909
maxPurgeThreads 50 250 MasterServer:10245
maxReplicateThreads 200 200 MasterServer:9818
maxReplicateThreadsPerMover 10 15 MasterServer:9821
maximumDurationAcquisitionThread 600000 ms (duration fallback) 10m MasterServer:11391
maximumDurationDownloadThread No direct literal reader; template entry 25m Template:188
minimumDurationDownloadThread No direct literal reader; template entry 5m Template:189
minimumRateDownloadThread No direct literal reader; template entry 2359296 Template:190
moverAvailabilityScheduler 60000 ms (duration fallback) - MasterServer:9042
moverAvailabilitySchedulerJammedTimeout 300000 ms (duration fallback) - MasterServer:9044
portalBytesScheduler 30000 ms (duration fallback) - MasterServer:8950
portalBytesSchedulerJammedTimeout 300000 ms (duration fallback) - MasterServer:8951
portalTrafficScheduler 60000 ms (duration fallback) - MasterServer:8915
portalTrafficSchedulerJammedTimeout 300000 ms (duration fallback) - MasterServer:8916
processChecksum true - MasterServer:13233
proxyScheduler 5000 ms (duration fallback) - MasterServer:10931
proxySchedulerJammedTimeout 600000 ms (duration fallback) - MasterServer:10932
proxySchedulerTimeRanges Empty list - MasterServer:10933
purgeDataBase 24 24 ECaccessServer:207
purgeDataBaseTime Empty list 00:15:00 ECaccessServer:205
purgeScheduler 5000 ms (duration fallback) 1s MasterServer:10264
purgeSchedulerJammedTimeout 600000 ms (duration fallback) - MasterServer:10265
purgeSchedulerTimeRanges Empty list - MasterServer:10266
removeExpiredDataTransfers No direct literal reader; template entry 1 Template:215
removeExpiredRoots No direct literal reader; template entry 1 Template:216
replicateScheduler 5000 ms (duration fallback) 1s MasterServer:9840
replicateSchedulerJammedTimeout 600000 ms (duration fallback) 10m MasterServer:9841
replicateSchedulerTimeRanges Empty list - MasterServer:9842
timeOutBackupThread -1 ms (duration fallback) 20m MasterServer:10526
timeOutEventThread -1 ms (duration fallback) 5m MasterServer:8183
timeOutFilterThread -1 ms (duration fallback) - MasterServer:9428
timeOutProxyThread -1 ms (duration fallback) - MasterServer:10906
timeOutPurgeThread -1 ms (duration fallback) - MasterServer:10242
timeOutReplicateThread -1 ms (duration fallback) 20m MasterServer:9815
transferScheduler 2000 ms (duration fallback) 1s TransferScheduler:174
transferSchedulerJammedTimeout 300000 ms (duration fallback) 5m TransferScheduler:175
transferSchedulerTimeRanges Empty list - TransferScheduler:176
updateECUsers 24 24 ECaccessServer:203
updateECUsersTime Empty list 00:15:00 ECaccessServer:201

[ScriptManager]

JavaScript/Graal engine settings. runningTimeout and longRunningTime are milliseconds. resourceLimits=0 leaves the statement limit disabled. Shared engines, compilation and virtual-thread execution are independent switches.

Option Code fallback when absent Shipped value Reader
allowExperimentalOptions false - ScriptManager:96
allowVirtualThread false - ScriptManager:101
engineCompilation true - ScriptManager:98
longRunningTime 1000 - ScriptManager:79
resourceLimits 0 - ScriptManager:95
runningTimeout 10000 - ScriptManager:76
useSharedEngine true - ScriptManager:95
warnVirtualThreadSupport false - ScriptManager:97

[Security]

Authentication, secret protection, socket TLS and optional HTTPS store defaults. SSL store readers can fall back to JVM javax.net.ssl.* properties; HTTPS has its own fallback path. JCE settings protect stored secrets and are not HTTPS cipher settings. checkCertificates=no disables certificate checks. See the TLS and control-channel guides before changing these values.

Option Code fallback when absent Shipped value Reader
JCEAlias SecretWriting.class.getName() - SecretWriting:96
JCECipherAlgorithm DES/ECB/PKCS5Padding - SecretWriting:151
JCEKeyStore null (no reader fallback) - SecretWriting:95
JCEKeyStoreAlgorithm DES - SecretWriting:166
JCEKeyStorePassword null (no reader fallback) - SecretWriting:94
JCEKeyStoreSize -1 - SecretWriting:170
JCEKeyStoreType JCEKS - SecretWriting:97
SSLKeyStore System.getProperty("javax.net.ssl.keyStore") ${master.etc}/ecpds-master.pfx SSLSocketFactory:64
SSLKeyStoreAlgorithm System.getProperty("sun.SSL.keymanager.type", "SunX509") - SSLSocketFactory:76
SSLKeyStorePassword System.getProperty("javax.net.ssl.keyStorePassword") Protected value/reference SSLSocketFactory:68
SSLKeyStoreType System.getProperty("javax.net.ssl.keyStoreType", "PKCS12") - SSLSocketFactory:72
SSLTrustStore System.getProperty("javax.net.ssl.trustStore", KEY_STORE_PATH) - SSLSocketFactory:80
SSLTrustStoreAlgorithm System.getProperty("sun.SSL.trustmanager.type", KEY_STORE_ALGORITHM) - SSLSocketFactory:92
SSLTrustStorePassword System.getProperty("javax.net.ssl.trustStorePassword", KEY_STORE_PASSWORD) - SSLSocketFactory:84
SSLTrustStoreType System.getProperty("javax.net.ssl.trustStoreType", KEY_STORE_TYPE) - SSLSocketFactory:88
SSLVersion TLSv1.3 - SSLSocketFactory:61
check false - ECaccessServer:188
checkCertificates true - SSLSocketFactory:373
cliSharedSecret Empty string Protected value/reference SimplePlugin:62; ProxySocket:82; ECpdsClient:98
ejbPassword No direct literal reader; template entry Protected value/reference Template:249
ejbUser No direct literal reader; template entry ${Login[hostName]} Template:248
jaasModule No direct literal reader; template entry ecmwf Template:247

[Server]

Per-process service switches and local paths. Master readers enable schedulers/repositories; Mover readers enable its own repositories/accounting. dontRecord* suppresses management-action history, not native telemetry globally. Globe cache settings belong to the Monitor. providerMBeanTimeout is milliseconds; topology probe timeout is a duration.

Option Code fallback when absent Shipped value Reader
acqDownloadScheduler true - MasterServer:1010
acquisitionScheduler true yes MasterServer:996
allowPasswordOn "(" + getRoot() + "\|" + Format.getHostAddress(getRoot()) + ")" - MasterServer:808
anonymousPass anonymous - MasterServer:7239
anonymousUser anonymous - MasterServer:6287; MasterServer:7040; MasterServer:7217; MasterServer:7238
anonymousUser "anonymous".equals(user) - MasterServer:7308
attachments /tmp/ecpds-attachments ${master.data}/attachments AttachmentAccessImpl:57; ManagementImpl:126
backupScheduler true yes MasterServer:982
checkFileName ecpds.tst - MasterServer:9135
containersToNotify "ECpdsMonitor/" + getRoot() ECpdsMonitor/(.*) MasterServer:804
dataTransferCheck true - MasterServer:948
defaultTransferGroup null (no reader fallback) internet DataBaseImpl:2288; TransferServerProvider:1249
dissDownloadScheduler true - MasterServer:1017
dontRecordActions "output", "report" output,report MasterServer:7113
dontRecordTransferActions true yes MasterServer:7112
downloadScheduler No direct literal reader; template entry yes Template:102
ecauth Cnf.at("ECauthSession", "cmd") ecauth ECauthTokenGenerator:47
email Empty string Empty string MasterServer:7063
eventRepository true yes MasterServer:910
eventScheduler true yes MasterServer:914
filterScheduler true yes MasterServer:1024
geoip2DataFile null (no reader fallback) ${master.conf}/GeoLite2-City.mmdb GeoIP2Helper:81
groupNameTranslationList Empty list - MasterServer:6849
historyRepository true yes MasterServer:903
hostCheckScheduler true no MasterServer:940
hostoutputs null (no reader fallback) ${master.data}/hostoutputs MasterServer:299
liveTransferMonitoringForceEnabled false - MasterServer:874
mailRepository true ${mail.activated} MasterServer:925
mailSubjectTag getRoot() - MasterServer:826; ECpdsPlugin:176
maxIncomingConnections 10 - ECtransOptions:1750
monitoring Empty string https://${Login[hostName]} MasterServer:7001
monitoringTaskScheduler No direct literal reader; template entry no Template:115
moverAvailabilityScheduler true - MasterServer:1049
notificationRepository true yes MasterServer:933
notifyLocalContainer true no MasterServer:799
portalBytesScheduler true - MasterServer:1038
portalTrafficScheduler true - MasterServer:1031
providerMBeanTimeout 120000 180000 ECaccessProvider:550
proxyHostRepository true - MasterServer:896
proxyScheduler true - MasterServer:989
purgeScheduler true - MasterServer:1003
replicateScheduler true yes MasterServer:975
sendMailNotificationsForTransfers true - MasterServer:822
systemTopologyProbeTimeout 3000 ms (duration fallback) - ManagementImpl:147
testPhrase Test transfer file - MasterServer:9136
ticketRepository true yes MasterServer:882
transferRepository true yes MasterServer:889
transferScheduler true yes MasterServer:875
useDataProxy No direct literal reader; template entry no Template:122

[SessionCache]

Shared session cache logging and minimum pause (milliseconds). Debug frequency is a diagnostic event-count interval.

Option Code fallback when absent Shipped value Reader
activityLogger true - SessionCache:84
debug false - SessionCache:90
debugFrequency 1000000 - SessionCache:81
minimumPause 15000 - SessionCache:87

[SocketConfig]

Defaults for sockets. Buffers are bytes (-1 leaves OS defaults), timeouts are milliseconds, backlog is pending connections, and keepAlive is TCP keepalive rather than application connection pooling. Named socket sections override these values; see the complete named-option list below.

Option Code fallback when absent Shipped value Reader
backLog 100 10000 SocketConfig:158
connectTimeOut 15000 30000 SocketConfig:155
host null (no reader fallback) - SocketConfig:173
interruptible false no SocketConfig:170
keepAlive null (no reader fallback) yes SocketConfig:161
listenAddress null (no reader fallback) ${Login[externalAddress]} SocketConfig:140
maxPrivilegedPort 1023 - SocketConfig:89
minPrivilegedPort 500 - SocketConfig:86
port -1 - SocketConfig:176
privilegedLocalPort false - SocketConfig:137
publicAddress null (no reader fallback) ${Login[externalAddress]} SocketConfig:143
receiveBufferSize -1 -1 SocketConfig:146
reuseAddress null (no reader fallback) - SocketConfig:167
sendBufferSize -1 -1 SocketConfig:149
serverPort 0 - SocketConfig:179
soTimeOut 86400000 86400000 SocketConfig:152
tcpNoDelay null (no reader fallback) - SocketConfig:164
trace true no SocketConfig:131

[SshPlugin]

SSH/SFTP listener and server identity. keyPairsDir stores host keys, banner is a file path and softwareVersion is the advertised server string. maxConcurrentSessions=0 means unlimited. hidden controls virtual-domain visibility.

Option Code fallback when absent Shipped value Reader
hidden Empty list - MinaFileSystemAccessor:783; MinaFileSystemAccessor:1069

[StoragePolicy]

Storage lifecycle worker. batchSize counts files, maxRelatedTransfers bounds related records and other timing settings are durations. enabled is opt-in; existing ENFORCE policies take effect when enabled. See the lifecycle policy guide before activation.

Option Code fallback when absent Shipped value Reader
batchSize 100 100 StorageLifecycleScheduler:121
enabled false no StorageLifecycleScheduler:86
interval 30000 ms (duration fallback) 30s StorageLifecycleScheduler:80
jammedTimeout 600000 ms (duration fallback) - StorageLifecycleScheduler:81
maxRelatedTransfers 10000 10000 StorageLifecycleScheduler:170
maxUsageAge 120000 ms (duration fallback) - MasterServer:3552
stepBudget 10000 ms (duration fallback) 10s StorageLifecycleScheduler:128
timeRanges Empty list - StorageLifecycleScheduler:82

[StorageRepository]

Asynchronous persistence. *Size means storage-worker thread count, not queue capacity or batch size. *Delay, idle waits and ticket timeouts are milliseconds. *MaxAuthorisedSize caps repository entries (0 leaves the cap unset). Options only apply to repository types instantiated by this process.

Option Code fallback when absent Shipped value Reader
eventDelay 30000 1000 MasterServer:8095
eventMaxAuthorisedSize 0 - MasterServer:8096
eventSize 5 15 MasterServer:8094
historyDelay 30000 1000 MasterServer:7909
historyMaxAuthorisedSize 0 - MasterServer:7910
historySize 5 15 MasterServer:7908
notificationDelay 1000 45000 MasterServer:8806
notificationSize 5 25 MasterServer:8805
providerDelay 30000 1000 ECaccessProvider:509
providerSize 0 5 ECaccessProvider:508
proxyHostDelay 15000 - MasterServer:8657
proxyHostSize 2 - MasterServer:8656
storageRepositoryDelay 3600000 45000 StorageRepository:159
storageThreadDelay 15000 45000 StorageThread:126
ticketDelay 60000 45000 TicketRepository:61
ticketSize 0 1 TicketRepository:60
ticketTimeOut 18000000 - TicketRepository:62
ticketTimeOutAfterCompletion 180000 - TicketRepository:63
transferDelay 250 1000 MasterServer:7761
transferSize 5 25 MasterServer:7760

[StreamPlug]

Shared stream-copy buffer size in bytes.

Option Code fallback when absent Shipped value Reader
buffSize 65536 - StreamPlugThread:60

[TOTP]

OTP authentication provider configuration, including token endpoint, separate password/passcode client credentials, grant type and expected HTTP status. active=false disables this provider path; the login-form selector does not enable it.

Option Code fallback when absent Shipped value Reader
active false - TOTP:51
clientIdForPasscode null (no reader fallback) - TOTP:63
clientIdForPassword null (no reader fallback) - TOTP:57
clientSecretForPasscode null (no reader fallback) - TOTP:66
clientSecretForPassword null (no reader fallback) - TOTP:60
expectedStatus 200 - TOTP:72
grantType password - TOTP:69
url null (no reader fallback) - TOTP:54

[ThreadService]

Shared thread runtime. Virtual threads are opt-in; debugThreadLocal enables thread-local diagnostics.

Option Code fallback when absent Shipped value Reader
allowVirtualThread false - ThreadService:66
debugThreadLocal false - ThreadService:69

[TransferScheduler]

Destination-dispatch concurrency and monitoring cache. poolSize=0 means unlimited destinations; queueSize is the pending-transfer fetch limit. delay is milliseconds, monitoringTimeout minutes and subscription frequency a duration.

Option Code fallback when absent Shipped value Reader
delay 1000 - TransferScheduler:2143
monitoringCache true yes TransferScheduler:2781
monitoringSubscribeFrequency 600000 ms (duration fallback) - TransferScheduler:2958
monitoringTimeout 10 10 TransferScheduler:2811
poolSize 400 0 TransferScheduler:149
queueSize 20 55 TransferScheduler:152

[TransferServerProvider]

Mover-selection heuristics and usage updates. Update frequency is seconds; CV threshold and file-size penalty are dimensionless factors. Debug output helps inspect allocation decisions.

Option Code fallback when absent Shipped value Reader
cvThreshold 0.03 - TransferServerProvider:1433
debug false - TransferServerProvider:2108
fileSizePenaltyFactor 1.0 - TransferServerProvider:1439
startUsageUpdater true - TransferServerProvider:1465
usageUpdaterFreqInSec 2 - TransferServerProvider:1693

Named socket sections

SocketConfig.load reads the following keys from a component's named section. Common section names for this service are CallBack, RMIServerSocketFactory, RMIClientSocketFactory, ECpdsPlugin, FtpPlugin, FTPPassiveSocket, FTPActiveSocket, ProxySocket and ManagementEXEC; transfer/helper code can also use ECauthModule, FtpPASV, FtpPORT, FtpOPEN, HTTPSocketConfig, GCSSocketConfig, S3SocketConfig, WebDavModule, JSftp, TelnetWrapper and ECios. A transfer module or plugin must actually use that socket implementation for its settings to apply; Jetty HTTP listeners and third-party transfer clients do not automatically honour every low-level socket option.

Basic options inherit the values in [SocketConfig] shown above; the advanced TCP options from tcpCongestion onward default to unset and are read from the named section, not from the global [SocketConfig] defaults. Advanced options depend on OS/socket support. Caller-supplied addresses, ports and module/Host settings may override socket defaults.

Option(s) Meaning
listenAddress Local bind/source address.
publicAddress Advertised address, distinct from the local bind address.
receiveBufferSize, sendBufferSize Bytes; -1 leaves the OS default.
soTimeOut Read timeout in milliseconds; aliases soTimeout and timeOut are tried in that order when the preferred spelling is absent.
connectTimeOut Connection timeout in milliseconds.
backLog Pending incoming-connection queue length.
keepAlive TCP keepalive switch.
tcpNoDelay TCP_NODELAY switch.
reuseAddress SO_REUSEADDR switch.
interruptible Use the interruptible socket implementation.
privilegedLocalPort Allocate a local source/listening port from the configured local range.
minPrivilegedPort, maxPrivilegedPort Inclusive local-port range; inherited base defaults are 500 and 1023.
trace Socket diagnostics.
host, port Default remote endpoint when the caller does not supply one.
serverPort Local listening port; 0 requests an automatically assigned port.
tcpCongestion Congestion-control algorithm name.
soMaxPacingRate Maximum socket pacing rate, bytes/s.
tcpMaxSegment Maximum TCP segment size, bytes.
tcpTimeStamp TCP timestamps switch.
tcpWindowClamp TCP receive-window clamp, bytes.
tcpKeepAliveTime Idle time before keepalive probes, seconds.
tcpKeepAliveInterval Time between keepalive probes, seconds.
tcpKeepAliveProbes Keepalive probe count.
tcpLingerEnable Enable linger-on-close.
tcpLingerTime Linger timeout, seconds.
tcpUserTimeout Maximum unacknowledged-data time, milliseconds.
tcpQuickAck TCP quick-acknowledgement switch.

Master-managed maps

These sections accept names determined by users, services or network addresses, so there is no finite list of key names:

Section / key pattern Default when absent Meaning
[API] <clientId> Empty definition Startup API client provisioning: secret:service-name-regex. Treat values as credentials, not public examples.
[Services] <serviceName> Service unavailable External execution endpoint in host:port form. Uses [ManagementEXEC] socket settings.
[Restricted] <user> No configured root restriction Comma-separated regular expressions matched against the connecting root's resolved hostname.
[Roots] <user> Empty value Static authentication credential for that user; not a filesystem-root path. Keep this secret.
[NetworkWeatherRelay] <sourceId> No approved relay mapping Active Proxy Host ID approved to relay that Network Weather source.
[GeoIP] forced.<address-or-prefix> Normal GeoIP resolution Forced latitude,longitude,region,country,city for matching addresses.
[DestinationTypes] <position>.<id>.<category> Built-in Destination types Additional Destination type labels, in position.id.category=label form.

Forced GeoIP entries are checked before database lookup. Local/private addresses otherwise skip GeoIP lookup; this does not prevent name resolution. See Live Earth monitoring.

FTP mapping and per-user families

Section / key pattern Default when absent Meaning
[FtpPlugin] restrict.<user> No prefix restriction Require the client's textual IP address to start with the configured prefix. This is not CIDR syntax.
[FtpAliases] <domain> Empty list Alias list for the selected virtual domain.
[FtpDomainList] <domain> No mapping; * is the fallback Virtual domain to backing-domain mapping.
[FtpModuleList] <extension> Default * module list Extension-specific FTP module definitions.
[Filter] pre.out.<name> No direct reader in current sources Retained template definitions for file-to-file filter commands using $1 and $2 paths.
[Filter] fly.out.lbzip2, fly.in.lbzip2, fly.out.zstd, fly.in.zstd No configured command Streaming compression/decompression commands.

Streaming filter executables must be installed on the machine executing them. Adding a definition does not apply it to every transfer; the current stream manager selects the named lbzip2 or zstd command when using that format.

Plugin and module families

[PluginList] is an open map of plugin names to definitions:

[PluginList]
name=implementation.Class@/path/to/plugin,option=value

The library path and per-plugin options depend on the plugin. Server plugins support maxConnections and inverseResolution; deleting or adding a plugin definition changes which services start. These are options inside the value, not new top-level ecmwf.properties groups. See Plugin Infrastructure.

[ECtrans] is an open family of global transfer-option defaults, with keys module.option (for example, ftp.passive). Its option set is defined by ECtransOptions and the selected module, not a fixed list of literal Cnf keys. Entity/transfer setup values can override these defaults. The complete option/default references are:

These entity options are not interchangeable with service sections. Some options are only meaningful for a particular module or execution role.