Runtime parameters reference

The runtime is configured using parameters defined in the engineParameters.xml file, which is found in the properties/ sub-folder of the runtime installation directory.

This file includes the following configuration elements:

In this file, you can also configure:

Configuration samples are provided in the properties/samples/ sub-folder of the runtime installation directory.
Passwords are encrypted using the encrypt <password> command on the runtime console
You can externalize the parameters in the engineParameters.xml file using environment variables.

Runtime parameters

The following parameters define the overall behavior of the runtime.

Parameter Default value Description

temporaryFolder

temp

Temporary folder for the Runtime. Used by developers as a workspace, and by the Runtime to store some temporary files.

deliveryExtension

deliv

Extension of the deliveries. Do not change this value.

defaultFetchSize

1000

Default fetch value for reading data in databases. This value may be overriden by data flows designers or when configuring deliveries for production.

defaultBatchSize

1000

Default batch update value for writing data into databases. This value may be overriden by data flows designers or when configuring deliveries for production.

defaultJdbcConnectionTimeout

100

Default timeout database connections in seconds.

defaultJdbcQueryTimeout

10

Default timeout for database queries in seconds.

defaultSessionReportNumber

10

Default number of sessions for the reporting part of the runtime. This value may be overriden by the graphical interface.

jythonVersion

Jython interpreter version used for scripting actions. To use another Jython version, copy the corresponding Jython files (you can download the Jython Standalone library files from the Jython website) to a /lib/jython/<jython-version> subdirectory the Runtime installation directory, and set the jythonVersion parameter to the name of this directory. When unset, the default version shipped with the Runtime is used.

Make sure that Java system requirements of the Jython version that you plan to use are compabible with the Runtime requirements.

stackTraceOnStdOutput

true

Set to true to write the stacktrace to the standard output in case of an error.

statisticsOnStdOutput

true

Set to true to write the statistics to the standard output at the end of a session.

sumVariables

List of the variables used to compute the session statistics.

Services

The following parameters configure the runtime services.

Service startup

Parameter Default value Description

launchSchedulerEngine

true

Start the built-in scheduler.

launchExecutionEngine

true

Start the execution engine.

Services ports

Parameter Default value Description

httpHost

SOAP and REST host (IP address or host name). You can specify it for specific network configurations. For example, when there are multiple domains, or when address translation generate different IP addresses for the same host. It defaults to localhost when undefined.

httpServerPort

42200

Listening port for the SOAP and REST endpoints.

Web services parameters

Parameter Default value Description

soapServerUser

Optional user for queries to the SOAP server

soapServerPassword

Optional password for queries to the SOAP server

soapServerUncryptedPassword

Optional unencrypted password for queries to the SOAP server

soapServerThreadPoolSize

Maximum number of concurrent threads on the SOAP server. If number exceeds this size, sessions are put on hold

httpRestServerUser

Optional user for queries to the REST server

httpRestServerPassword

Optional password for queries to the REST server

httpRestServerUncryptedPassword

Optional unencrypted password for queries to the REST server

webServiceInputMessageKeep

if_error

Specifies if the input files created during web services invocations should be kept or not. The possible values are: yes, no, if_error. This parameter may also be set in the headers of the web Services and in the meta-inf of a process.

webServiceOutputMessageKeep

if_error

Specifies if the output files created during web services invocations should be kept or not. The possible values are: yes, no, if_error. This parameter may also be set in the headers of the web Services and in the meta-inf of a process.

webServiceFaultMessageKeep

if_error

Specifies if the fault files created during web services invocations should be kept or not. The possible values are: yes, no, if_error. This parameter may also be set in the headers of the web Services and in the meta-inf of a process.

Security

Keystores

Table 1. Keystore node attributes
Attribute Required? Description

path

Yes

Path to a Java keystore file, including the file name. Can be an absolute path, or relative to the main runtime directory.

password

Yes

Password of the keystore file.

type

No

Java keystore type. If undefined, the keystore type is set to the JVM default. This is usually JKS.

Table 2. Key node attributes
Attribute Required? Description

name

Yes

User-defined name to refer to this key in other parts of the runtime configuration, or in the command line.

alias

Yes

Alias of the key as defined inside the keystore.

password

Yes

Password of the key entry in the keystore.

blockCipherModeOperation

No

Which block cipher mode to use when encrypting or decrypting.

Services

Parameter Default value Description

webServiceSecureProtocol

Protocol to be used to secure the endpoints. For example, TLSv1.1.

webServiceKeyStoreFile

