Quartz 스케줄러는 DB에 Job, Trigger, Calenar 등 스케줄링 정보를 저장하여 영속성을 보장할 수 있다. 이를 위해 Quartz 내부적으로 SQL을 실행하는데, DBMS마다 SQL 문법이나 데이터 타입 처리 방식이 조금씩 다르다.
이 차이를 해결하기 위해 Quartz는 org.quartz.impl.jdbcjobsotre.DriverDelegate 인터페이스를 제공하고, 각 DBMS별 구현체를 지정할 수 있다.
DBMS | driverDelegateClass |
---|---|
기본 (대부분 DB) | org.quartz.impl.jdbcjobstore.StdJDBCDelegate |
Oracle | org.quartz.impl.jdbcjobstore.oracle.OracleDelegate |
PostgreSQL | org.quartz.impl.jdbcjobstore.PostgreSQLDelegate |
MySQL | org.quartz.impl.jdbcjobstore.StdJDBCDelegate |
MSSQL | org.quartz.impl.jdbcjobstore.MSSQLDelegate |
DB2 | org.quartz.impl.jdbcjobstore.DB2v8Delegate |
Sybase | org.quartz.impl.jdbcjobstore.SybaseDelegate |
spring:
quartz:
job-store-type: jdbc
properties:
org:
quartz:
jobStore:
class: org.quartz.impl.jdbcjobstore.JobStoreTX
**driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate**
tablePrefix: QRTZ_
isClustered: true
Tibero는 Oracle 호환 DBMS이지만, Quartz에는 Tibero 전용 Delegate가 존재하지 않는다.
OracleDelegate
를 사용하면 일부 SQL 구문/데이터 타입 호환성 문제가 발생StdJDBCDelegate
사용