Quartz配置DataSources

2018-10-02 10:33 更新

配置DataSources

如果您使用JDBC-Jobstore,則需要使用DataSource(或使用兩個DataSource,如果您使用JobStoreCMT)。

DataSources可以通過三種方式進(jìn)行配置:

  1. 在quartz.properties文件中指定的所有池屬性,以便Quartz可以自己創(chuàng)建DataSource。
  2. 可以指定應(yīng)用程序服務(wù)器管理的Datasource的JNDI位置,以便Quartz可以使用它。
  3. 自定義的org.quartz.utils.ConnectionProvider實現(xiàn)。

建議您將Datasource max連接大小配置為至少線程池中的工作線程數(shù)量加上三個。如果您的應(yīng)用程序也頻繁調(diào)用調(diào)度程序API,則可能需要其他連接。如果您使用JobStoreCMT,則“非受管理”數(shù)據(jù)源的最大連接大小應(yīng)至少為4。

您定義的每個DataSource(通常為一個或兩個)必須為一個名稱,并且您為每個定義的屬性必須包含該名稱,如下所示。DataSource的“NAME”可以是任何您想要的,除了能夠在分配給JDBCJobStore之后能夠識別它之外,沒有什么意義。

Property NameRequiredTypeDefault Value
org.quartz.dataSource.NAME.driveryesStringnull
org.quartz.dataSource.NAME.URLyesStringnull
org.quartz.dataSource.NAME.usernoString""
org.quartz.dataSource.NAME.passwordnoString""
org.quartz.dataSource.NAME.maxConnectionsnoint10
org.quartz.dataSource.NAME.validationQuerynoStringnull
org.quartz.dataSource.NAME.idleConnectionValidationSecondsnoint50
org.quartz.dataSource.NAME.validateOnCheckoutnobooleanfalse
org.quartz.dataSource.NAME.discardIdleConnectionsSecondsnoint0 (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

對Application Server DataSources的引用使用以下屬性定義:

Property NameRequiredTypeDefault Value
org.quartz.dataSource.NAME.jndiURLyesStringnull
org.quartz.dataSource.NAME.java.naming.factory.initialnoStringnull
org.quartz.dataSource.NAME.java.naming.provider.urlnoStringnull
org.quartz.dataSource.NAME.java.naming.security.principalnoStringnull
org.quartz.dataSource.NAME.java.naming.security.credentialsnoStringnull

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

自定義ConnectionProvider實現(xiàn)

Property NameRequiredTypeDefault Value
org.quartz.dataSource.NAME.connectionProvider.classyesString (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
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號