如果您使用JDBC-Jobstore,則需要使用DataSource(或使用兩個DataSource,如果您使用JobStoreCMT)。
DataSources可以通過三種方式進(jìn)行配置:
建議您將Datasource max連接大小配置為至少線程池中的工作線程數(shù)量加上三個。如果您的應(yīng)用程序也頻繁調(diào)用調(diào)度程序API,則可能需要其他連接。如果您使用JobStoreCMT,則“非受管理”數(shù)據(jù)源的最大連接大小應(yīng)至少為4。
您定義的每個DataSource(通常為一個或兩個)必須為一個名稱,并且您為每個定義的屬性必須包含該名稱,如下所示。DataSource的“NAME”可以是任何您想要的,除了能夠在分配給JDBCJobStore之后能夠識別它之外,沒有什么意義。
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.idleConnectionValidationSeconds | no | int | 50 |
org.quartz.dataSource.NAME.validateOnCheckout | no | boolean | false |
org.quartz.dataSource.NAME.discardIdleConnectionsSeconds | no | int | 0 (disabled) |
org.quartz.dataSource.NAME.driver
必須是數(shù)據(jù)庫的JDBC驅(qū)動程序的java類名稱。
org.quartz.dataSource.NAME.URL
連接到數(shù)據(jù)庫的連接URL(主機(jī),端口等)。
org.quartz.dataSource.NAME.user
連接到數(shù)據(jù)庫時要使用的用戶名。
org.quartz.dataSource.NAME.password
連接到數(shù)據(jù)庫時使用的密碼。
org.quartz.dataSource.NAME.maxConnections
DataSource可以在其連接池中創(chuàng)建的最大連接數(shù)。
org.quartz.dataSource.NAME.validationQuery
是可選的SQL查詢字符串,DataSource可用于檢測和替換失敗/損壞的連接。例如,oracle用戶可能會選擇“從user_tables中選擇table_name” - 這是一個不應(yīng)該失敗的查詢 - 除非連接實際上是壞的。
org.quartz.dataSource.NAME.idleConnectionValidationSeconds
空閑連接測試之間的秒數(shù) - 僅在設(shè)置驗證查詢屬性時啟用。默認(rèn)值為50秒。
org.quartz.dataSource.NAME.validateOnCheckout
每次從池中檢索連接時,是否應(yīng)該執(zhí)行數(shù)據(jù)庫sql查詢來驗證連接,以確保它仍然有效。如果為假,則在辦理登機(jī)手續(xù)時將進(jìn)行驗證。默認(rèn)值為false。
org.quartz.dataSource.NAME.discardIdleConnectionsSeconds
它們在空閑之后放棄連接幾秒鐘。0禁用該功能。默認(rèn)值為0。
Quartz定義的DataSource示例
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
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
由應(yīng)用程序服務(wù)器管理的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上下文的(可選)用戶憑據(jù)。
從應(yīng)用程序服務(wù)器引用的數(shù)據(jù)源示例
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:// localhost
org.quartz.dataSource.myOtherDS.java.naming.security.principal = admin
org.quartz.dataSource.myOtherDS.java.naming.security.credentials = 123
Property Name | Required | Type | Default Value |
---|---|---|---|
org.quartz.dataSource.NAME.connectionProvider.class | yes | String (class name) | null |
org.quartz.dataSource.NAME.connectionProvider.class
要使用的ConnectionProvider的類名。實例化之后,Quartz可以自動設(shè)置實例上的配置屬性,bean樣式。
使用自定義ConnectionProvider實現(xiàn)的示例
org.quartz.dataSource.myCustomDS.connectionProvider.class = com.foo.FooConnectionProvider
org.quartz.dataSource.myCustomDS.someStringProperty = someValue
org.quartz.dataSource.myCustomDS.someIntProperty = 5
更多建議: