Configure DataSources
If you're using JDBC-Jobstore, you'll be needing a Datasource for its use (or two Datasources, if you're using JobStoreCMT).
Datasources can be configured in three ways:
- All pool properties specified in the quartz.properties file, so that Quartz can create the Datasource itself.
- The JNDI location of an application server managed Datasource can be specified, so that Quartz can use it.
- Custom defined org.quartz.utils.ConnectionProvider implementations.
Each datasource you define (typically one or two) must be given a name, and the properties you define for each must contain that name, as shown below. The DataSource's "NAME" can be anything you want, and has no meaning other than being able to identify it when it is assigned to the JDBCJobStore.
Quartz-created Datasources are defined with the following properties:
Property Name |
Required |
Type |
Default Value |
org.quartz.dataSource.NAME.driver |
yes |
String |
null |
org.quartz.dataSource.NAME.URL |
yes |
String |
null |
org.quartz.dataSource.NAME.user |
no |
String |
"" |
org.quartz.dataSource.NAME.password |
no |
String |
"" |
org.quartz.dataSource.NAME.maxConnections |
no |
int |
10 |
org.quartz.dataSource.NAME.validationQuery |
no |
String |
null |
org.quartz.dataSource.NAME.driver
Must be the java class name of the JDBC driver for your database.
org.quartz.dataSource.NAME.URL
The connection URL (host, port, etc.) for connection to your database.
org.quartz.dataSource.NAME.user
The user name to use when connecting to your database.
org.quartz.dataSource.NAME.password
The password to use when connecting to your database.
org.quartz.dataSource.NAME.maxConnections
The maximum number of connections that the DataSource can create in it's pool of connections.
org.quartz.dataSource.NAME.validationQuery
Is an optional SQL query string that the DataSource can use to detect and replace failed/corrupt connections. For example an oracle user might choose "select table_name from user_tables" - which is a query that should never fail - unless the connection is actually bad.
org.quartz.dataSource.myDS.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.myDS.URL = jdbc:oracle:thin:@10.0.1.23:1521:demodb
org.quartz.dataSource.myDS.user = myUser
org.quartz.dataSource.myDS.password = myPassword
org.quartz.dataSource.myDS.maxConnections = 30
References to Application Server Datasources are defined with the following properties:
Property Name |
Required |
Type |
Default Value |
org.quartz.dataSource.NAME.jndiURL |
yes |
String |
null |
org.quartz.dataSource.NAME.java.naming.factory.initial |
no |
String |
null |
org.quartz.dataSource.NAME.java.naming.provider.url |
no |
String |
null |
org.quartz.dataSource.NAME.java.naming.security.principal |
no |
String |
null |
org.quartz.dataSource.NAME.java.naming.security.credentials |
no |
String |
null |
org.quartz.dataSource.NAME.jndiURL
The JNDI URL for a DataSource that is managed by your application server.
org.quartz.dataSource.NAME.java.naming.factory.initial
The (optional) class name of the JNDI InitialContextFactory that you wish to use.
org.quartz.dataSource.NAME.java.naming.provider.url
The (optional) URL for connecting to the JNDI context.
org.quartz.dataSource.NAME.java.naming.security.principal
The (optional) user principal for connecting to the JNDI context.
org.quartz.dataSource.NAME.java.naming.security.credentials
The (optional) user credentials for connecting to the JNDI context.
org.quartz.dataSource.myOtherDS.jndiURL=jdbc/myDataSource
org.quartz.dataSource.myOtherDS.java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory
org.quartz.dataSource.myOtherDS.java.naming.provider.url=ormi:org.quartz.dataSource.myOtherDS.java.naming.security.principal=admin
org.quartz.dataSource.myOtherDS.java.naming.security.credentials=123
Custom ConnectionProvider Implementations
Property Name |
Required |
Type |
Default Value |
org.quartz.dataSource.NAME.connectionProvider.class |
yes |
String (clas name) |
null |
org.quartz.dataSource.NAME.connectionProvider.class
The class name of the ConnectionProvider to use. After instantiating the class, Quartz can automatically set configuration properties on the instance, bean-style.
org.quartz.dataSource.myCustomDS.connectionProvider.class = com.foo.FooConnectionProvider
org.quartz.dataSource.myCustomDS.someStringProperty = someValue
org.quartz.dataSource.myCustomDS.someIntProperty = 5
|