2012-10-15 150 views
0

我正在使用Quartz scheduler版本1.5.2,日程表存儲在MSSQL數據庫中。石英在屬性集羣模式下運行 -爲數據庫服務器配置Quartz

org.quartz.jobStore.selectWithLockSQL = select lock_name from qrtz_locks with (updlock,rowlock) where lock_name=? 

工作正常..迄今爲止! 如果我需要使跨不同數據庫的功能可用 - Postgres,MySQL,Oracle;上述屬性需要改變。

我該如何重寫查詢以跨所有數據庫運行?或者還有其他的方法來實現輕鬆的便攜性嗎?

回答

1

退房org.quartz.jobStore.driverDelegateClass屬性:

司機代表瞭解具體的「方言」的不同的數據庫系統。 [...]

石英支持外的盒子下面數據庫(方言):

  • MSSQL

  • 的PostgreSQL

  • 的WebLogic

  • Oracle

  • 的Cloudscape

  • DB2(V6,V7,V8)

  • HSQLDB

  • Pointbase中

  • 的Sybase

我認識的人也成功地與H2用它和MySQL。

+0

謝謝托馬斯。所以如果我明白了,我需要根據數據庫的類型配置「委託」屬性,而不是修改查詢。我的理解是否正確? –

+0

@WinMan:確切地說。如果標準(默認)不適用於您,請配置不同的代理。我不認爲有任何方法可以直接更改查詢(也可以隨時編寫自己的代理)。 –

+0

@TomaszNurkiewicz:這意味着當我們更改數據庫時,我們仍然必須更改屬性鎖或代理屬性? – Rips