Path to the Java keystore containing the certificate used to secure the endpoints.

webServiceKeyStoreType

Java keystore type, such as JKS.

webServiceKeyStorePassword

Password of the keystore file.

webServiceKeyAlias

Alias of the key in the keystore.

webServiceKeyPassword

Password of the key.

enableAccessRestrictionOverHTTP

false

By default, Runtime access restriction can be modified only when the Runtime is secured with HTTPS.

Define this parameter to true if you want to remove this security policy and change the access restriction configuration even though you are with HTTP. We recommend enabling this with caution, only if you are certain that no attacker can intercept the network traffic in your environment.

By default, this parameter is defined to false for security purposes, because with HTTP the network messages are unsecured and the restriction can be bypassed by attackers. See Runtime access restriction.

Encryption

Parameter Default value Description

globalPasswordCipheringKeyName

Name of the key used for all password encryption/decryption operation. This key must be in the keystore defined in the Runtime configuration. This parameter replaces the deprecated passwordCipheringKeyName parameter.

deliveryPasswordCipheringKeyName

Name of the key used for password decryption while running a delivery. This key is used for passwords stored in deliveries. This key overrides globalPasswordCipherKeyName key when both are defined for the purpose of deliveries password decryption. This key must be in the keystore defined in the Runtime configuration.

Logging

In this part, the default values will be those used for the logs in H2 (the internal base). For other logs examples, please refer to the example files that are provided.

Logging configuration

The following parameters define the overall logging behavior of the runtime.

Parameter Default value Description

debugLevel

0

Debug level in the Runtime

userLogDefaultName

internalDB

Database used for logging. A corresponding log database configuration must exist under the <logs> node.

memoryLogScanDelay

10000

Scan delay of the logs that have been brought back to memory so as to be purged, in milliseconds.

defaultSessionLogLevel

400

Default log level for the sessions. A higher value means that more information is logged. Possible values are: -3, -2, -1, 0, 100, 200, 300, 400.

The defaultSessionLogLevel only applies to sessions on which the log level is not specifically defined manually at execution.

defaultChildSessionLogLevelInheritance

true

This parameter defines whether child sessions should inherit the log level from their parent session by default. This applies only for child sessions started without a log level defined. See Log level Inheritance for more details.

logPurgeBatchSize

Batch size used when performing purge operations on the log database. When this parameter is not specified the purge operations process all rows at once. Specifying a batch size avoids overloading the database for purge operations.

Log database properties

The following properties can be set in the log database definition (<log> node) to configure this database.

Property Default value Description

userLogName

internalDB

Name of the log database. This name is used in the userLogDefaultName runtime parameter to use this database to log by default.

autoUpdate

true

Set to true to automatically update the tables of the log when needed.

userLogClass

com.semarchy.xdi.runtime.sessionlog.RdbmsLogger

Java class used for logging. Do not change this value.

synchMode

synch

Log capture mode:

  • synch: Session logs are captured synchronously. A session logs synchronously all its session logs while progressing with execution.

  • asynch: Session logs are captured asynchronously. Session execution does not wait for logging to complete to proceed.

  • synchFirstLog: The first session log capture is synchronous, then subsequent logs are captured asynchronously.

Log database parameters

The following parameters can be set under a log database definition to configure the storage for this log database.

Parameter Default value Description

userLogRdbmsDriver

org.h2.Driver

Driver used to communicate with the log database storage. This driver should be in the module specified in the userLogRdbmsModule parameter.

userLogRdbmsUrl

jdbc:h2:file:sessions/internalDb/sessionLogs

Connection URL to the log database storage.

userLogRdbmsUser

backend-user

User connecting to the log database storage.

userLogRdbmsPassword

backend-password

User password in clear text.

userLogRdbmsEncryptedPassword

User password, encrypted. Passwords are encrypted using the encrypt <password> command on the Runtime engine console.

userLogRdbmsModule

Module containing the libraries to communicate with the log database storage (typically a JDBC driver).

userLogRdbmsVarcharType

varchar

Type used when the data is a character string.

userLogRdbmsVarcharMaxSize

1000

Maximum length of the character strings with the type defined above.

userLogRdbmsNumericType

numeric

Type used when the data is a numeric.

userLogRdbmsClobType

clob

Type used when the data is textual (CLOB, unlimited text)

userLogRdbmsBlobType

blob

Type used when the data is binary (BLOB)

userLogRdbmsSchemaName

logs Database schema name.

userLogRdbmsUseSchemaNameForIndexCreation

true

