Quartz DriverDelegateClass

Quartz 스케줄러는 DB에 Job, Trigger, Calenar 등 스케줄링 정보를 저장하여 영속성을 보장할 수 있다. 이를 위해 Quartz 내부적으로 SQL을 실행하는데, DBMS마다 SQL 문법이나 데이터 타입 처리 방식이 조금씩 다르다.

이 차이를 해결하기 위해 Quartz는 org.quartz.impl.jdbcjobsotre.DriverDelegate 인터페이스를 제공하고, 각 DBMS별 구현체를 지정할 수 있다.


주요 구현체와 대상 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 Boot 설정 예시

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에서 driverDelegateClass

Tibero는 Oracle 호환 DBMS이지만, Quartz에는 Tibero 전용 Delegate가 존재하지 않는다.