Configuration

The file “ColdScheduler.properties” represents the central configuration file where, in a nutshell, settings relating to the following aspects are covered:

  • database connection (vendor, name, user, password, host, port)

  • REST monitoring interface (host, port, basic access authentication, keystore, and SSL certificate setup)

  • technical control parameters (e.g. sleep/update intervals, maximum thread number, return codes etc.)

In the initial version of the properties file, as provided in the delivered software package, exemplary, and default values are specified and commented sections for the supported databases are included. You must adjust at least the connection and authentication settings. The table below lists all entries that can be adjusted:

Entry

Example

Description

AktionFile

Aktion.ini

This entry specifies which file contains the workflow definition that decides about script execution (default: “Aktion.ini”).

auth_token_expiration_time

30

The duration in seconds for which an authenticated user's access token remains valid. After this period, users will need to reauthenticate to continue accessing the system.

IdleSleepTime

5000

Period how often to check in the DB if there are no jobs ahead (unit: milliseconds)

Threads

20

Maximum number of concurrent jobs (globally valid for all spools and generations)

ServerId

1

Server ID from the cold_steuer table. Only entries with this ID are to be considered.

Database

Derby

Indicates the database source, e.g. “Oracle” or “Derby”

DatabaseUser

coldscheduler

Database user

DatabasePassword

password

Password of the database user

DatabaseHost

127.0.0.1

Specifies to which IP the database is to be bound (127.0.0.1 represents a local database.)

For Oracle and PostgreSQL it is possible to connect several database servers (primary and standby) by specifying multiple DatabaseHost and DatabasePort separated with a coma:

DatabaseHost=172.17.52.2,172.17.52.3

For each host a specific port can be specified, see section below.

The number of hosts is not limited.

DatabasePort

1527

Database port

For Oracle and PostgreSQL it is possible to connect several database servers (primary and standby) by specifying multiple DatabaseHost and DatabasePort separated with a coma:

DatabasePort=5432,5433

The number of ports is not limited.

DatabaseName

coldSchedulerDB

Database name

DatabaseTnsPath

/var/oracle/product/10.2.0/

network/admin/

(Oracle) Path to the TNS Names file

DatabaseTns

imadb

(Oracle) TNS entry for the database connection

DatabaseConnectionMinIdle

1

Keep at least this amount of database connections open (default: 1)

DatabaseConnectionMaxWait

10000

Wait for a database connection for ... milliseconds

LogDirectory

./../logs

Specifies the directory where the general logs of scheduler, such as startup and shutdown, are stored.

MonitoringHost

127.0.0.1

Specifies to which IP the REST interface is bound
(“127.0.0.1” enables only local access.)

MonitoringPort

23443

On this port the REST interface is accessible.

PublishApiDocs

true

Publish API Documentation in subdirectory “/apidocs”

refresh_token_expiration_time

600

 

The expiration time of refresh tokens, which are used to obtain new access tokens without requiring users to log in again. Refresh tokens remain valid for the specified duration in seconds, allowing for longer sessions between user logins.

SSLEnable

true

Enable SSL for the monitoring port

SSLKeystore

/keystore.jks

Path to the keystore with the SSL Certificate

SSLKeystorePassword

changeit

Keystore password

TLSVersion TLSv1.2

Version of TLS for HTTPS connections (default: TLSv1.2)

User1

PLAIN:guest:guest:‌READ

An authorization string containing the following values separated by a colon: password type, username, user password and role (see section “Adding a user” below)

DefaultUserRole

READ

Possible values: NONE, READ, OPERATOR or ADMIN

If no user/password header on the REST endpoint is provided, this role is used. “NONE” provides the strongest protection (access without user/password is impossible) and “ADMIN” is the weakest approach (where no user/role authorization is active, and any connecting client has full control).

ProcessLogDirectory

/tmp

The stdout output of called jobs is stored in this directory. Each Scheduler thread writes in a separate file, which is deleted by execution of a job.

MonitorIgnoreSslCertificate

false

When set to true, the client is allowed to connect to schedulers with an invalid SSL certificate.

RetryReturnCode

9

Returns the exit code to trigger the job retry. If the value is empty, all error numbers are interpreted as retry. Several values separated by comma can be provided.

ErrorReturnCode

99

Returns the exit code to trigger the job error. If the value is empty, all error numbers are interpreted as retry. Several values separated by comma can be provided.

UpdateDatabaseMaxRetries

10

When trying to update a finished job the Scheduler will retry up to this number of times to set the new state in the database. The wait time for the first retry is 2 seconds – it will double with every retry.

DefaultUpdateInterval

30

Default update interval for Scheduler Monitor

PrometheusUpdateInterval

5000

Update interval for Prometheus monitoring values in milliseconds. Leave blank or set to 0 to deactivate

PrometheusPushGateway

52.118.142.51:9091

Prometheus push gateway. Leave blank to disable push.

PrometheusPushJobLabel

ColdSchedulerSystem01

Prometheus push gateway job name. Set a name for this instance that shows up in Prometheus.

Table 80: Scheduler configuration – entries in “ColdScheduler.properties”