十. 配置 Quartz 数据源
如果你在使用 JDBC JobStore,就需定义要用到的数据源。而如果使用的是 JobStoreCMT,你实际上需要定义两个数据源。数据源可由三种方式来配置:
·在 quartz.properties 文件中指定连接池属性,这样 Quartz 能亲自创建数据源。
·指定应用服务器管理的数据源所在 JNDI 的位置,Quartz 直接使用它。
·还可使用自定义的 org.quartz.utils.ConnectionProvider 实现类。
每一个你定义的 datasource 都必须给予一个名称,并且你为它们配置的属性也必须包含这个名称。datasource 的 NAME 可以是你任何想要的;它没有特别的意思,只是用来指定给 JDBC JobStore 时标识 datasource。
当使用 quartz.properties 来定义连接池的所有属性来配置 datasource 时,表 A.6 是可用的属性。
名称 | 必须 | 类型 | 默认值 | |
org.quartz.dataSource.NAME.driver | 是 | String | null | |
org.quartz.dataSource.NAME.URL | 是 | String | null | |
org.quartz.dataSource.NAME.user | 否 | String | "" | |
org.quartz.dataSource.NAME.password | 否 | String | "" | |
org.quartz.dataSource.NAME.maxConnections | 否 | Integer | 10 | |
org.quartz.dataSource.NAME.validationQuery | 否 | String | null |
·org.quartz.dataSource.NAME.driver
必须是你的数据库的 JDBC 驱动的 Java 类名。
·org.quartz.dataSource.NAME.URL
这是连接到你的数据库的 URL(主机、端口等)
·org.quartz.dataSource.NAME.user
用来连接到你的数据库的用户名。
·org.quartz.dataSource.NAME.password
用来连接到你的数据库的密码。
·org.quartz.dataSource.NAME.maxConnections
DataSource 创建的连接池中的最大连接数。
·org.quartz.dataSource.NAME.validationQuery
这是一个可选的 SQL 查询语句,DataSource 用它来检测失败/无用的连接。例如,Oracle 用户可选用 select table_name from user_tables,这个查询永不会失败,除非连接实际是无用的。
当你使用定义在应用服务器中的 Datasource 时,可用的属性如表 A.7 所列。
名称 | 必须 | 类型 | 默认值 | |
org.quartz.dataSource.NAME.jndiURL | 是 | String | null | |
org.quartz.dataSource.NAME.java.naming.factory.initial | 否 | String | null | |
org.quartz.dataSource.NAME.java.naming.provider.url | 否 | String | null | |
org.quartz.dataSource.NAME.java.naming.security.principal | 否 | String | null | |
org.quartz.dataSource.NAME.java.naming.security.credentials | 否 | String | null |
·org.quartz.dataSource.NAME.jndiURL
这是受容器管理的 DataSource 的 JNDI URL。
·org.quartz.dataSource.NAME.java.naming.factory.initial
可选,你希望使用的 JNDI InitialContextFactory 类名。
·org.quartz.dataSource.NAME.java.naming.provider.url
可选,用来连接到 JNDI 上下文的 URL。
·org.quartz.dataSource.NAME.java.naming.security.principal
可选,连接到 JNDI 上下文的用户名。
·org.quartz.dataSource.NAME.java.naming.security.credentials
可选,连接到 JNDI 上下文的用户凭证。
十一. 使用自定义的 ConnectionProvider 配置数据源
自 Quartz 1.5.1 开始,你可以创建一个自定义的 ConnectionProvider,并在属性文件中提供类名来配置 Quartz 使用它。
org.quartz.dataSource.myConnProvider.connectionProvider.class = com.foo.MyConnectionProvider
初始化该类后,Quartz 就能自动以 Bean 风格来设置实例的属性。
org.quartz.dataSource.myConnProvider.someStringProperty = someValue
org.quartz.dataSource.myConnProvider.someIntProperty = 5