Set to true to prefix index created with the log database schema name.

userLogRdbmsDeleteSyntaxe

Delete from

Syntax of the delete commands. The name of the table to delete is added after this string.

userLogRdbmsCompressedLevel

bestCompression

Type of compression used for the log database (if activated). Possible values: bestCompression, bestSpeed or default.

userLogRdbmsDeliveryFormat

compressed

Delivery storage format in the log database. Possible values are text, binary or compressed.

userLogRdbmsPropertyMaxVarcharSize

1000

Size above which character strings should be stored as CLOB.

userLogRdbmsPropertyMaxClobSize

10000

Size above which CLOBs should be stored as BLOB. The value –1 corresponds to an unlimited size.

userLogRdbmsPropertyBinaryFormat

compressed

Specifies the compression of the BLOB. Possible values are binary or compressed.

userLogRdbmsTimestampQuery

select now()

SQL query used to retrieve the current timestamp.

userLogRdbmsInactivityDetectionPeriod

90000

Inactivity detection period.

userLogRdbmsActivityRefreshInterval

60000

Inactivity refresh interval.

userLogRdbmsIndexCreationOption

Clause added after the SQL commands to creates indexes. Use this parameter to specify physical storage parameters such as tablespaces or underlying physical types.

userLogRdbmsTableCreationOption

Clause added after the SQL commands which creates tables. Use this parameter to specify physical storage parameters such as tablespaces or underlying physical types.

userLogRdbmsPoolEnabled

True

Enables the connection pool. The connection pool stores and reuse in memory the opened connection when applicable.

userLogRdbmsPoolConnectionTimeout

30000

Maximum number of milliseconds to wait to establish a connection. The default value is set to 30000 (30 seconds).

userLogRdbmsPoolIdleTimeout

600000

Amount of time in milliseconds allowed for a connection to sit in the pool before being retired. Set to 0 to disable idle connections retirement. The default value is set to 600000 (10 minutes).

userLogRdbmsPoolMaxLifetime

1800000

Maximum lifetime of a connection before it is retired from the pool. The default value is set to 1800000 (30 minutes).

userLogRdbmsPoolKeepAliveTime

0

Frequency of the attempts to keep idle connections alive, to prevent database/network timeout, possibly using a connection test. Set this property to 0 to disable that feature.

userLogRdbmsPoolMinimumIdle

0

Minimum number of idle connections to maintain in the pool.

userLogRdbmsPoolMaximumSize

20

Maximum number of idle and in-use connections in the pool. This property must be greater than the Minimum Idle property. The default value is set to 20.

userLogRdbmsPoolValidationTimeout

5000

Maximum number of milliseconds to wait for a connection test to succeed. The default value is set to 5000 (5 seconds).

userLogRdbmsPoolConnectionTestQuery

SQL query used to test or keep a connection alive. When unset, the Connection.isValid() JDBC method is used.

Log level

The session log level defines the level of information which is logged inside log database for each session executed by the Runtime.

The higher the value is the higher information are logged.
You can find below the different log level values and what level of details can be consulted, depending on the session status.

Log Level Running Sessions Successful Sessions Sessions with Errors

-3

As child session, inherit log level from parent session,
regardless of defaultChildSessionLogLevelInheritance parameter.

-2

Use default session log level as defined in runtime configuration,
regardless of defaultChildSessionLogLevelInheritance parameter.

-1

Not logged

Not logged

Not logged

0

Full details

Not logged

Full details

100

Full details

Session Header and Statistics

Full details

200

Full details

Same as 100 + Process Information and Statistics

Full details

300

Full details

Same as 200 + Actions Information and Statistics

Full details

400

Full details

Full details

Full details

Log level Inheritance

Child sessions started from a parent session without a specific log level may inherit their parent session’s log level, depending on the defaultChildSessionLogLevelInheritance runtime property value.

In addition, you can set the following values for a session’s log level to override the inheritance machnism:

  • -2 forces the session to use the runtime’s defaultSessionLogLevel, ignoring the defaultChildSessionLogLevelInheritance property.

  • -3 forces the session to inherit the parent session’s loglevel, ignoring the defaultChildSessionLogLevelInheritance property.

Miscellaneous parameters

Parameter Default value Description

moduleRefreshMode

dynamic

Defines when Modules are loaded by the runtime:

  • onStartup: The modules are loaded at runtime startup. New or modified modules require a runtime restart to be taken into account.

  • dynamic: Modules are loaded dynamically. New or modified modules automatically reload without a runtime restart.