Configure the Runtime Built-in Scheduler
The scheduler built in the runtime stores all the schedules into a database.
The default backend database is an HSQL database built into the runtime, and provides a ready-to-use quickstart configuration.
The built-in HSQL database is, by default, only accessible from the runtime itself, and is NOT recommended for production use. For production use, we recommend using the Certified Database Servers. |
Configure the scheduler
To configure the runtime scheduler:
-
Prepare the database:
-
Create in the database of your choice (See Certified Database Servers.) the necessary schema/database to host the schedules, as well as the database user to access this storage.
-
Manually create the scheduler tables in the target database/schema using the script corresponding to your database technology. The script is in the
/scripts/scheduler
folder of the runtime installation directory.
-
-
Configure the
properties/engineParameters.xml
file as explained below. -
Restart the runtime.
The above steps are necessary to configure the scheduler storage to your database. If you are using the default runtime configuration, the schedules are stored in an HSQL database built in the runtime. See Built-in HSQL database. |
<parameters>
<...>
<scheduler>
<!-- Main properties -->
<parameter name="org.quartz.scheduler.instanceName" value="RUNTIME_HSQL_STD"/>
<parameter name="org.quartz.scheduler.instanceId" value="RUNTIME_HSQL_STD"/>
<!-- Configure ThreadPool -->
<parameter name="org.quartz.threadPool.class" value="org.quartz.simpl.SimpleThreadPool"/>
<parameter name="org.quartz.threadPool.threadCount" value="3"/>
<!-- Configure Jobstore -->
<parameter name="org.quartz.jobStore.misfireThreshold" value="10000"/>
<parameter name="org.quartz.jobStore.class" value="org.quartz.impl.jdbcjobstore.JobStoreTX"/>
<parameter name="org.quartz.jobStore.driverDelegateClass" value="org.quartz.impl.jdbcjobstore.StdJDBCDelegate"/>
<parameter name="org.quartz.jobStore.useProperties" value="false"/>
<parameter name="org.quartz.jobStore.dataSource" value="internal"/>
<parameter name="org.quartz.jobStore.tablePrefix" value="STB_"/>
<parameter name="org.quartz.jobStore.isClustered" value="false"/>
<!-- Configure Datasources --> (1)
<parameter name="org.quartz.dataSource.internal.driver" value="org.hsqldb.jdbcDriver"/>
<parameter name="org.quartz.dataSource.internal.URL" value="jdbc:hsqldb:file:internalDb/scheduler/scheduler"/>
<parameter name="org.quartz.dataSource.internal.user" value="backend-user"/>
<parameter name="org.quartz.dataSource.internal.password" value="backend-password"/>
<parameter name="org.quartz.dataSource.internal.connectionProvider.class" value="com.indy.engine.scheduler.XdiQuartzConnectionProvider"/>
<parameter name="org.quartz.dataSource.internal.maxConnections" value="5"/>
<parameter name="org.quartz.dataSource.internal.module" value="internal"/>
<...> (2)
</scheduler>
<...>
</parameters>
1 | Configure the scheduler parameters to your database. |
2 | The runtime is using quartz as the scheduler. You can add or modify any other quartz parameters in this configuration. |
For the Runtime to communicate with the database hosting your schedules, you must install that database’s JDBC driver and libraries in the Runtime Module that you specified in the org.quartz.dataSource.internal.module parameter.
|
The org.quartz.jobStore.misfireThreshold property defines the number of milliseconds to wait after a delivery schedule gets misfired, before considering the next schedules of this delivery. For example, if a delivery schedule is misfired because another one was still running, the scheduler will wait this amount of time before considering the next schedules for this delivery.
|
Legacy configuration file
Previous versions of Runtime used an engineScheduler.properties
file to store scheduler configuration information. Runtime still supports this file for compatibility purposes.
To use an engineScheduler.properties
file from previous Runtime versions:
-
Remove the
<scheduler></scheduler>
section from theengineParameters.xml
file -
Add your
engineScheduler.properties
file to theproperties
directory in the Runtime installation directory.
Support for this file may be removed in future releases. |