32 | 50 |
51 |

Spring Quartz分布式定时任务

52 |

Spring整合Quartz基于数据库的分布式定时任务,可动态添加、删除、修改定时任务。

53 |
-------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/input-schedule-job.vm: -------------------------------------------------------------------------------- 1 | #include("top.vm") 2 |
3 | 4 | 5 | 6 |
7 | 8 |
9 | 10 |
11 |
12 | 13 |
14 | 15 |
16 | 17 |
18 |
19 | 20 |
21 | 22 |
23 | 24 |
25 |
26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 | 36 |
37 | 同步 38 | 异步 39 |
40 |
41 | 42 |
43 | 44 |
45 | 46 |
47 |
48 | 49 |
50 | 51 |
52 | 53 |
54 |
55 | 56 |
57 |
58 | 59 | 返回 60 |
61 |
62 | 63 |
64 | #include("foot.vm") -------------------------------------------------------------------------------- /src/main/webapp/WEB-INF/list-schedule-job.vm: -------------------------------------------------------------------------------- 1 | #include("top.vm") 2 | 添加任务 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | #foreach($item in $scheduleJobVoList) 17 | 18 | 19 | 20 | 21 | 22 | #if ($!{item.status}=="PAUSED") 23 | 24 | #else 25 | 26 | #end 27 | 28 | 35 | 36 | 37 | 50 | 51 | #end 52 |
任务名称任务别名任务分组触发器任务状态时间表达式是否异步任务执行url任务描述操作
$!{item.jobName}$!{item.aliasName}$!{item.jobGroup}$!{item.jobTrigger}$!{item.status}$!{item.status}$!{item.cronExpression} 29 | #if ($!{item.isSync}) 30 | 异步 31 | #else 32 | 同步 33 | #end 34 | $!{item.url}$!{item.description} 38 | 39 | 暂停 41 | 恢复 43 | 运行一次 45 | 修改 47 | 删除 49 |
53 |

运行中的任务

54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | #foreach($item in $executingJobList) 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | #end 79 |
任务名称任务别名任务分组触发器任务状态时间表达式是否异步任务执行url任务描述
$!{item.jobName}$!{item.aliasName}$!{item.jobGroup}$!{item.jobTrigger}$!{item.status}$!{item.cronExpression}$!{item.isSync}$!{item.url}$!{item.description}
80 | #include("foot.vm") -------------------------------------------------------------------------------- /src/main/resources/quartz.properties: -------------------------------------------------------------------------------- 1 | #============================================================================ 2 | # Configure Main Scheduler Properties 3 | #============================================================================ 4 | 5 | org.quartz.scheduler.instanceName: MyClusteredScheduler 6 | org.quartz.scheduler.instanceId: AUTO 7 | 8 | org.quartz.scheduler.skipUpdateCheck: true 9 | 10 | #============================================================================ 11 | # Configure ThreadPool 12 | #============================================================================ 13 | 14 | org.quartz.threadPool.class: org.quartz.simpl.SimpleThreadPool 15 | org.quartz.threadPool.threadCount: 5 16 | org.quartz.threadPool.threadPriority: 5 17 | 18 | #============================================================================ 19 | # Configure JobStore 20 | #============================================================================ 21 | 22 | org.quartz.jobStore.misfireThreshold: 60000 23 | 24 | org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX 25 | org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate 26 | org.quartz.jobStore.useProperties=false 27 | org.quartz.jobStore.dataSource=myDS 28 | org.quartz.jobStore.tablePrefix=QRTZ_ 29 | org.quartz.jobStore.isClustered=true 30 | 31 | #============================================================================ 32 | # Other Example Delegates 33 | #============================================================================ 34 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v6Delegate 35 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DB2v7Delegate 36 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.DriverDelegate 37 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.HSQLDBDelegate 38 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.MSSQLDelegate 39 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PointbaseDelegate 40 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.PostgreSQLDelegate 41 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate 42 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.WebLogicDelegate 43 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate 44 | #org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.WebLogicOracleDelegate 45 | 46 | #============================================================================ 47 | # Configure Datasources 48 | #============================================================================ 49 | 50 | org.quartz.dataSource.myDS.driver: com.mysql.jdbc.Driver 51 | org.quartz.dataSource.myDS.URL: jdbc:mysql://192.168.99.122:3306/quartz 52 | org.quartz.dataSource.myDS.user: root 53 | org.quartz.dataSource.myDS.password: root 54 | org.quartz.dataSource.myDS.maxConnections: 5 55 | org.quartz.dataSource.myDS.validationQuery: select 0 56 | 57 | #============================================================================ 58 | # Configure Plugins 59 | #============================================================================ 60 | 61 | #org.quartz.plugin.shutdownHook.class: org.quartz.plugins.management.ShutdownHookPlugin 62 | #org.quartz.plugin.shutdownHook.cleanShutdown: true 63 | 64 | 65 | #org.quartz.plugin.triggHistory.class: org.quartz.plugins.history.LoggingJobHistoryPlugin 66 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 4.0.0 6 | 7 | net.aimeizi 8 | spring-quartz-cluster-sample 9 | 1.0 10 | war 11 | http://maven.apache.org 12 | 13 | 14 | UTF-8 15 | 1.4 16 | 5.1.25 17 | 3.1.3.RELEASE 18 | 2.2.1 19 | 1.7.2 20 | 1.6.6 21 | 22 | 23 | 24 | 25 | 26 | com.dexcoder 27 | dexcoder-dal-spring 28 | 2.3.1 29 | 30 | 31 | 32 | mysql 33 | mysql-connector-java 34 | ${mysql.version} 35 | 36 | 37 | 38 | commons-dbcp 39 | commons-dbcp 40 | ${commons.dbcp.version} 41 | 42 | 43 | 44 | org.springframework 45 | spring-jdbc 46 | ${spring.version} 47 | 48 | 49 | 50 | org.springframework 51 | spring-aspects 52 | ${spring.version} 53 | 54 | 55 | 56 | org.springframework 57 | spring-webmvc 58 | ${spring.version} 59 | 60 | 61 | 62 | org.aspectj 63 | aspectjweaver 64 | ${aspectj.version} 65 | 66 | 67 | 68 | org.apache.velocity 69 | velocity 70 | 1.6.2 71 | 72 | 73 | 74 | org.quartz-scheduler 75 | quartz 76 | ${quartz.version} 77 | 78 | 79 | 80 | org.slf4j 81 | slf4j-log4j12 82 | ${slf4j-log4j12.version} 83 | 84 | 85 | 86 | org.apache.httpcomponents 87 | httpclient 88 | 4.5 89 | 90 | 91 | 92 | 93 | 94 | spring-quartz-cluster-sample 95 | 96 | 97 | org.apache.tomcat.maven 98 | tomcat7-maven-plugin 99 | 2.2 100 | 101 | 9090 102 | 103 | 104 | 105 | 106 | 107 | -------------------------------------------------------------------------------- /src/main/java/net/aimeizi/quartz/vo/ScheduleJobVo.java: -------------------------------------------------------------------------------- 1 | package net.aimeizi.quartz.vo; 2 | 3 | import com.dexcoder.commons.pager.Pageable; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * author : fengjing 9 | * createTime : 2016-08-04 10 | * description : 定时任务模型Vo 11 | * version : 1.0 12 | */ 13 | public class ScheduleJobVo extends Pageable { 14 | 15 | private static final long serialVersionUID = -4216107640768329946L; 16 | 17 | /** 任务调度的参数key */ 18 | public static final String JOB_PARAM_KEY = "jobParam"; 19 | 20 | /** 任务id */ 21 | private Long scheduleJobId; 22 | 23 | /** 任务名称 */ 24 | private String jobName; 25 | 26 | /** 任务别名 */ 27 | private String aliasName; 28 | 29 | /** 任务分组 */ 30 | private String jobGroup; 31 | 32 | /** 触发器 */ 33 | private String jobTrigger; 34 | 35 | /** 任务状态 */ 36 | private String status; 37 | 38 | /** 任务运行时间表达式 */ 39 | private String cronExpression; 40 | 41 | /** 是否异步 */ 42 | private Boolean isSync; 43 | 44 | /** 任务描述 */ 45 | private String description; 46 | 47 | /** 创建时间 */ 48 | private Date gmtCreate; 49 | 50 | /** 修改时间 */ 51 | private Date gmtModify; 52 | 53 | /** 任务执行url */ 54 | private String url; 55 | 56 | public Long getScheduleJobId() { 57 | return scheduleJobId; 58 | } 59 | 60 | public void setScheduleJobId(Long scheduleJobId) { 61 | this.scheduleJobId = scheduleJobId; 62 | } 63 | 64 | public String getJobName() { 65 | return jobName; 66 | } 67 | 68 | public void setJobName(String jobName) { 69 | this.jobName = jobName; 70 | } 71 | 72 | public String getAliasName() { 73 | return aliasName; 74 | } 75 | 76 | public void setAliasName(String aliasName) { 77 | this.aliasName = aliasName; 78 | } 79 | 80 | public String getJobGroup() { 81 | return jobGroup; 82 | } 83 | 84 | public void setJobGroup(String jobGroup) { 85 | this.jobGroup = jobGroup; 86 | } 87 | 88 | public String getJobTrigger() { 89 | return jobTrigger; 90 | } 91 | 92 | public void setJobTrigger(String jobTrigger) { 93 | this.jobTrigger = jobTrigger; 94 | } 95 | 96 | public String getStatus() { 97 | return status; 98 | } 99 | 100 | public void setStatus(String status) { 101 | this.status = status; 102 | } 103 | 104 | public String getCronExpression() { 105 | return cronExpression; 106 | } 107 | 108 | public void setCronExpression(String cronExpression) { 109 | this.cronExpression = cronExpression; 110 | } 111 | 112 | public String getDescription() { 113 | return description; 114 | } 115 | 116 | public void setDescription(String description) { 117 | this.description = description; 118 | } 119 | 120 | public Date getGmtCreate() { 121 | return gmtCreate; 122 | } 123 | 124 | public void setGmtCreate(Date gmtCreate) { 125 | this.gmtCreate = gmtCreate; 126 | } 127 | 128 | public Date getGmtModify() { 129 | return gmtModify; 130 | } 131 | 132 | public void setGmtModify(Date gmtModify) { 133 | this.gmtModify = gmtModify; 134 | } 135 | 136 | public Boolean getIsSync() { 137 | return isSync; 138 | } 139 | 140 | public void setIsSync(Boolean isSync) { 141 | this.isSync = isSync; 142 | } 143 | 144 | public String getUrl() { 145 | return url; 146 | } 147 | 148 | public void setUrl(String url) { 149 | this.url = url; 150 | } 151 | } 152 | -------------------------------------------------------------------------------- /src/main/resources/applicationContext.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 20 | 21 | ${driverClassName} 22 | 23 | 24 | ${jdbcUrl} 25 | 26 | 27 | ${username} 28 | 29 | 30 | ${password} 31 | 32 | 33 | ${initialSize} 34 | 35 | 36 | ${maxActive} 37 | 38 | 39 | ${maxIdle} 40 | 41 | 42 | ${maxWait} 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | ${jdbcTemplate.fetchSize} 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | ClusterScheduler 64 | AUTO 65 | 66 | org.quartz.simpl.SimpleThreadPool 67 | 20 68 | 5 69 | 70 | org.quartz.impl.jdbcjobstore.JobStoreTX 71 | 72 | 73 | true 74 | 15000 75 | 1 76 | 77 | 120000 78 | 79 | QRTZ_ 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | -------------------------------------------------------------------------------- /src/main/java/net/aimeizi/quartz/controller/ScheduleJobController.java: -------------------------------------------------------------------------------- 1 | package net.aimeizi.quartz.controller; 2 | 3 | import java.util.List; 4 | 5 | import org.apache.commons.lang.StringUtils; 6 | import org.springframework.beans.factory.annotation.Autowired; 7 | import org.springframework.stereotype.Controller; 8 | import org.springframework.ui.ModelMap; 9 | import org.springframework.web.bind.annotation.RequestMapping; 10 | import org.springframework.web.bind.annotation.RequestMethod; 11 | 12 | import net.aimeizi.quartz.service.ScheduleJobService; 13 | import net.aimeizi.quartz.vo.ScheduleJobVo; 14 | 15 | /** 16 | * author : fengjing 17 | * createTime : 2016-08-04 18 | * description : 定时任务控制器 19 | * version : 1.0 20 | */ 21 | @Controller 22 | public class ScheduleJobController { 23 | 24 | /** job service */ 25 | @Autowired 26 | private ScheduleJobService scheduleJobService; 27 | 28 | /** 29 | * 任务页面 30 | * 31 | * @return 32 | */ 33 | @RequestMapping(value = "input-schedule-job", method = RequestMethod.GET) 34 | public String inputScheduleJob(ScheduleJobVo scheduleJobVo, ModelMap modelMap) { 35 | 36 | if (scheduleJobVo.getScheduleJobId() != null) { 37 | ScheduleJobVo scheduleJob = scheduleJobService.get(scheduleJobVo.getScheduleJobId()); 38 | scheduleJob.setKeywords(scheduleJobVo.getKeywords()); 39 | modelMap.put("scheduleJobVo", scheduleJob); 40 | } 41 | 42 | return "input-schedule-job"; 43 | } 44 | 45 | /** 46 | * 删除任务 47 | * 48 | * @return 49 | */ 50 | @RequestMapping(value = "delete-schedule-job", method = RequestMethod.GET) 51 | public String deleteScheduleJob(Long scheduleJobId) { 52 | 53 | scheduleJobService.delete(scheduleJobId); 54 | 55 | return "redirect:list-schedule-job.shtml"; 56 | } 57 | 58 | /** 59 | * 运行一次 60 | * 61 | * @return 62 | */ 63 | @RequestMapping(value = "run-once-schedule-job", method = RequestMethod.GET) 64 | public String runOnceScheduleJob(Long scheduleJobId) { 65 | 66 | scheduleJobService.runOnce(scheduleJobId); 67 | 68 | return "redirect:list-schedule-job.shtml"; 69 | } 70 | 71 | /** 72 | * 暂停 73 | * 74 | * @return 75 | */ 76 | @RequestMapping(value = "pause-schedule-job", method = RequestMethod.GET) 77 | public String pauseScheduleJob(Long scheduleJobId) { 78 | scheduleJobService.pauseJob(scheduleJobId); 79 | return "redirect:list-schedule-job.shtml"; 80 | } 81 | 82 | /** 83 | * 恢复 84 | * 85 | * @return 86 | */ 87 | @RequestMapping(value = "resume-schedule-job", method = RequestMethod.GET) 88 | public String resumeScheduleJob(Long scheduleJobId) { 89 | scheduleJobService.resumeJob(scheduleJobId); 90 | return "redirect:list-schedule-job.shtml"; 91 | } 92 | 93 | /** 94 | * 保存任务 95 | * 96 | * @param scheduleJobVo 97 | * @return 98 | */ 99 | @RequestMapping(value = "save-schedule-job", method = RequestMethod.POST) 100 | public String saveScheduleJob(ScheduleJobVo scheduleJobVo) { 101 | 102 | //测试用随便设个状态 103 | scheduleJobVo.setStatus("1"); 104 | 105 | if (scheduleJobVo.getScheduleJobId() == null) { 106 | scheduleJobService.insert(scheduleJobVo); 107 | } else if (StringUtils.equalsIgnoreCase(scheduleJobVo.getKeywords(),"delUpdate")){ 108 | //直接拿keywords存一下,就不另外重新弄了 109 | scheduleJobService.delUpdate(scheduleJobVo); 110 | }else { 111 | scheduleJobService.update(scheduleJobVo); 112 | } 113 | return "redirect:list-schedule-job.shtml"; 114 | } 115 | 116 | /** 117 | * 任务列表页 118 | * 119 | * @param modelMap 120 | * @return 121 | */ 122 | @RequestMapping(value = "list-schedule-job", method = RequestMethod.GET) 123 | public String listScheduleJob(ScheduleJobVo scheduleJobVo, ModelMap modelMap) { 124 | 125 | List scheduleJobVoList = scheduleJobService.queryList(scheduleJobVo); 126 | modelMap.put("scheduleJobVoList", scheduleJobVoList); 127 | 128 | List executingJobList = scheduleJobService.queryExecutingJobList(); 129 | modelMap.put("executingJobList", executingJobList); 130 | 131 | return "list-schedule-job"; 132 | } 133 | 134 | } 135 | -------------------------------------------------------------------------------- /src/main/java/net/aimeizi/quartz/model/ScheduleJob.java: -------------------------------------------------------------------------------- 1 | package net.aimeizi.quartz.model; 2 | 3 | import java.util.Date; 4 | 5 | import com.dexcoder.commons.pager.Pageable; 6 | 7 | /** 8 | * author : fengjing 9 | * createTime : 2016-08-04 10 | * description : 计划任务模型 11 | * version : 1.0 12 | */ 13 | public class ScheduleJob extends Pageable { 14 | 15 | private static final long serialVersionUID = 4888005949821878223L; 16 | 17 | /** 任务id */ 18 | private Long scheduleJobId; 19 | 20 | /** 任务名称 */ 21 | private String jobName; 22 | 23 | /** 任务别名 */ 24 | private String aliasName; 25 | 26 | /** 任务分组 */ 27 | private String jobGroup; 28 | 29 | /** 触发器 */ 30 | private String jobTrigger; 31 | 32 | /** 任务状态 */ 33 | private String status; 34 | 35 | /** 任务运行时间表达式 */ 36 | private String cronExpression; 37 | 38 | /** 是否异步 */ 39 | private Boolean isSync; 40 | 41 | /** 任务描述 */ 42 | private String description; 43 | 44 | /** 创建时间 */ 45 | private Date gmtCreate; 46 | 47 | /** 修改时间 */ 48 | private Date gmtModify; 49 | 50 | /** 任务执行url */ 51 | private String url; 52 | 53 | public Long getScheduleJobId() { 54 | return scheduleJobId; 55 | } 56 | 57 | public void setScheduleJobId(Long scheduleJobId) { 58 | this.scheduleJobId = scheduleJobId; 59 | } 60 | 61 | public String getJobName() { 62 | return jobName; 63 | } 64 | 65 | public void setJobName(String jobName) { 66 | this.jobName = jobName; 67 | } 68 | 69 | public String getAliasName() { 70 | return aliasName; 71 | } 72 | 73 | public void setAliasName(String aliasName) { 74 | this.aliasName = aliasName; 75 | } 76 | 77 | public String getJobGroup() { 78 | return jobGroup; 79 | } 80 | 81 | public void setJobGroup(String jobGroup) { 82 | this.jobGroup = jobGroup; 83 | } 84 | 85 | public String getJobTrigger() { 86 | return jobTrigger; 87 | } 88 | 89 | public void setJobTrigger(String jobTrigger) { 90 | this.jobTrigger = jobTrigger; 91 | } 92 | 93 | public String getStatus() { 94 | return status; 95 | } 96 | 97 | public void setStatus(String status) { 98 | this.status = status; 99 | } 100 | 101 | public String getCronExpression() { 102 | return cronExpression; 103 | } 104 | 105 | public void setCronExpression(String cronExpression) { 106 | this.cronExpression = cronExpression; 107 | } 108 | 109 | public Boolean getIsSync() { 110 | return isSync; 111 | } 112 | 113 | public void setIsSync(Boolean isSync) { 114 | this.isSync = isSync; 115 | } 116 | 117 | public String getDescription() { 118 | return description; 119 | } 120 | 121 | public void setDescription(String description) { 122 | this.description = description; 123 | } 124 | 125 | public Date getGmtCreate() { 126 | return gmtCreate; 127 | } 128 | 129 | public void setGmtCreate(Date gmtCreate) { 130 | this.gmtCreate = gmtCreate; 131 | } 132 | 133 | public Date getGmtModify() { 134 | return gmtModify; 135 | } 136 | 137 | public void setGmtModify(Date gmtModify) { 138 | this.gmtModify = gmtModify; 139 | } 140 | 141 | public String getUrl() { 142 | return url; 143 | } 144 | 145 | public void setUrl(String url) { 146 | this.url = url; 147 | } 148 | 149 | @Override 150 | public String toString() { 151 | return "ScheduleJob{" + 152 | "scheduleJobId=" + scheduleJobId + 153 | ", jobName='" + jobName + '\'' + 154 | ", aliasName='" + aliasName + '\'' + 155 | ", jobGroup='" + jobGroup + '\'' + 156 | ", jobTrigger='" + jobTrigger + '\'' + 157 | ", status='" + status + '\'' + 158 | ", cronExpression='" + cronExpression + '\'' + 159 | ", isSync=" + isSync + 160 | ", description='" + description + '\'' + 161 | ", gmtCreate=" + gmtCreate + 162 | ", gmtModify=" + gmtModify + 163 | ", url='" + url + '\'' + 164 | '}'; 165 | } 166 | } 167 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_db2_v95.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE QRTZ_FIRED_TRIGGERS; 2 | DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; 3 | DROP TABLE QRTZ_SCHEDULER_STATE; 4 | DROP TABLE QRTZ_LOCKS; 5 | DROP TABLE QRTZ_SIMPLE_TRIGGERS; 6 | DROP TABLE QRTZ_SIMPROP_TRIGGERS; 7 | DROP TABLE QRTZ_CRON_TRIGGERS; 8 | DROP TABLE QRTZ_TRIGGERS; 9 | DROP TABLE QRTZ_JOB_DETAILS; 10 | DROP TABLE QRTZ_CALENDARS; 11 | DROP TABLE QRTZ_BLOB_TRIGGERS; 12 | 13 | create table qrtz_job_details( 14 | sched_name varchar(120) not null, 15 | job_name varchar(80) not null, 16 | job_group varchar(80) not null, 17 | description varchar(120), 18 | job_class_name varchar(128) not null, 19 | is_durable integer not null, 20 | is_nonconcurrent integer not null, 21 | is_update_data integer not null, 22 | requests_recovery integer not null, 23 | job_data blob(2000), 24 | primary key (sched_name,job_name,job_group) 25 | ); 26 | 27 | create table qrtz_triggers( 28 | sched_name varchar(120) not null, 29 | trigger_name varchar(80) not null, 30 | trigger_group varchar(80) not null, 31 | job_name varchar(80) not null, 32 | job_group varchar(80) not null, 33 | description varchar(120), 34 | next_fire_time bigint, 35 | prev_fire_time bigint, 36 | priority integer, 37 | trigger_state varchar(16) not null, 38 | trigger_type varchar(8) not null, 39 | start_time bigint not null, 40 | end_time bigint, 41 | calendar_name varchar(80), 42 | misfire_instr smallint, 43 | job_data blob(2000), 44 | primary key (sched_name,trigger_name,trigger_group), 45 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 46 | ); 47 | 48 | create table qrtz_simple_triggers( 49 | sched_name varchar(120) not null, 50 | trigger_name varchar(80) not null, 51 | trigger_group varchar(80) not null, 52 | repeat_count bigint not null, 53 | repeat_interval bigint not null, 54 | times_triggered bigint not null, 55 | primary key (sched_name,trigger_name,trigger_group), 56 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 57 | ); 58 | 59 | create table qrtz_cron_triggers( 60 | sched_name varchar(120) not null, 61 | trigger_name varchar(80) not null, 62 | trigger_group varchar(80) not null, 63 | cron_expression varchar(120) not null, 64 | time_zone_id varchar(80), 65 | primary key (sched_name,trigger_name,trigger_group), 66 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 67 | ); 68 | 69 | CREATE TABLE qrtz_simprop_triggers 70 | ( 71 | sched_name varchar(120) not null, 72 | TRIGGER_NAME VARCHAR(200) NOT NULL, 73 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 74 | STR_PROP_1 VARCHAR(512), 75 | STR_PROP_2 VARCHAR(512), 76 | STR_PROP_3 VARCHAR(512), 77 | INT_PROP_1 INT, 78 | INT_PROP_2 INT, 79 | LONG_PROP_1 BIGINT, 80 | LONG_PROP_2 BIGINT, 81 | DEC_PROP_1 NUMERIC(13,4), 82 | DEC_PROP_2 NUMERIC(13,4), 83 | BOOL_PROP_1 VARCHAR(1), 84 | BOOL_PROP_2 VARCHAR(1), 85 | PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), 86 | FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) 87 | REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) 88 | ); 89 | 90 | create table qrtz_blob_triggers( 91 | sched_name varchar(120) not null, 92 | trigger_name varchar(80) not null, 93 | trigger_group varchar(80) not null, 94 | blob_data blob(2000), 95 | primary key (sched_name,trigger_name,trigger_group), 96 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 97 | ); 98 | 99 | create table qrtz_calendars( 100 | sched_name varchar(120) not null, 101 | calendar_name varchar(80) not null, 102 | calendar blob(2000) not null, 103 | primary key (calendar_name) 104 | ); 105 | 106 | create table qrtz_fired_triggers( 107 | sched_name varchar(120) not null, 108 | entry_id varchar(95) not null, 109 | trigger_name varchar(80) not null, 110 | trigger_group varchar(80) not null, 111 | instance_name varchar(80) not null, 112 | fired_time bigint not null, 113 | sched_time bigint not null, 114 | priority integer not null, 115 | state varchar(16) not null, 116 | job_name varchar(80), 117 | job_group varchar(80), 118 | is_nonconcurrent integer, 119 | requests_recovery integer, 120 | primary key (sched_name,entry_id) 121 | ); 122 | 123 | create table qrtz_paused_trigger_grps( 124 | sched_name varchar(120) not null, 125 | trigger_group varchar(80) not null, 126 | primary key (sched_name,trigger_group) 127 | ); 128 | 129 | create table qrtz_scheduler_state( 130 | sched_name varchar(120) not null, 131 | instance_name varchar(80) not null, 132 | last_checkin_time bigint not null, 133 | checkin_interval bigint not null, 134 | primary key (sched_name,instance_name) 135 | ); 136 | 137 | create table qrtz_locks( 138 | sched_name varchar(120) not null, 139 | lock_name varchar(40) not null, 140 | primary key (sched_name,lock_name) 141 | ); 142 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_derby_previous.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- Apache Derby scripts by Steve Stewart. 3 | -- Based on Srinivas Venkatarangaiah's file for Cloudscape 4 | -- 5 | -- In your Quartz properties file, you'll need to set 6 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate 7 | -- 8 | -- Known to work with Apache Derby 10.0.2.1 9 | -- 10 | 11 | create table qrtz_job_details ( 12 | sched_name varchar(120) not null, 13 | job_name varchar(200) not null, 14 | job_group varchar(200) not null, 15 | description varchar(250) , 16 | job_class_name varchar(250) not null, 17 | is_durable varchar(5) not null, 18 | is_nonconcurrent varchar(5) not null, 19 | is_update_data varchar(5) not null, 20 | requests_recovery varchar(5) not null, 21 | job_data blob, 22 | primary key (sched_name,job_name,job_group) 23 | ); 24 | 25 | create table qrtz_triggers ( 26 | sched_name varchar(120) not null, 27 | trigger_name varchar(200) not null, 28 | trigger_group varchar(200) not null, 29 | job_name varchar(200) not null, 30 | job_group varchar(200) not null, 31 | description varchar(250) , 32 | next_fire_time bigint, 33 | prev_fire_time bigint, 34 | priority integer, 35 | trigger_state varchar(16) not null, 36 | trigger_type varchar(8) not null, 37 | start_time bigint not null, 38 | end_time bigint, 39 | calendar_name varchar(200), 40 | misfire_instr smallint, 41 | job_data blob, 42 | primary key (sched_name,trigger_name,trigger_group), 43 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 44 | ); 45 | 46 | create table qrtz_simple_triggers ( 47 | sched_name varchar(120) not null, 48 | trigger_name varchar(200) not null, 49 | trigger_group varchar(200) not null, 50 | repeat_count bigint not null, 51 | repeat_interval bigint not null, 52 | times_triggered bigint not null, 53 | primary key (sched_name,trigger_name,trigger_group), 54 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 55 | ); 56 | 57 | create table qrtz_cron_triggers ( 58 | sched_name varchar(120) not null, 59 | trigger_name varchar(200) not null, 60 | trigger_group varchar(200) not null, 61 | cron_expression varchar(120) not null, 62 | time_zone_id varchar(80), 63 | primary key (sched_name,trigger_name,trigger_group), 64 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 65 | ); 66 | 67 | create table qrtz_simprop_triggers 68 | ( 69 | sched_name varchar(120) not null, 70 | trigger_name varchar(200) not null, 71 | trigger_group varchar(200) not null, 72 | str_prop_1 varchar(512), 73 | str_prop_2 varchar(512), 74 | str_prop_3 varchar(512), 75 | int_prop_1 int, 76 | int_prop_2 int, 77 | long_prop_1 bigint, 78 | long_prop_2 bigint, 79 | dec_prop_1 numeric(13,4), 80 | dec_prop_2 numeric(13,4), 81 | bool_prop_1 varchar(5), 82 | bool_prop_2 varchar(5), 83 | primary key (sched_name,trigger_name,trigger_group), 84 | foreign key (sched_name,trigger_name,trigger_group) 85 | references qrtz_triggers(sched_name,trigger_name,trigger_group) 86 | ); 87 | 88 | create table qrtz_blob_triggers ( 89 | sched_name varchar(120) not null, 90 | trigger_name varchar(200) not null, 91 | trigger_group varchar(200) not null, 92 | blob_data blob , 93 | primary key (sched_name,trigger_name,trigger_group), 94 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 95 | ); 96 | 97 | create table qrtz_calendars ( 98 | sched_name varchar(120) not null, 99 | calendar_name varchar(200) not null, 100 | calendar blob not null, 101 | primary key (sched_name,calendar_name) 102 | ); 103 | 104 | create table qrtz_paused_trigger_grps ( 105 | sched_name varchar(120) not null, 106 | trigger_group varchar(200) not null, 107 | primary key (sched_name,trigger_group) 108 | ); 109 | 110 | create table qrtz_fired_triggers ( 111 | sched_name varchar(120) not null, 112 | entry_id varchar(95) not null, 113 | trigger_name varchar(200) not null, 114 | trigger_group varchar(200) not null, 115 | instance_name varchar(200) not null, 116 | fired_time bigint not null, 117 | sched_time bigint not null, 118 | priority integer not null, 119 | state varchar(16) not null, 120 | job_name varchar(200), 121 | job_group varchar(200), 122 | is_nonconcurrent varchar(5), 123 | requests_recovery varchar(5), 124 | primary key (sched_name,entry_id) 125 | ); 126 | 127 | create table qrtz_scheduler_state ( 128 | sched_name varchar(120) not null, 129 | instance_name varchar(200) not null, 130 | last_checkin_time bigint not null, 131 | checkin_interval bigint not null, 132 | primary key (sched_name,instance_name) 133 | ); 134 | 135 | create table qrtz_locks ( 136 | sched_name varchar(120) not null, 137 | lock_name varchar(40) not null, 138 | primary key (sched_name,lock_name) 139 | ); 140 | 141 | commit; 142 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_cloudscape.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Thanks to Srinivas Venkatarangaiah for submitting this file's contents 3 | # 4 | # In your Quartz properties file, you'll need to set 5 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate 6 | # 7 | # Known to work with Cloudscape 3.6.4 (should work with others) 8 | # 9 | 10 | 11 | create table qrtz_job_details ( 12 | sched_name varchar(120) not null, 13 | job_name varchar(200) not null, 14 | job_group varchar(200) not null, 15 | description varchar(250) , 16 | job_class_name varchar(250) not null, 17 | is_durable varchar(5) not null, 18 | is_nonconcurrent varchar(5) not null, 19 | is_update_data varchar(5) not null, 20 | requests_recovery varchar(5) not null, 21 | job_data long varbinary, 22 | primary key (sched_name,job_name,job_group) 23 | ); 24 | 25 | create table qrtz_triggers( 26 | sched_name varchar(120) not null, 27 | trigger_name varchar(200) not null, 28 | trigger_group varchar(200) not null, 29 | job_name varchar(200) not null, 30 | job_group varchar(200) not null, 31 | description varchar(250) , 32 | next_fire_time longint, 33 | prev_fire_time longint, 34 | priority integer, 35 | trigger_state varchar(16) not null, 36 | trigger_type varchar(8) not null, 37 | start_time longint not null, 38 | end_time longint, 39 | calendar_name varchar(200), 40 | misfire_instr smallint, 41 | job_data long varbinary, 42 | primary key (sched_name,trigger_name,trigger_group), 43 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 44 | ); 45 | 46 | create table qrtz_simple_triggers( 47 | sched_name varchar(120) not null, 48 | trigger_name varchar(200) not null, 49 | trigger_group varchar(200) not null, 50 | repeat_count longint not null, 51 | repeat_interval longint not null, 52 | times_triggered longint not null, 53 | primary key (sched_name,trigger_name,trigger_group), 54 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 55 | ); 56 | 57 | create table qrtz_cron_triggers( 58 | sched_name varchar(120) not null, 59 | trigger_name varchar(200) not null, 60 | trigger_group varchar(200) not null, 61 | cron_expression varchar(120) not null, 62 | time_zone_id varchar(80), 63 | primary key (sched_name,trigger_name,trigger_group), 64 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 65 | ); 66 | 67 | CREATE TABLE qrtz_simprop_triggers 68 | ( 69 | sched_name varchar(120) not null, 70 | TRIGGER_NAME VARCHAR(200) NOT NULL, 71 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 72 | STR_PROP_1 VARCHAR(512) NULL, 73 | STR_PROP_2 VARCHAR(512) NULL, 74 | STR_PROP_3 VARCHAR(512) NULL, 75 | INT_PROP_1 INT NULL, 76 | INT_PROP_2 INT NULL, 77 | LONG_PROP_1 longint NULL, 78 | LONG_PROP_2 longint NULL, 79 | DEC_PROP_1 NUMERIC(13,4) NULL, 80 | DEC_PROP_2 NUMERIC(13,4) NULL, 81 | BOOL_PROP_1 varchar(5) NULL, 82 | BOOL_PROP_2 varchar(5) NULL, 83 | PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), 84 | FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) 85 | REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) 86 | ); 87 | 88 | create table qrtz_blob_triggers( 89 | sched_name varchar(120) not null, 90 | trigger_name varchar(200) not null, 91 | trigger_group varchar(200) not null, 92 | blob_data long varbinary , 93 | primary key (sched_name,trigger_name,trigger_group), 94 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 95 | ); 96 | 97 | create table qrtz_calendars( 98 | sched_name varchar(120) not null, 99 | calendar_name varchar(200) not null, 100 | calendar long varbinary not null, 101 | primary key (sched_name,calendar_name) 102 | ); 103 | 104 | create table qrtz_paused_trigger_grps 105 | ( 106 | sched_name varchar(120) not null, 107 | trigger_group varchar(200) not null, 108 | primary key (sched_name,trigger_group) 109 | ); 110 | 111 | create table qrtz_fired_triggers( 112 | sched_name varchar(120) not null, 113 | entry_id varchar(95) not null, 114 | trigger_name varchar(200) not null, 115 | trigger_group varchar(200) not null, 116 | instance_name varchar(200) not null, 117 | fired_time longint not null, 118 | sched_time longint not null, 119 | priority integer not null, 120 | state varchar(16) not null, 121 | job_name varchar(200) null, 122 | job_group varchar(200) null, 123 | is_nonconcurrent varchar(5) null, 124 | requests_recovery varchar(5) null, 125 | primary key (sched_name,entry_id) 126 | ); 127 | 128 | create table qrtz_scheduler_state 129 | ( 130 | sched_name varchar(120) not null, 131 | instance_name varchar(200) not null, 132 | last_checkin_time longint not null, 133 | checkin_interval longint not null, 134 | primary key (sched_name,instance_name) 135 | ); 136 | 137 | create table qrtz_locks 138 | ( 139 | sched_name varchar(120) not null, 140 | lock_name varchar(40) not null, 141 | primary key (sched_name,lock_name) 142 | ); 143 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_db2_v8.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Updated by Claudiu Crisan (claudiu.crisan@schartner.net) 3 | # SQL scripts for DB2 ver 8.1 4 | # 5 | # Changes: 6 | # - "varchar(1)" replaced with "integer" 7 | # - "field_name varchar(xxx) not null" replaced with "field_name varchar(xxx)" 8 | # 9 | 10 | 11 | DROP TABLE QRTZ_FIRED_TRIGGERS; 12 | DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; 13 | DROP TABLE QRTZ_SCHEDULER_STATE; 14 | DROP TABLE QRTZ_LOCKS; 15 | DROP TABLE QRTZ_SIMPLE_TRIGGERS; 16 | DROP TABLE QRTZ_SIMPROP_TRIGGERS; 17 | DROP TABLE QRTZ_CRON_TRIGGERS; 18 | DROP TABLE QRTZ_TRIGGERS; 19 | DROP TABLE QRTZ_JOB_DETAILS; 20 | DROP TABLE QRTZ_CALENDARS; 21 | DROP TABLE QRTZ_BLOB_TRIGGERS; 22 | 23 | create table qrtz_job_details( 24 | sched_name varchar(120) not null, 25 | job_name varchar(80) not null, 26 | job_group varchar(80) not null, 27 | description varchar(120), 28 | job_class_name varchar(128) not null, 29 | is_durable integer not null, 30 | is_nonconcurrent integer not null, 31 | is_update_data integer not null, 32 | requests_recovery integer not null, 33 | job_data blob(2000), 34 | primary key (sched_name,job_name,job_group) 35 | ); 36 | 37 | create table qrtz_triggers( 38 | sched_name varchar(120) not null, 39 | trigger_name varchar(80) not null, 40 | trigger_group varchar(80) not null, 41 | job_name varchar(80) not null, 42 | job_group varchar(80) not null, 43 | description varchar(120), 44 | next_fire_time bigint, 45 | prev_fire_time bigint, 46 | priority integer, 47 | trigger_state varchar(16) not null, 48 | trigger_type varchar(8) not null, 49 | start_time bigint not null, 50 | end_time bigint, 51 | calendar_name varchar(80), 52 | misfire_instr smallint, 53 | job_data blob(2000), 54 | primary key (sched_name,trigger_name,trigger_group), 55 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 56 | ); 57 | 58 | create table qrtz_simple_triggers( 59 | sched_name varchar(120) not null, 60 | trigger_name varchar(80) not null, 61 | trigger_group varchar(80) not null, 62 | repeat_count bigint not null, 63 | repeat_interval bigint not null, 64 | times_triggered bigint not null, 65 | primary key (sched_name,trigger_name,trigger_group), 66 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 67 | ); 68 | 69 | create table qrtz_cron_triggers( 70 | sched_name varchar(120) not null, 71 | trigger_name varchar(80) not null, 72 | trigger_group varchar(80) not null, 73 | cron_expression varchar(120) not null, 74 | time_zone_id varchar(80), 75 | primary key (sched_name,trigger_name,trigger_group), 76 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 77 | ); 78 | 79 | CREATE TABLE qrtz_simprop_triggers 80 | ( 81 | sched_name varchar(120) not null, 82 | TRIGGER_NAME VARCHAR(200) NOT NULL, 83 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 84 | STR_PROP_1 VARCHAR(512) NULL, 85 | STR_PROP_2 VARCHAR(512) NULL, 86 | STR_PROP_3 VARCHAR(512) NULL, 87 | INT_PROP_1 INT NULL, 88 | INT_PROP_2 INT NULL, 89 | LONG_PROP_1 BIGINT NULL, 90 | LONG_PROP_2 BIGINT NULL, 91 | DEC_PROP_1 NUMERIC(13,4) NULL, 92 | DEC_PROP_2 NUMERIC(13,4) NULL, 93 | BOOL_PROP_1 VARCHAR(1) NULL, 94 | BOOL_PROP_2 VARCHAR(1) NULL, 95 | PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), 96 | FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) 97 | REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) 98 | ); 99 | 100 | create table qrtz_blob_triggers( 101 | sched_name varchar(120) not null, 102 | trigger_name varchar(80) not null, 103 | trigger_group varchar(80) not null, 104 | blob_data blob(2000), 105 | primary key (sched_name,trigger_name,trigger_group), 106 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 107 | ); 108 | 109 | create table qrtz_calendars( 110 | sched_name varchar(120) not null, 111 | calendar_name varchar(80) not null, 112 | calendar blob(2000) not null, 113 | primary key (calendar_name) 114 | ); 115 | 116 | create table qrtz_fired_triggers( 117 | sched_name varchar(120) not null, 118 | entry_id varchar(95) not null, 119 | trigger_name varchar(80) not null, 120 | trigger_group varchar(80) not null, 121 | instance_name varchar(80) not null, 122 | fired_time bigint not null, 123 | sched_time bigint not null, 124 | priority integer not null, 125 | state varchar(16) not null, 126 | job_name varchar(80), 127 | job_group varchar(80), 128 | is_nonconcurrent integer, 129 | requests_recovery integer, 130 | primary key (sched_name,entry_id) 131 | ); 132 | 133 | create table qrtz_paused_trigger_grps( 134 | sched_name varchar(120) not null, 135 | trigger_group varchar(80) not null, 136 | primary key (sched_name,trigger_group) 137 | ); 138 | 139 | create table qrtz_scheduler_state( 140 | sched_name varchar(120) not null, 141 | instance_name varchar(80) not null, 142 | last_checkin_time bigint not null, 143 | checkin_interval bigint not null, 144 | primary key (sched_name,instance_name) 145 | ); 146 | 147 | create table qrtz_locks( 148 | sched_name varchar(120) not null, 149 | lock_name varchar(40) not null, 150 | primary key (sched_name,lock_name) 151 | ); 152 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_solid.sql: -------------------------------------------------------------------------------- 1 | 2 | DROP TABLE qrtz_locks; 3 | DROP TABLE qrtz_scheduler_state; 4 | DROP TABLE qrtz_fired_triggers; 5 | DROP TABLE qrtz_paused_trigger_grps; 6 | DROP TABLE qrtz_calendars; 7 | DROP TABLE qrtz_blob_triggers; 8 | DROP TABLE qrtz_cron_triggers; 9 | DROP TABLE qrtz_simple_triggers; 10 | DROP TABLE qrtz_simprop_triggers; 11 | DROP TABLE qrtz_triggers; 12 | DROP TABLE qrtz_job_details; 13 | 14 | create table qrtz_job_details ( 15 | sched_name varchar(120) not null, 16 | job_name varchar(80) not null, 17 | job_group varchar(80) not null, 18 | description varchar(120) , 19 | job_class_name varchar(128) not null, 20 | is_durable varchar(5) not null, 21 | is_nonconcurrent varchar(5) not null, 22 | is_update_data varchar(5) not null, 23 | requests_recovery varchar(5) not null, 24 | job_data long varbinary, 25 | primary key (sched_name,job_name,job_group) 26 | ); 27 | 28 | create table qrtz_triggers( 29 | sched_name varchar(120) not null, 30 | trigger_name varchar(80) not null, 31 | trigger_group varchar(80) not null, 32 | job_name varchar(80) not null, 33 | job_group varchar(80) not null, 34 | description varchar(120) , 35 | next_fire_time numeric(13), 36 | prev_fire_time numeric(13), 37 | priority integer, 38 | trigger_state varchar(16) not null, 39 | trigger_type varchar(8) not null, 40 | start_time numeric(13) not null, 41 | end_time numeric(13), 42 | calendar_name varchar(80), 43 | misfire_instr smallint, 44 | job_data long varbinary, 45 | primary key (sched_name,trigger_name,trigger_group), 46 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 47 | ); 48 | 49 | create table qrtz_simple_triggers( 50 | sched_name varchar(120) not null, 51 | trigger_name varchar(80) not null, 52 | trigger_group varchar(80) not null, 53 | repeat_count numeric(13) not null, 54 | repeat_interval numeric(13) not null, 55 | times_triggered numeric(13) not null, 56 | primary key (sched_name,trigger_name,trigger_group), 57 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 58 | ); 59 | 60 | CREATE TABLE qrtz_simprop_triggers 61 | ( 62 | sched_name varchar(120) not null, 63 | trigger_name VARCHAR(200) NOT NULL, 64 | trigger_group VARCHAR(200) NOT NULL, 65 | STR_PROP_1 VARCHAR(512) NULL, 66 | STR_PROP_2 VARCHAR(512) NULL, 67 | STR_PROP_3 VARCHAR(512) NULL, 68 | INT_PROP_1 INTEGER NULL, 69 | INT_PROP_2 INTEGER NULL, 70 | LONG_PROP_1 NUMERIC(13) NULL, 71 | LONG_PROP_2 NUMERIC(13) NULL, 72 | DEC_PROP_1 NUMERIC(13,4) NULL, 73 | DEC_PROP_2 NUMERIC(13,4) NULL, 74 | BOOL_PROP_1 VARCHAR(5) NULL, 75 | BOOL_PROP_2 VARCHAR(5) NULL, 76 | PRIMARY KEY (sched_name,trigger_name,trigger_group), 77 | FOREIGN KEY (sched_name,trigger_name,trigger_group) REFERENCES qrtz_triggers(sched_name,trigger_name,trigger_group) 78 | ); 79 | 80 | 81 | create table qrtz_cron_triggers( 82 | sched_name varchar(120) not null, 83 | trigger_name varchar(80) not null, 84 | trigger_group varchar(80) not null, 85 | cron_expression varchar(120) not null, 86 | time_zone_id varchar(80), 87 | primary key (sched_name,trigger_name,trigger_group), 88 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 89 | ); 90 | 91 | create table qrtz_blob_triggers( 92 | sched_name varchar(120) not null, 93 | trigger_name varchar(80) not null, 94 | trigger_group varchar(80) not null, 95 | blob_data long varbinary , 96 | primary key (sched_name,trigger_name,trigger_group), 97 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 98 | ); 99 | 100 | create table qrtz_calendars( 101 | sched_name varchar(120) not null, 102 | calendar_name varchar(80) not null, 103 | calendar long varbinary not null, 104 | primary key (sched_name,calendar_name) 105 | ); 106 | 107 | create table qrtz_paused_trigger_grps 108 | ( 109 | sched_name varchar(120) not null, 110 | trigger_group varchar(80) not null, 111 | primary key (sched_name,trigger_group) 112 | ); 113 | 114 | create table qrtz_fired_triggers( 115 | sched_name varchar(120) not null, 116 | entry_id varchar(95) not null, 117 | trigger_name varchar(80) not null, 118 | trigger_group varchar(80) not null, 119 | instance_name varchar(80) not null, 120 | fired_time numeric(13) not null, 121 | sched_time numeric(13) not null, 122 | priority integer not null, 123 | state varchar(16) not null, 124 | job_name varchar(80) null, 125 | job_group varchar(80) null, 126 | is_nonconcurrent varchar(5) null, 127 | requests_recovery varchar(5) null, 128 | primary key (sched_name,entry_id) 129 | ); 130 | 131 | create table qrtz_scheduler_state 132 | ( 133 | sched_name varchar(120) not null, 134 | instance_name varchar(80) not null, 135 | last_checkin_time numeric(13) not null, 136 | checkin_interval numeric(13) not null, 137 | primary key (sched_name,instance_name) 138 | ); 139 | 140 | create table qrtz_locks 141 | ( 142 | sched_name varchar(120) not null, 143 | lock_name varchar(40) not null, 144 | primary key (sched_name,lock_name) 145 | ); 146 | 147 | commit work; 148 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_sapdb.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Thanks to Andrew Perepelytsya for submitting this file. 3 | # 4 | # In your Quartz properties file, you'll need to set 5 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 6 | # 7 | 8 | CREATE TABLE QRTZ_JOB_DETAILS 9 | ( 10 | SCHED_NAME VARCHAR(120) NOT NULL, 11 | JOB_NAME VARCHAR(200) NOT NULL, 12 | JOB_GROUP VARCHAR(200) NOT NULL, 13 | DESCRIPTION VARCHAR(250) NULL, 14 | JOB_CLASS_NAME VARCHAR(128) NOT NULL, 15 | IS_DURABLE VARCHAR(1) NOT NULL, 16 | IS_NONCONCURRENT VARCHAR(1) NOT NULL, 17 | IS_UPDATE_DATA VARCHAR(1) NOT NULL, 18 | REQUESTS_RECOVERY VARCHAR(1) NOT NULL, 19 | JOB_DATA LONG BYTE NULL, 20 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 21 | ); 22 | 23 | CREATE TABLE QRTZ_TRIGGERS 24 | ( 25 | SCHED_NAME VARCHAR(120) NOT NULL, 26 | TRIGGER_NAME VARCHAR(200) NOT NULL, 27 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 28 | JOB_NAME VARCHAR(200) NOT NULL, 29 | JOB_GROUP VARCHAR(200) NOT NULL, 30 | DESCRIPTION VARCHAR(250) NULL, 31 | NEXT_FIRE_TIME FIXED(13) NULL, 32 | PREV_FIRE_TIME FIXED(13) NULL, 33 | PRIORITY FIXED(13) NULL, 34 | TRIGGER_STATE VARCHAR(16) NOT NULL, 35 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 36 | START_TIME FIXED(13) NOT NULL, 37 | END_TIME FIXED(13) NULL, 38 | CALENDAR_NAME VARCHAR(200) NULL, 39 | MISFIRE_INSTR FIXED(2) NULL, 40 | JOB_DATA LONG BYTE NULL, 41 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 42 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 43 | ); 44 | 45 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS 46 | ( 47 | SCHED_NAME VARCHAR(120) NOT NULL, 48 | TRIGGER_NAME VARCHAR(200) NOT NULL, 49 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 50 | REPEAT_COUNT FIXED(7) NOT NULL, 51 | REPEAT_INTERVAL FIXED(12) NOT NULL, 52 | TIMES_TRIGGERED FIXED(10) NOT NULL, 53 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 54 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 55 | ); 56 | 57 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 58 | ( 59 | SCHED_NAME VARCHAR(120) NOT NULL, 60 | TRIGGER_NAME VARCHAR(200) NOT NULL, 61 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 62 | STR_PROP_1 VARCHAR(512) NULL, 63 | STR_PROP_2 VARCHAR(512) NULL, 64 | STR_PROP_3 VARCHAR(512) NULL, 65 | INT_PROP_1 FIXED(10) NULL, 66 | INT_PROP_2 FIXED(10) NULL, 67 | LONG_PROP_1 FIXED(13) NULL, 68 | LONG_PROP_2 FIXED(13) NULL, 69 | DEC_PROP_1 NUMERIC(13,4) NULL, 70 | DEC_PROP_2 NUMERIC(13,4) NULL, 71 | BOOL_PROP_1 VARCHAR(1) NULL, 72 | BOOL_PROP_2 VARCHAR(1) NULL, 73 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 74 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 75 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 76 | ); 77 | 78 | CREATE TABLE QRTZ_CRON_TRIGGERS 79 | ( 80 | SCHED_NAME VARCHAR(120) NOT NULL, 81 | TRIGGER_NAME VARCHAR(200) NOT NULL, 82 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 83 | CRON_EXPRESSION VARCHAR(120) NOT NULL, 84 | TIME_ZONE_ID VARCHAR(80), 85 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 86 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 87 | ); 88 | 89 | CREATE TABLE QRTZ_BLOB_TRIGGERS 90 | ( 91 | SCHED_NAME VARCHAR(120) NOT NULL, 92 | TRIGGER_NAME VARCHAR(200) NOT NULL, 93 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 94 | BLOB_DATA LONG BYTE NULL, 95 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 96 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 97 | ); 98 | 99 | CREATE TABLE QRTZ_CALENDARS 100 | ( 101 | SCHED_NAME VARCHAR(120) NOT NULL, 102 | CALENDAR_NAME VARCHAR(200) NOT NULL, 103 | DESCRIPTION VARCHAR(250) NULL, 104 | CALENDAR LONG BYTE NOT NULL, 105 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 106 | ); 107 | 108 | 109 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS 110 | ( 111 | SCHED_NAME VARCHAR(120) NOT NULL, 112 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 113 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 114 | ); 115 | 116 | CREATE TABLE QRTZ_FIRED_TRIGGERS 117 | ( 118 | SCHED_NAME VARCHAR(120) NOT NULL, 119 | ENTRY_ID VARCHAR(95) NOT NULL, 120 | TRIGGER_NAME VARCHAR(200) NOT NULL, 121 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 122 | INSTANCE_NAME VARCHAR(200) NOT NULL, 123 | FIRED_TIME FIXED(13) NOT NULL, 124 | SCHED_TIME FIXED(13) NOT NULL, 125 | PRIORITY FIXED(13) NOT NULL, 126 | STATE VARCHAR(16) NOT NULL, 127 | JOB_NAME VARCHAR(200) NULL, 128 | JOB_GROUP VARCHAR(200) NULL, 129 | IS_NONCONCURRENT VARCHAR(1) NULL, 130 | REQUESTS_RECOVERY VARCHAR(1) NULL, 131 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 132 | ); 133 | 134 | CREATE TABLE QRTZ_SCHEDULER_STATE 135 | ( 136 | SCHED_NAME VARCHAR(120) NOT NULL, 137 | INSTANCE_NAME VARCHAR(200) NOT NULL, 138 | LAST_CHECKIN_TIME FIXED(13) NOT NULL, 139 | CHECKIN_INTERVAL FIXED(13) NOT NULL, 140 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 141 | ); 142 | 143 | CREATE TABLE QRTZ_LOCKS 144 | ( 145 | SCHED_NAME VARCHAR(120) NOT NULL, 146 | LOCK_NAME VARCHAR(40) NOT NULL, 147 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 148 | ); 149 | 150 | 151 | commit; 152 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_hsqldb.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- In your Quartz properties file, you'll need to set 3 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate 4 | -- 5 | 6 | DROP TABLE qrtz_locks IF EXISTS; 7 | DROP TABLE qrtz_scheduler_state IF EXISTS; 8 | DROP TABLE qrtz_fired_triggers IF EXISTS; 9 | DROP TABLE qrtz_paused_trigger_grps IF EXISTS; 10 | DROP TABLE qrtz_calendars IF EXISTS; 11 | DROP TABLE qrtz_blob_triggers IF EXISTS; 12 | DROP TABLE qrtz_cron_triggers IF EXISTS; 13 | DROP TABLE qrtz_simple_triggers IF EXISTS; 14 | DROP TABLE qrtz_simprop_triggers IF EXISTS; 15 | DROP TABLE qrtz_triggers IF EXISTS; 16 | DROP TABLE qrtz_job_details IF EXISTS; 17 | 18 | CREATE TABLE qrtz_job_details 19 | ( 20 | SCHED_NAME VARCHAR(120) NOT NULL, 21 | JOB_NAME VARCHAR(200) NOT NULL, 22 | JOB_GROUP VARCHAR(200) NOT NULL, 23 | DESCRIPTION VARCHAR(250) NULL, 24 | JOB_CLASS_NAME VARCHAR(250) NOT NULL, 25 | IS_DURABLE BOOLEAN NOT NULL, 26 | IS_NONCONCURRENT BOOLEAN NOT NULL, 27 | IS_UPDATE_DATA BOOLEAN NOT NULL, 28 | REQUESTS_RECOVERY BOOLEAN NOT NULL, 29 | JOB_DATA BINARY NULL, 30 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 31 | ); 32 | 33 | CREATE TABLE qrtz_triggers 34 | ( 35 | SCHED_NAME VARCHAR(120) NOT NULL, 36 | TRIGGER_NAME VARCHAR(200) NOT NULL, 37 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 38 | JOB_NAME VARCHAR(200) NOT NULL, 39 | JOB_GROUP VARCHAR(200) NOT NULL, 40 | DESCRIPTION VARCHAR(250) NULL, 41 | NEXT_FIRE_TIME NUMERIC(13) NULL, 42 | PREV_FIRE_TIME NUMERIC(13) NULL, 43 | PRIORITY INTEGER NULL, 44 | TRIGGER_STATE VARCHAR(16) NOT NULL, 45 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 46 | START_TIME NUMERIC(13) NOT NULL, 47 | END_TIME NUMERIC(13) NULL, 48 | CALENDAR_NAME VARCHAR(200) NULL, 49 | MISFIRE_INSTR NUMERIC(2) NULL, 50 | JOB_DATA BINARY NULL, 51 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 52 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 53 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 54 | ); 55 | 56 | CREATE TABLE qrtz_simple_triggers 57 | ( 58 | SCHED_NAME VARCHAR(120) NOT NULL, 59 | TRIGGER_NAME VARCHAR(200) NOT NULL, 60 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 61 | REPEAT_COUNT NUMERIC(7) NOT NULL, 62 | REPEAT_INTERVAL NUMERIC(12) NOT NULL, 63 | TIMES_TRIGGERED NUMERIC(10) NOT NULL, 64 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 65 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 66 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 67 | ); 68 | 69 | CREATE TABLE qrtz_cron_triggers 70 | ( 71 | SCHED_NAME VARCHAR(120) NOT NULL, 72 | TRIGGER_NAME VARCHAR(200) NOT NULL, 73 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 74 | CRON_EXPRESSION VARCHAR(120) NOT NULL, 75 | TIME_ZONE_ID VARCHAR(80), 76 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 77 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 78 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 79 | ); 80 | 81 | CREATE TABLE qrtz_simprop_triggers 82 | ( 83 | SCHED_NAME VARCHAR(120) NOT NULL, 84 | TRIGGER_NAME VARCHAR(200) NOT NULL, 85 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 86 | STR_PROP_1 VARCHAR(512) NULL, 87 | STR_PROP_2 VARCHAR(512) NULL, 88 | STR_PROP_3 VARCHAR(512) NULL, 89 | INT_PROP_1 NUMERIC(9) NULL, 90 | INT_PROP_2 NUMERIC(9) NULL, 91 | LONG_PROP_1 NUMERIC(13) NULL, 92 | LONG_PROP_2 NUMERIC(13) NULL, 93 | DEC_PROP_1 NUMERIC(13,4) NULL, 94 | DEC_PROP_2 NUMERIC(13,4) NULL, 95 | BOOL_PROP_1 BOOLEAN NULL, 96 | BOOL_PROP_2 BOOLEAN NULL, 97 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 98 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 99 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 100 | ); 101 | 102 | CREATE TABLE qrtz_blob_triggers 103 | ( 104 | SCHED_NAME VARCHAR(120) NOT NULL, 105 | TRIGGER_NAME VARCHAR(200) NOT NULL, 106 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 107 | BLOB_DATA BINARY NULL, 108 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 109 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 110 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 111 | ); 112 | 113 | CREATE TABLE qrtz_calendars 114 | ( 115 | SCHED_NAME VARCHAR(120) NOT NULL, 116 | CALENDAR_NAME VARCHAR(200) NOT NULL, 117 | CALENDAR BINARY NOT NULL, 118 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 119 | ); 120 | 121 | CREATE TABLE qrtz_paused_trigger_grps 122 | ( 123 | SCHED_NAME VARCHAR(120) NOT NULL, 124 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 125 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 126 | ); 127 | 128 | CREATE TABLE qrtz_fired_triggers 129 | ( 130 | SCHED_NAME VARCHAR(120) NOT NULL, 131 | ENTRY_ID VARCHAR(95) NOT NULL, 132 | TRIGGER_NAME VARCHAR(200) NOT NULL, 133 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 134 | INSTANCE_NAME VARCHAR(200) NOT NULL, 135 | FIRED_TIME NUMERIC(13) NOT NULL, 136 | SCHED_TIME NUMERIC(13) NOT NULL, 137 | PRIORITY INTEGER NOT NULL, 138 | STATE VARCHAR(16) NOT NULL, 139 | JOB_NAME VARCHAR(200) NULL, 140 | JOB_GROUP VARCHAR(200) NULL, 141 | IS_NONCONCURRENT BOOLEAN NULL, 142 | REQUESTS_RECOVERY BOOLEAN NULL, 143 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 144 | ); 145 | 146 | CREATE TABLE qrtz_scheduler_state 147 | ( 148 | SCHED_NAME VARCHAR(120) NOT NULL, 149 | INSTANCE_NAME VARCHAR(200) NOT NULL, 150 | LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, 151 | CHECKIN_INTERVAL NUMERIC(13) NOT NULL, 152 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 153 | ); 154 | 155 | CREATE TABLE qrtz_locks 156 | ( 157 | SCHED_NAME VARCHAR(120) NOT NULL, 158 | LOCK_NAME VARCHAR(40) NOT NULL, 159 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 160 | ); 161 | 162 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_hsqldb_old.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Thanks to Joseph Wilkicki for submitting this file's contents 3 | # 4 | # In your Quartz properties file, you'll need to set 5 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate 6 | # 7 | # Some users report the need to change the fields 8 | # with datatype "OTHER" to datatype "BINARY" with 9 | # particular versions (e.g. 1.7.1) of HSQLDB 10 | # 11 | 12 | CREATE TABLE qrtz_job_details 13 | ( 14 | SCHED_NAME VARCHAR(120) NOT NULL, 15 | JOB_NAME LONGVARCHAR(80) NOT NULL, 16 | JOB_GROUP LONGVARCHAR(80) NOT NULL, 17 | DESCRIPTION LONGVARCHAR(120) NULL, 18 | JOB_CLASS_NAME LONGVARCHAR(128) NOT NULL, 19 | IS_DURABLE LONGVARCHAR(1) NOT NULL, 20 | IS_NONCONCURRENT LONGVARCHAR(1) NOT NULL, 21 | IS_UPDATE_DATA LONGVARCHAR(1) NOT NULL, 22 | REQUESTS_RECOVERY LONGVARCHAR(1) NOT NULL, 23 | JOB_DATA OTHER NULL, 24 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 25 | ); 26 | 27 | CREATE TABLE qrtz_triggers 28 | ( 29 | SCHED_NAME VARCHAR(120) NOT NULL, 30 | TRIGGER_NAME LONGVARCHAR(80) NOT NULL, 31 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 32 | JOB_NAME LONGVARCHAR(80) NOT NULL, 33 | JOB_GROUP LONGVARCHAR(80) NOT NULL, 34 | DESCRIPTION LONGVARCHAR(120) NULL, 35 | NEXT_FIRE_TIME NUMERIC(13) NULL, 36 | PREV_FIRE_TIME NUMERIC(13) NULL, 37 | PRIORITY INTEGER NULL, 38 | TRIGGER_STATE LONGVARCHAR(16) NOT NULL, 39 | TRIGGER_TYPE LONGVARCHAR(8) NOT NULL, 40 | START_TIME NUMERIC(13) NOT NULL, 41 | END_TIME NUMERIC(13) NULL, 42 | CALENDAR_NAME LONGVARCHAR(80) NULL, 43 | MISFIRE_INSTR NUMERIC(2) NULL, 44 | JOB_DATA OTHER NULL, 45 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 46 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 47 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 48 | ); 49 | 50 | CREATE TABLE qrtz_simple_triggers 51 | ( 52 | SCHED_NAME VARCHAR(120) NOT NULL, 53 | TRIGGER_NAME LONGVARCHAR(80) NOT NULL, 54 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 55 | REPEAT_COUNT NUMERIC(7) NOT NULL, 56 | REPEAT_INTERVAL NUMERIC(12) NOT NULL, 57 | TIMES_TRIGGERED NUMERIC(10) NOT NULL, 58 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 59 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 60 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 61 | ); 62 | 63 | CREATE TABLE qrtz_cron_triggers 64 | ( 65 | SCHED_NAME VARCHAR(120) NOT NULL, 66 | TRIGGER_NAME LONGVARCHAR(80) NOT NULL, 67 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 68 | CRON_EXPRESSION LONGVARCHAR(120) NOT NULL, 69 | TIME_ZONE_ID LONGVARCHAR(80), 70 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 71 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 72 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 73 | ); 74 | 75 | CREATE TABLE qrtz_simprop_triggers 76 | ( 77 | SCHED_NAME VARCHAR(120) NOT NULL, 78 | TRIGGER_NAME LONGVARCHAR(200) NOT NULL, 79 | TRIGGER_GROUP LONGVARCHAR(200) NOT NULL, 80 | STR_PROP_1 LONGVARCHAR(512) NULL, 81 | STR_PROP_2 LONGVARCHAR(512) NULL, 82 | STR_PROP_3 LONGVARCHAR(512) NULL, 83 | INT_PROP_1 NUMERIC(9) NULL, 84 | INT_PROP_2 NUMERIC(9) NULL, 85 | LONG_PROP_1 NUMERIC(13) NULL, 86 | LONG_PROP_2 NUMERIC(13) NULL, 87 | DEC_PROP_1 NUMERIC(13,4) NULL, 88 | DEC_PROP_2 NUMERIC(13,4) NULL, 89 | BOOL_PROP_1 LONGVARCHAR(1) NULL, 90 | BOOL_PROP_2 LONGVARCHAR(1) NULL, 91 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 92 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 93 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 94 | ); 95 | 96 | CREATE TABLE qrtz_blob_triggers 97 | ( 98 | SCHED_NAME VARCHAR(120) NOT NULL, 99 | TRIGGER_NAME LONGVARCHAR(80) NOT NULL, 100 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 101 | BLOB_DATA OTHER NULL, 102 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 103 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 104 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 105 | ); 106 | 107 | CREATE TABLE qrtz_calendars 108 | ( 109 | SCHED_NAME VARCHAR(120) NOT NULL, 110 | CALENDAR_NAME LONGVARCHAR(80) NOT NULL, 111 | CALENDAR OTHER NOT NULL, 112 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 113 | ); 114 | 115 | CREATE TABLE qrtz_paused_trigger_grps 116 | ( 117 | SCHED_NAME VARCHAR(120) NOT NULL, 118 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 119 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 120 | ); 121 | 122 | CREATE TABLE qrtz_fired_triggers 123 | ( 124 | SCHED_NAME VARCHAR(120) NOT NULL, 125 | ENTRY_ID LONGVARCHAR(95) NOT NULL, 126 | TRIGGER_NAME LONGVARCHAR(80) NOT NULL, 127 | TRIGGER_GROUP LONGVARCHAR(80) NOT NULL, 128 | INSTANCE_NAME LONGVARCHAR(80) NOT NULL, 129 | FIRED_TIME NUMERIC(13) NOT NULL, 130 | SCHED_TIME NUMERIC(13) NOT NULL, 131 | PRIORITY INTEGER NOT NULL, 132 | STATE LONGVARCHAR(16) NOT NULL, 133 | JOB_NAME LONGVARCHAR(80) NULL, 134 | JOB_GROUP LONGVARCHAR(80) NULL, 135 | IS_NONCONCURRENT LONGVARCHAR(1) NULL, 136 | REQUESTS_RECOVERY LONGVARCHAR(1) NULL, 137 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 138 | ); 139 | 140 | CREATE TABLE qrtz_scheduler_state 141 | ( 142 | SCHED_NAME VARCHAR(120) NOT NULL, 143 | INSTANCE_NAME LONGVARCHAR(80) NOT NULL, 144 | LAST_CHECKIN_TIME NUMERIC(13) NOT NULL, 145 | CHECKIN_INTERVAL NUMERIC(13) NOT NULL, 146 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 147 | ); 148 | 149 | CREATE TABLE qrtz_locks 150 | ( 151 | SCHED_NAME VARCHAR(120) NOT NULL, 152 | LOCK_NAME LONGVARCHAR(40) NOT NULL, 153 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 154 | ); 155 | 156 | commit; 157 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_db2.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Thanks to Horia Muntean for submitting this.... 3 | # 4 | # .. known to work with DB2 7.1 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver" 5 | # .. likely to work with others... 6 | # 7 | # In your Quartz properties file, you'll need to set 8 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 9 | # 10 | # If you're using DB2 6.x you'll want to set this property to 11 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate 12 | # 13 | # Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in 14 | # that blob - i.e. limits the amount of data you can put into your JobDataMap 15 | # 16 | 17 | 18 | create table qrtz_job_details ( 19 | sched_name varchar(120) not null, 20 | job_name varchar(80) not null, 21 | job_group varchar(80) not null, 22 | description varchar(120) null, 23 | job_class_name varchar(128) not null, 24 | is_durable varchar(1) not null, 25 | is_nonconcurrent varchar(1) not null, 26 | is_update_data varchar(1) not null, 27 | requests_recovery varchar(1) not null, 28 | job_data blob(2000), 29 | primary key (sched_name,job_name,job_group) 30 | ) 31 | 32 | create table qrtz_triggers( 33 | sched_name varchar(120) not null, 34 | trigger_name varchar(80) not null, 35 | trigger_group varchar(80) not null, 36 | job_name varchar(80) not null, 37 | job_group varchar(80) not null, 38 | description varchar(120) null, 39 | next_fire_time bigint, 40 | prev_fire_time bigint, 41 | priority integer, 42 | trigger_state varchar(16) not null, 43 | trigger_type varchar(8) not null, 44 | start_time bigint not null, 45 | end_time bigint, 46 | calendar_name varchar(80), 47 | misfire_instr smallint, 48 | job_data blob(2000), 49 | primary key (sched_name,trigger_name,trigger_group), 50 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 51 | ) 52 | 53 | create table qrtz_simple_triggers( 54 | sched_name varchar(120) not null, 55 | trigger_name varchar(80) not null, 56 | trigger_group varchar(80) not null, 57 | repeat_count bigint not null, 58 | repeat_interval bigint not null, 59 | times_triggered bigint not null, 60 | primary key (sched_name,trigger_name,trigger_group), 61 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 62 | ) 63 | 64 | create table qrtz_cron_triggers( 65 | sched_name varchar(120) not null, 66 | trigger_name varchar(80) not null, 67 | trigger_group varchar(80) not null, 68 | cron_expression varchar(120) not null, 69 | time_zone_id varchar(80), 70 | primary key (sched_name,trigger_name,trigger_group), 71 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 72 | ) 73 | 74 | CREATE TABLE qrtz_simprop_triggers 75 | ( 76 | sched_name varchar(120) not null, 77 | TRIGGER_NAME VARCHAR(200) NOT NULL, 78 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 79 | STR_PROP_1 VARCHAR(512) NULL, 80 | STR_PROP_2 VARCHAR(512) NULL, 81 | STR_PROP_3 VARCHAR(512) NULL, 82 | INT_PROP_1 INT NULL, 83 | INT_PROP_2 INT NULL, 84 | LONG_PROP_1 BIGINT NULL, 85 | LONG_PROP_2 BIGINT NULL, 86 | DEC_PROP_1 NUMERIC(13,4) NULL, 87 | DEC_PROP_2 NUMERIC(13,4) NULL, 88 | BOOL_PROP_1 VARCHAR(1) NULL, 89 | BOOL_PROP_2 VARCHAR(1) NULL, 90 | PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), 91 | FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) 92 | REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) 93 | ) 94 | 95 | create table qrtz_blob_triggers( 96 | sched_name varchar(120) not null, 97 | trigger_name varchar(80) not null, 98 | trigger_group varchar(80) not null, 99 | blob_data blob(2000) null, 100 | primary key (sched_name,trigger_name,trigger_group), 101 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 102 | ) 103 | 104 | create table qrtz_calendars( 105 | sched_name varchar(120) not null, 106 | calendar_name varchar(80) not null, 107 | calendar blob(2000) not null, 108 | primary key (sched_name,calendar_name) 109 | ) 110 | 111 | create table qrtz_fired_triggers( 112 | sched_name varchar(120) not null, 113 | entry_id varchar(95) not null, 114 | trigger_name varchar(80) not null, 115 | trigger_group varchar(80) not null, 116 | instance_name varchar(80) not null, 117 | fired_time bigint not null, 118 | sched_time bigint not null, 119 | priority integer not null, 120 | state varchar(16) not null, 121 | job_name varchar(80) null, 122 | job_group varchar(80) null, 123 | is_nonconcurrent varchar(1) null, 124 | requests_recovery varchar(1) null, 125 | primary key (sched_name,entry_id) 126 | ); 127 | 128 | 129 | create table qrtz_paused_trigger_grps( 130 | sched_name varchar(120) not null, 131 | trigger_group varchar(80) not null, 132 | primary key (sched_name,trigger_group) 133 | ); 134 | 135 | create table qrtz_scheduler_state ( 136 | sched_name varchar(120) not null, 137 | instance_name varchar(80) not null, 138 | last_checkin_time bigint not null, 139 | checkin_interval bigint not null, 140 | primary key (sched_name,instance_name) 141 | ); 142 | 143 | create table qrtz_locks 144 | ( 145 | sched_name varchar(120) not null, 146 | lock_name varchar(40) not null, 147 | primary key (sched_name,lock_name) 148 | ); 149 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_informix.sql: -------------------------------------------------------------------------------- 1 | { } 2 | { Thanks to Keith Chew for submitting this. } 3 | { } 4 | { use the StdJDBCDelegate with Informix. } 5 | { } 6 | { note that Informix has a 18 cahracter limit on the table name, so the prefix had to be shortened to "q" instread of "qrtz_" } 7 | 8 | CREATE TABLE qblob_triggers ( 9 | SCHED_NAME VARCHAR(120) NOT NULL, 10 | TRIGGER_NAME varchar(80) NOT NULL, 11 | TRIGGER_GROUP varchar(80) NOT NULL, 12 | BLOB_DATA byte in table 13 | ); 14 | 15 | ALTER TABLE qblob_triggers 16 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); 17 | 18 | 19 | CREATE TABLE qcalendars ( 20 | SCHED_NAME VARCHAR(120) NOT NULL, 21 | CALENDAR_NAME varchar(80) NOT NULL, 22 | CALENDAR byte in table NOT NULL 23 | ); 24 | 25 | ALTER TABLE qcalendars 26 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,CALENDAR_NAME); 27 | 28 | 29 | CREATE TABLE qcron_triggers ( 30 | SCHED_NAME VARCHAR(120) NOT NULL, 31 | TRIGGER_NAME varchar(80) NOT NULL, 32 | TRIGGER_GROUP varchar(80) NOT NULL, 33 | CRON_EXPRESSION varchar(120) NOT NULL, 34 | TIME_ZONE_ID varchar(80) 35 | ); 36 | 37 | ALTER TABLE qcron_triggers 38 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); 39 | 40 | 41 | CREATE TABLE qfired_triggers ( 42 | SCHED_NAME VARCHAR(120) NOT NULL, 43 | ENTRY_ID varchar(95) NOT NULL, 44 | TRIGGER_NAME varchar(80) NOT NULL, 45 | TRIGGER_GROUP varchar(80) NOT NULL, 46 | INSTANCE_NAME varchar(80) NOT NULL, 47 | FIRED_TIME numeric(13) NOT NULL, 48 | SCHED_TIME numeric(13) NOT NULL, 49 | PRIORITY integer NOT NULL, 50 | STATE varchar(16) NOT NULL, 51 | JOB_NAME varchar(80), 52 | JOB_GROUP varchar(80), 53 | IS_NONCONCURRENT varchar(1), 54 | REQUESTS_RECOVERY varchar(1) 55 | ); 56 | 57 | ALTER TABLE qfired_triggers 58 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,ENTRY_ID); 59 | 60 | 61 | CREATE TABLE qpaused_trigger_grps ( 62 | SCHED_NAME VARCHAR(120) NOT NULL, 63 | TRIGGER_GROUP varchar(80) NOT NULL 64 | ); 65 | 66 | ALTER TABLE qpaused_trigger_grps 67 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP); 68 | 69 | 70 | CREATE TABLE qscheduler_state ( 71 | SCHED_NAME VARCHAR(120) NOT NULL, 72 | INSTANCE_NAME varchar(80) NOT NULL, 73 | LAST_CHECKIN_TIME numeric(13) NOT NULL, 74 | CHECKIN_INTERVAL numeric(13) NOT NULL 75 | ); 76 | 77 | ALTER TABLE qscheduler_state 78 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,INSTANCE_NAME); 79 | 80 | 81 | CREATE TABLE qlocks ( 82 | SCHED_NAME VARCHAR(120) NOT NULL, 83 | LOCK_NAME varchar(40) NOT NULL 84 | ); 85 | 86 | ALTER TABLE qlocks 87 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,LOCK_NAME); 88 | 89 | 90 | CREATE TABLE qjob_details ( 91 | SCHED_NAME VARCHAR(120) NOT NULL, 92 | JOB_NAME varchar(80) NOT NULL, 93 | JOB_GROUP varchar(80) NOT NULL, 94 | DESCRIPTION varchar(120), 95 | JOB_CLASS_NAME varchar(128) NOT NULL, 96 | IS_DURABLE varchar(1) NOT NULL, 97 | IS_NONCONCURRENT varchar(1) NOT NULL, 98 | IS_UPDATE_DATA varchar(1) NOT NULL, 99 | REQUESTS_RECOVERY varchar(1) NOT NULL, 100 | JOB_DATA byte in table 101 | ); 102 | 103 | ALTER TABLE qjob_details 104 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,JOB_NAME, JOB_GROUP); 105 | 106 | 107 | CREATE TABLE qsimple_triggers ( 108 | SCHED_NAME VARCHAR(120) NOT NULL, 109 | TRIGGER_NAME varchar(80) NOT NULL, 110 | TRIGGER_GROUP varchar(80) NOT NULL, 111 | REPEAT_COUNT numeric(7) NOT NULL, 112 | REPEAT_INTERVAL numeric(12) NOT NULL, 113 | TIMES_TRIGGERED numeric(10) NOT NULL 114 | ); 115 | 116 | ALTER TABLE qsimple_triggers 117 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); 118 | 119 | 120 | CREATE TABLE qsimprop_triggers 121 | ( 122 | SCHED_NAME VARCHAR(120) NOT NULL, 123 | TRIGGER_NAME VARCHAR(200) NOT NULL, 124 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 125 | STR_PROP_1 VARCHAR(512) NULL, 126 | STR_PROP_2 VARCHAR(512) NULL, 127 | STR_PROP_3 VARCHAR(512) NULL, 128 | INT_PROP_1 NUMERIC(9) NULL, 129 | INT_PROP_2 NUMERIC(9) NULL, 130 | LONG_PROP_1 NUMERIC(13) NULL, 131 | LONG_PROP_2 NUMERIC(13) NULL, 132 | DEC_PROP_1 NUMERIC(13,4) NULL, 133 | DEC_PROP_2 NUMERIC(13,4) NULL, 134 | BOOL_PROP_1 VARCHAR(1) NULL, 135 | BOOL_PROP_2 VARCHAR(1) NULL, 136 | ); 137 | 138 | ALTER TABLE qsimprop_triggers 139 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); 140 | 141 | 142 | CREATE TABLE qtriggers ( 143 | SCHED_NAME VARCHAR(120) NOT NULL, 144 | TRIGGER_NAME varchar(80) NOT NULL, 145 | TRIGGER_GROUP varchar(80) NOT NULL, 146 | JOB_NAME varchar(80) NOT NULL, 147 | JOB_GROUP varchar(80) NOT NULL, 148 | DESCRIPTION varchar(120), 149 | NEXT_FIRE_TIME numeric(13), 150 | PREV_FIRE_TIME numeric(13), 151 | PRIORITY integer, 152 | TRIGGER_STATE varchar(16) NOT NULL, 153 | TRIGGER_TYPE varchar(8) NOT NULL, 154 | START_TIME numeric(13) NOT NULL, 155 | END_TIME numeric(13), 156 | CALENDAR_NAME varchar(80), 157 | MISFIRE_INSTR numeric(2), 158 | JOB_DATA byte in table 159 | ); 160 | 161 | ALTER TABLE qtriggers 162 | ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP); 163 | 164 | 165 | ALTER TABLE qblob_triggers 166 | ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 167 | REFERENCES qtriggers; 168 | 169 | 170 | ALTER TABLE qcron_triggers 171 | ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 172 | REFERENCES qtriggers; 173 | 174 | 175 | ALTER TABLE qsimple_triggers 176 | ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 177 | REFERENCES qtriggers; 178 | 179 | ALTER TABLE qsimprop_triggers 180 | ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 181 | REFERENCES qtriggers; 182 | 183 | ALTER TABLE qtriggers 184 | ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,JOB_NAME, JOB_GROUP) 185 | REFERENCES qjob_details; 186 | 187 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_firebird.sql: -------------------------------------------------------------------------------- 1 | 2 | -- 3 | -- Thanks to Leonardo Alves 4 | -- 5 | 6 | 7 | DROP TABLE QRTZ_FIRED_TRIGGERS; 8 | DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; 9 | DROP TABLE QRTZ_SCHEDULER_STATE; 10 | DROP TABLE QRTZ_LOCKS; 11 | DROP TABLE QRTZ_SIMPLE_TRIGGERS; 12 | DROP TABLE QRTZ_SIMPROP_TRIGGERS; 13 | DROP TABLE QRTZ_CRON_TRIGGERS; 14 | DROP TABLE QRTZ_BLOB_TRIGGERS; 15 | DROP TABLE QRTZ_TRIGGERS; 16 | DROP TABLE QRTZ_JOB_DETAILS; 17 | DROP TABLE QRTZ_CALENDARS; 18 | 19 | 20 | CREATE TABLE QRTZ_JOB_DETAILS ( 21 | SCHED_NAME VARCHAR(120) NOT NULL, 22 | JOB_NAME VARCHAR(60) NOT NULL, 23 | JOB_GROUP VARCHAR(60) NOT NULL, 24 | DESCRIPTION VARCHAR(120), 25 | JOB_CLASS_NAME VARCHAR(128) NOT NULL, 26 | IS_DURABLE VARCHAR(1) NOT NULL, 27 | IS_NONCONCURRENT VARCHAR(1) NOT NULL, 28 | IS_UPDATE_DATA VARCHAR(1) NOT NULL, 29 | REQUESTS_RECOVERY VARCHAR(1) NOT NULL, 30 | JOB_DATA BLOB, 31 | CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 32 | ); 33 | 34 | CREATE TABLE QRTZ_TRIGGERS ( 35 | SCHED_NAME VARCHAR(120) NOT NULL, 36 | TRIGGER_NAME VARCHAR(60) NOT NULL, 37 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 38 | JOB_NAME VARCHAR(60) NOT NULL, 39 | JOB_GROUP VARCHAR(60) NOT NULL, 40 | DESCRIPTION VARCHAR(120), 41 | NEXT_FIRE_TIME BIGINT, 42 | PREV_FIRE_TIME BIGINT, 43 | PRIORITY INTEGER, 44 | TRIGGER_STATE VARCHAR(16) NOT NULL, 45 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 46 | START_TIME BIGINT NOT NULL, 47 | END_TIME BIGINT, 48 | CALENDAR_NAME VARCHAR(60), 49 | MISFIRE_INSTR SMALLINT, 50 | JOB_DATA BLOB, 51 | CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 52 | CONSTRAINT FK_QRTZ_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 53 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 54 | ); 55 | 56 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( 57 | SCHED_NAME VARCHAR(120) NOT NULL, 58 | TRIGGER_NAME VARCHAR(60) NOT NULL, 59 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 60 | REPEAT_COUNT BIGINT NOT NULL, 61 | REPEAT_INTERVAL BIGINT NOT NULL, 62 | TIMES_TRIGGERED BIGINT NOT NULL, 63 | CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 64 | CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 65 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 66 | ); 67 | 68 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 69 | ( 70 | SCHED_NAME VARCHAR(120) NOT NULL, 71 | TRIGGER_NAME VARCHAR(200) NOT NULL, 72 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 73 | STR_PROP_1 VARCHAR(512) NULL, 74 | STR_PROP_2 VARCHAR(512) NULL, 75 | STR_PROP_3 VARCHAR(512) NULL, 76 | INT_PROP_1 INT NULL, 77 | INT_PROP_2 INT NULL, 78 | LONG_PROP_1 BIGINT NULL, 79 | LONG_PROP_2 BIGINT NULL, 80 | DEC_PROP_1 NUMERIC(13,4) NULL, 81 | DEC_PROP_2 NUMERIC(13,4) NULL, 82 | BOOL_PROP_1 VARCHAR(1) NULL, 83 | BOOL_PROP_2 VARCHAR(1) NULL, 84 | CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 85 | CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 86 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 87 | ); 88 | 89 | CREATE TABLE QRTZ_CRON_TRIGGERS ( 90 | SCHED_NAME VARCHAR(120) NOT NULL, 91 | TRIGGER_NAME VARCHAR(60) NOT NULL, 92 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 93 | CRON_EXPRESSION VARCHAR(120) NOT NULL, 94 | TIME_ZONE_ID VARCHAR(60), 95 | CONSTRAINT PK_QRTZ_SIMPLE_TRG PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 96 | CONSTRAINT FK_QRTZ_SIMPLE_TRG_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 97 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 98 | ); 99 | 100 | CREATE TABLE QRTZ_BLOB_TRIGGERS ( 101 | SCHED_NAME VARCHAR(120) NOT NULL, 102 | TRIGGER_NAME VARCHAR(60) NOT NULL, 103 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 104 | BLOB_DATA BLOB, 105 | CONSTRAINT PK_QRTZ_BLOB_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 106 | CONSTRAINT FK_QRTZ_BLOB_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 107 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 108 | ); 109 | 110 | CREATE TABLE QRTZ_CALENDARS ( 111 | SCHED_NAME VARCHAR(120) NOT NULL, 112 | CALENDAR_NAME VARCHAR(60) NOT NULL, 113 | CALENDAR BLOB NOT NULL, 114 | CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 115 | ); 116 | 117 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( 118 | SCHED_NAME VARCHAR(120) NOT NULL, 119 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 120 | CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 121 | ); 122 | 123 | CREATE TABLE QRTZ_FIRED_TRIGGERS ( 124 | SCHED_NAME VARCHAR(120) NOT NULL, 125 | ENTRY_ID VARCHAR(95) NOT NULL, 126 | TRIGGER_NAME VARCHAR(60) NOT NULL, 127 | TRIGGER_GROUP VARCHAR(60) NOT NULL, 128 | INSTANCE_NAME VARCHAR(80) NOT NULL, 129 | FIRED_TIME BIGINT NOT NULL, 130 | SCHED_TIME BIGINT NOT NULL, 131 | PRIORITY INTEGER NOT NULL, 132 | STATE VARCHAR(16) NOT NULL, 133 | JOB_NAME VARCHAR(60), 134 | JOB_GROUP VARCHAR(60), 135 | IS_NONCONCURRENT VARCHAR(1), 136 | REQUESTS_RECOVERY VARCHAR(1), 137 | CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY (SCHED_NAME,ENTRY_ID) 138 | ); 139 | 140 | CREATE TABLE QRTZ_SCHEDULER_STATE ( 141 | SCHED_NAME VARCHAR(120) NOT NULL, 142 | INSTANCE_NAME VARCHAR(80) NOT NULL, 143 | LAST_CHECKIN_TIME BIGINT NOT NULL, 144 | CHECKIN_INTERVAL BIGINT NOT NULL, 145 | CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 146 | ); 147 | 148 | CREATE TABLE QRTZ_LOCKS ( 149 | SCHED_NAME VARCHAR(120) NOT NULL, 150 | LOCK_NAME VARCHAR(40) NOT NULL, 151 | CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY (SCHED_NAME,LOCK_NAME) 152 | ); 153 | 154 | COMMIT; 155 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_mysql.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar 3 | # 4 | # PLEASE consider using mysql with innodb tables to avoid locking issues 5 | # 6 | # In your Quartz properties file, you'll need to set 7 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 8 | # 9 | 10 | DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; 11 | DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; 12 | DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; 13 | DROP TABLE IF EXISTS QRTZ_LOCKS; 14 | DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; 15 | DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; 16 | DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; 17 | DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; 18 | DROP TABLE IF EXISTS QRTZ_TRIGGERS; 19 | DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; 20 | DROP TABLE IF EXISTS QRTZ_CALENDARS; 21 | 22 | 23 | CREATE TABLE QRTZ_JOB_DETAILS 24 | ( 25 | SCHED_NAME VARCHAR(120) NOT NULL, 26 | JOB_NAME VARCHAR(200) NOT NULL, 27 | JOB_GROUP VARCHAR(200) NOT NULL, 28 | DESCRIPTION VARCHAR(250) NULL, 29 | JOB_CLASS_NAME VARCHAR(250) NOT NULL, 30 | IS_DURABLE VARCHAR(1) NOT NULL, 31 | IS_NONCONCURRENT VARCHAR(1) NOT NULL, 32 | IS_UPDATE_DATA VARCHAR(1) NOT NULL, 33 | REQUESTS_RECOVERY VARCHAR(1) NOT NULL, 34 | JOB_DATA BLOB NULL, 35 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 36 | ); 37 | 38 | CREATE TABLE QRTZ_TRIGGERS 39 | ( 40 | SCHED_NAME VARCHAR(120) NOT NULL, 41 | TRIGGER_NAME VARCHAR(200) NOT NULL, 42 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 43 | JOB_NAME VARCHAR(200) NOT NULL, 44 | JOB_GROUP VARCHAR(200) NOT NULL, 45 | DESCRIPTION VARCHAR(250) NULL, 46 | NEXT_FIRE_TIME BIGINT(13) NULL, 47 | PREV_FIRE_TIME BIGINT(13) NULL, 48 | PRIORITY INTEGER NULL, 49 | TRIGGER_STATE VARCHAR(16) NOT NULL, 50 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 51 | START_TIME BIGINT(13) NOT NULL, 52 | END_TIME BIGINT(13) NULL, 53 | CALENDAR_NAME VARCHAR(200) NULL, 54 | MISFIRE_INSTR SMALLINT(2) NULL, 55 | JOB_DATA BLOB NULL, 56 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 57 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 58 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 59 | ); 60 | 61 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS 62 | ( 63 | SCHED_NAME VARCHAR(120) NOT NULL, 64 | TRIGGER_NAME VARCHAR(200) NOT NULL, 65 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 66 | REPEAT_COUNT BIGINT(7) NOT NULL, 67 | REPEAT_INTERVAL BIGINT(12) NOT NULL, 68 | TIMES_TRIGGERED BIGINT(10) NOT NULL, 69 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 70 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 71 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 72 | ); 73 | 74 | CREATE TABLE QRTZ_CRON_TRIGGERS 75 | ( 76 | SCHED_NAME VARCHAR(120) NOT NULL, 77 | TRIGGER_NAME VARCHAR(200) NOT NULL, 78 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 79 | CRON_EXPRESSION VARCHAR(200) NOT NULL, 80 | TIME_ZONE_ID VARCHAR(80), 81 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 82 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 83 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 84 | ); 85 | 86 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 87 | ( 88 | SCHED_NAME VARCHAR(120) NOT NULL, 89 | TRIGGER_NAME VARCHAR(200) NOT NULL, 90 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 91 | STR_PROP_1 VARCHAR(512) NULL, 92 | STR_PROP_2 VARCHAR(512) NULL, 93 | STR_PROP_3 VARCHAR(512) NULL, 94 | INT_PROP_1 INT NULL, 95 | INT_PROP_2 INT NULL, 96 | LONG_PROP_1 BIGINT NULL, 97 | LONG_PROP_2 BIGINT NULL, 98 | DEC_PROP_1 NUMERIC(13,4) NULL, 99 | DEC_PROP_2 NUMERIC(13,4) NULL, 100 | BOOL_PROP_1 VARCHAR(1) NULL, 101 | BOOL_PROP_2 VARCHAR(1) NULL, 102 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 103 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 104 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 105 | ); 106 | 107 | CREATE TABLE QRTZ_BLOB_TRIGGERS 108 | ( 109 | SCHED_NAME VARCHAR(120) NOT NULL, 110 | TRIGGER_NAME VARCHAR(200) NOT NULL, 111 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 112 | BLOB_DATA BLOB NULL, 113 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 114 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 115 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 116 | ); 117 | 118 | CREATE TABLE QRTZ_CALENDARS 119 | ( 120 | SCHED_NAME VARCHAR(120) NOT NULL, 121 | CALENDAR_NAME VARCHAR(200) NOT NULL, 122 | CALENDAR BLOB NOT NULL, 123 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 124 | ); 125 | 126 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS 127 | ( 128 | SCHED_NAME VARCHAR(120) NOT NULL, 129 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 130 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 131 | ); 132 | 133 | CREATE TABLE QRTZ_FIRED_TRIGGERS 134 | ( 135 | SCHED_NAME VARCHAR(120) NOT NULL, 136 | ENTRY_ID VARCHAR(95) NOT NULL, 137 | TRIGGER_NAME VARCHAR(200) NOT NULL, 138 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 139 | INSTANCE_NAME VARCHAR(200) NOT NULL, 140 | FIRED_TIME BIGINT(13) NOT NULL, 141 | SCHED_TIME BIGINT(13) NOT NULL, 142 | PRIORITY INTEGER NOT NULL, 143 | STATE VARCHAR(16) NOT NULL, 144 | JOB_NAME VARCHAR(200) NULL, 145 | JOB_GROUP VARCHAR(200) NULL, 146 | IS_NONCONCURRENT VARCHAR(1) NULL, 147 | REQUESTS_RECOVERY VARCHAR(1) NULL, 148 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 149 | ); 150 | 151 | CREATE TABLE QRTZ_SCHEDULER_STATE 152 | ( 153 | SCHED_NAME VARCHAR(120) NOT NULL, 154 | INSTANCE_NAME VARCHAR(200) NOT NULL, 155 | LAST_CHECKIN_TIME BIGINT(13) NOT NULL, 156 | CHECKIN_INTERVAL BIGINT(13) NOT NULL, 157 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 158 | ); 159 | 160 | CREATE TABLE QRTZ_LOCKS 161 | ( 162 | SCHED_NAME VARCHAR(120) NOT NULL, 163 | LOCK_NAME VARCHAR(40) NOT NULL, 164 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 165 | ); 166 | 167 | 168 | commit; 169 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_db2_v72.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- Thanks to Horia Muntean for submitting this, Mikkel Heisterberg for updating it 3 | -- 4 | -- .. known to work with DB2 7.2 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver" 5 | -- .. likely to work with others... 6 | -- 7 | -- In your Quartz properties file, you'll need to set 8 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate 9 | -- 10 | -- or 11 | -- 12 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 13 | -- 14 | -- If you're using DB2 6.x you'll want to set this property to 15 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate 16 | -- 17 | -- Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in 18 | -- that blob - i.e. limits the amount of data you can put into your JobDataMap 19 | -- 20 | 21 | DROP TABLE QRTZ_FIRED_TRIGGERS; 22 | DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; 23 | DROP TABLE QRTZ_SCHEDULER_STATE; 24 | DROP TABLE QRTZ_LOCKS; 25 | DROP TABLE QRTZ_SIMPLE_TRIGGERS; 26 | DROP TABLE QRTZ_SIMPROP_TRIGGERS; 27 | DROP TABLE QRTZ_CRON_TRIGGERS; 28 | DROP TABLE QRTZ_TRIGGERS; 29 | DROP TABLE QRTZ_JOB_DETAILS; 30 | DROP TABLE QRTZ_CALENDARS; 31 | DROP TABLE QRTZ_BLOB_TRIGGERS; 32 | 33 | create table qrtz_job_details ( 34 | sched_name varchar(120) not null, 35 | job_name varchar(80) not null, 36 | job_group varchar(80) not null, 37 | description varchar(120), 38 | job_class_name varchar(128) not null, 39 | is_durable varchar(1) not null, 40 | is_nonconcurrent varchar(1) not null, 41 | is_update_data varchar(1) not null, 42 | requests_recovery varchar(1) not null, 43 | job_data blob(2000), 44 | primary key (sched_name,job_name,job_group) 45 | ); 46 | 47 | create table qrtz_triggers( 48 | sched_name varchar(120) not null, 49 | trigger_name varchar(80) not null, 50 | trigger_group varchar(80) not null, 51 | job_name varchar(80) not null, 52 | job_group varchar(80) not null, 53 | description varchar(120), 54 | next_fire_time bigint, 55 | prev_fire_time bigint, 56 | priority integer, 57 | trigger_state varchar(16) not null, 58 | trigger_type varchar(8) not null, 59 | start_time bigint not null, 60 | end_time bigint, 61 | calendar_name varchar(80), 62 | misfire_instr smallint, 63 | job_data blob(2000), 64 | primary key (sched_name,trigger_name,trigger_group), 65 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 66 | ); 67 | 68 | create table qrtz_simple_triggers( 69 | sched_name varchar(120) not null, 70 | trigger_name varchar(80) not null, 71 | trigger_group varchar(80) not null, 72 | repeat_count bigint not null, 73 | repeat_interval bigint not null, 74 | times_triggered bigint not null, 75 | primary key (sched_name,trigger_name,trigger_group), 76 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 77 | ); 78 | 79 | create table qrtz_cron_triggers( 80 | sched_name varchar(120) not null, 81 | trigger_name varchar(80) not null, 82 | trigger_group varchar(80) not null, 83 | cron_expression varchar(120) not null, 84 | time_zone_id varchar(80), 85 | primary key (sched_name,trigger_name,trigger_group), 86 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 87 | ); 88 | 89 | CREATE TABLE qrtz_simprop_triggers 90 | ( 91 | sched_name varchar(120) not null, 92 | TRIGGER_NAME VARCHAR(200) NOT NULL, 93 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 94 | STR_PROP_1 VARCHAR(512) NULL, 95 | STR_PROP_2 VARCHAR(512) NULL, 96 | STR_PROP_3 VARCHAR(512) NULL, 97 | INT_PROP_1 INT NULL, 98 | INT_PROP_2 INT NULL, 99 | LONG_PROP_1 BIGINT NULL, 100 | LONG_PROP_2 BIGINT NULL, 101 | DEC_PROP_1 NUMERIC(13,4) NULL, 102 | DEC_PROP_2 NUMERIC(13,4) NULL, 103 | BOOL_PROP_1 VARCHAR(1) NULL, 104 | BOOL_PROP_2 VARCHAR(1) NULL, 105 | PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP), 106 | FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP) 107 | REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP) 108 | ); 109 | 110 | create table qrtz_blob_triggers( 111 | sched_name varchar(120) not null, 112 | trigger_name varchar(80) not null, 113 | trigger_group varchar(80) not null, 114 | blob_data blob(2000), 115 | primary key (sched_name,trigger_name,trigger_group), 116 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 117 | ); 118 | 119 | create table qrtz_calendars( 120 | sched_name varchar(120) not null, 121 | calendar_name varchar(80) not null, 122 | calendar blob(2000) not null, 123 | primary key (sched_name,calendar_name) 124 | ); 125 | 126 | create table qrtz_fired_triggers( 127 | sched_name varchar(120) not null, 128 | entry_id varchar(95) not null, 129 | trigger_name varchar(80) not null, 130 | trigger_group varchar(80) not null, 131 | instance_name varchar(80) not null, 132 | fired_time bigint not null, 133 | sched_time bigint not null, 134 | priority integer not null, 135 | state varchar(16) not null, 136 | job_name varchar(80), 137 | job_group varchar(80), 138 | is_nonconcurrent varchar(1), 139 | requests_recovery varchar(1), 140 | primary key (sched_name,entry_id) 141 | ); 142 | 143 | 144 | create table qrtz_paused_trigger_grps( 145 | sched_name varchar(120) not null, 146 | trigger_group varchar(80) not null, 147 | primary key (sched_name,trigger_group) 148 | ); 149 | 150 | create table qrtz_scheduler_state ( 151 | sched_name varchar(120) not null, 152 | instance_name varchar(80) not null, 153 | last_checkin_time bigint not null, 154 | checkin_interval bigint not null, 155 | primary key (sched_name,instance_name) 156 | ); 157 | 158 | create table qrtz_locks 159 | ( 160 | sched_name varchar(120) not null, 161 | lock_name varchar(40) not null, 162 | primary key (sched_name,lock_name) 163 | ); 164 | -------------------------------------------------------------------------------- /src/main/resources/log4j.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_pointbase.sql: -------------------------------------------------------------------------------- 1 | # 2 | # Thanks to Gregg Freeman 3 | # 4 | # 5 | # ...you may want to change defined the size of the "blob" columns before 6 | # creating the tables (particularly for the qrtz_job_details.job_data column), 7 | # if you will be storing large amounts of data in them 8 | # 9 | # 10 | delete from qrtz_fired_triggers; 11 | delete from qrtz_simple_triggers; 12 | delete from qrtz_simprop_triggers; 13 | delete from qrtz_cron_triggers; 14 | delete from qrtz_blob_triggers; 15 | delete from qrtz_triggers; 16 | delete from qrtz_job_details; 17 | delete from qrtz_calendars; 18 | delete from qrtz_paused_trigger_grps; 19 | delete from qrtz_locks; 20 | delete from qrtz_scheduler_state; 21 | 22 | drop table qrtz_calendars; 23 | drop table qrtz_fired_triggers; 24 | drop table qrtz_blob_triggers; 25 | drop table qrtz_cron_triggers; 26 | drop table qrtz_simple_triggers; 27 | drop table qrtz_simprop_triggers; 28 | drop table qrtz_triggers; 29 | drop table qrtz_job_details; 30 | drop table qrtz_paused_trigger_grps; 31 | drop table qrtz_locks; 32 | drop table qrtz_scheduler_state; 33 | 34 | 35 | CREATE TABLE qrtz_job_details 36 | ( 37 | SCHED_NAME VARCHAR(120) NOT NULL, 38 | JOB_NAME VARCHAR2(80) NOT NULL, 39 | JOB_GROUP VARCHAR2(80) NOT NULL, 40 | DESCRIPTION VARCHAR2(120) NULL, 41 | JOB_CLASS_NAME VARCHAR2(128) NOT NULL, 42 | IS_DURABLE BOOLEAN NOT NULL, 43 | IS_NONCONCURRENT BOOLEAN NOT NULL, 44 | IS_UPDATE_DATA BOOLEAN NOT NULL, 45 | REQUESTS_RECOVERY BOOLEAN NOT NULL, 46 | JOB_DATA BLOB(4K) NULL, 47 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 48 | ); 49 | 50 | CREATE TABLE qrtz_triggers 51 | ( 52 | SCHED_NAME VARCHAR(120) NOT NULL, 53 | TRIGGER_NAME VARCHAR2(80) NOT NULL, 54 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 55 | JOB_NAME VARCHAR2(80) NOT NULL, 56 | JOB_GROUP VARCHAR2(80) NOT NULL, 57 | DESCRIPTION VARCHAR2(120) NULL, 58 | NEXT_FIRE_TIME NUMBER(13) NULL, 59 | PREV_FIRE_TIME NUMBER(13) NULL, 60 | PRIORITY NUMBER(13) NULL, 61 | TRIGGER_STATE VARCHAR2(16) NOT NULL, 62 | TRIGGER_TYPE VARCHAR2(8) NOT NULL, 63 | START_TIME NUMBER(13) NOT NULL, 64 | END_TIME NUMBER(13) NULL, 65 | CALENDAR_NAME VARCHAR2(80) NULL, 66 | MISFIRE_INSTR NUMBER(2) NULL, 67 | JOB_DATA BLOB(4K) NULL, 68 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 69 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 70 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 71 | ); 72 | 73 | CREATE TABLE qrtz_simple_triggers 74 | ( 75 | SCHED_NAME VARCHAR(120) NOT NULL, 76 | TRIGGER_NAME VARCHAR2(80) NOT NULL, 77 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 78 | REPEAT_COUNT NUMBER(7) NOT NULL, 79 | REPEAT_INTERVAL NUMBER(12) NOT NULL, 80 | TIMES_TRIGGERED NUMBER(10) NOT NULL, 81 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 82 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 83 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 84 | ); 85 | 86 | 87 | CREATE TABLE qrtz_simprop_triggers 88 | ( 89 | SCHED_NAME VARCHAR(120) NOT NULL, 90 | TRIGGER_NAME VARCHAR(200) NOT NULL, 91 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 92 | STR_PROP_1 VARCHAR(512) NULL, 93 | STR_PROP_2 VARCHAR(512) NULL, 94 | STR_PROP_3 VARCHAR(512) NULL, 95 | INT_PROP_1 NUMBER(10) NULL, 96 | INT_PROP_2 NUMBER(10) NULL, 97 | LONG_PROP_1 NUMBER(13) NULL, 98 | LONG_PROP_2 NUMBER(13) NULL, 99 | DEC_PROP_1 NUMERIC(13,4) NULL, 100 | DEC_PROP_2 NUMERIC(13,4) NULL, 101 | BOOL_PROP_1 BOOLEAN NULL, 102 | BOOL_PROP_2 BOOLEAN NULL, 103 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 104 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 105 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 106 | ); 107 | 108 | CREATE TABLE qrtz_cron_triggers 109 | ( 110 | SCHED_NAME VARCHAR(120) NOT NULL, 111 | TRIGGER_NAME VARCHAR2(80) NOT NULL, 112 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 113 | CRON_EXPRESSION VARCHAR2(120) NOT NULL, 114 | TIME_ZONE_ID VARCHAR2(80), 115 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 116 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 117 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 118 | ); 119 | 120 | CREATE TABLE qrtz_blob_triggers 121 | ( 122 | SCHED_NAME VARCHAR(120) NOT NULL, 123 | TRIGGER_NAME VARCHAR2(80) NOT NULL, 124 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 125 | BLOB_DATA BLOB(4K) NULL, 126 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 127 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 128 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 129 | ); 130 | 131 | CREATE TABLE qrtz_calendars 132 | ( 133 | SCHED_NAME VARCHAR(120) NOT NULL, 134 | CALENDAR_NAME VARCHAR2(80) NOT NULL, 135 | CALENDAR BLOB(4K) NOT NULL, 136 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 137 | ); 138 | 139 | CREATE TABLE qrtz_paused_trigger_grps 140 | ( 141 | SCHED_NAME VARCHAR(120) NOT NULL, 142 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 143 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 144 | ); 145 | 146 | CREATE TABLE qrtz_fired_triggers 147 | ( 148 | SCHED_NAME VARCHAR(120) NOT NULL, 149 | ENTRY_ID VARCHAR2(95) NOT NULL, 150 | TRIGGER_NAME VARCHAR2(80) NOT NULL, 151 | TRIGGER_GROUP VARCHAR2(80) NOT NULL, 152 | INSTANCE_NAME VARCHAR2(80) NOT NULL, 153 | FIRED_TIME NUMBER(13) NOT NULL, 154 | SCHED_TIME NUMBER(13) NOT NULL, 155 | PRIORITY NUMBER(13) NOT NULL, 156 | STATE VARCHAR2(16) NOT NULL, 157 | JOB_NAME VARCHAR2(80) NULL, 158 | JOB_GROUP VARCHAR2(80) NULL, 159 | IS_NONCONCURRENT BOOLEAN NULL, 160 | REQUESTS_RECOVERY BOOLEAN NULL, 161 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 162 | ); 163 | 164 | CREATE TABLE qrtz_scheduler_state 165 | ( 166 | SCHED_NAME VARCHAR(120) NOT NULL, 167 | INSTANCE_NAME VARCHAR2(80) NOT NULL, 168 | LAST_CHECKIN_TIME NUMBER(13) NOT NULL, 169 | CHECKIN_INTERVAL NUMBER(13) NOT NULL, 170 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 171 | ); 172 | 173 | CREATE TABLE qrtz_locks 174 | ( 175 | SCHED_NAME VARCHAR(120) NOT NULL, 176 | LOCK_NAME VARCHAR2(40) NOT NULL, 177 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 178 | ); 179 | 180 | commit; 181 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_derby.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- Apache Derby scripts by Steve Stewart, updated by Ronald Pomeroy 3 | -- Based on Srinivas Venkatarangaiah's file for Cloudscape 4 | -- 5 | -- Known to work with Apache Derby 10.0.2.1, or 10.6.2.1 6 | -- 7 | -- Updated by Zemian Deng on 08/21/2011 8 | -- * Fixed nullable fields on qrtz_simprop_triggers table. 9 | -- * Added Derby QuickStart comments and drop tables statements. 10 | -- 11 | -- DerbyDB + Quartz Quick Guide: 12 | -- * Derby comes with Oracle JDK! For Java6, it default install into C:/Program Files/Sun/JavaDB on Windows. 13 | -- 1. Create a derby.properties file under JavaDB directory, and have the following: 14 | -- derby.connection.requireAuthentication = true 15 | -- derby.authentication.provider = BUILTIN 16 | -- derby.user.quartz2=quartz2123 17 | -- 2. Start the DB server by running bin/startNetworkServer script. 18 | -- 3. On a new terminal, run bin/ij tool to bring up an SQL prompt, then run: 19 | -- connect 'jdbc:derby://localhost:1527/quartz2;user=quartz2;password=quartz2123;create=true'; 20 | -- run 'quartz/docs/dbTables/tables_derby.sql'; 21 | -- Now in quartz.properties, you may use these properties: 22 | -- org.quartz.dataSource.quartzDataSource.driver = org.apache.derby.jdbc.ClientDriver 23 | -- org.quartz.dataSource.quartzDataSource.URL = jdbc:derby://localhost:1527/quartz2 24 | -- org.quartz.dataSource.quartzDataSource.user = quartz2 25 | -- org.quartz.dataSource.quartzDataSource.password = quartz2123 26 | -- 27 | 28 | -- Auto drop and reset tables 29 | -- Derby doesn't support if exists condition on table drop, so user must manually do this step if needed to. 30 | -- drop table qrtz_fired_triggers; 31 | -- drop table qrtz_paused_trigger_grps; 32 | -- drop table qrtz_scheduler_state; 33 | -- drop table qrtz_locks; 34 | -- drop table qrtz_simple_triggers; 35 | -- drop table qrtz_simprop_triggers; 36 | -- drop table qrtz_cron_triggers; 37 | -- drop table qrtz_blob_triggers; 38 | -- drop table qrtz_triggers; 39 | -- drop table qrtz_job_details; 40 | -- drop table qrtz_calendars; 41 | 42 | create table qrtz_job_details ( 43 | sched_name varchar(120) not null, 44 | job_name varchar(200) not null, 45 | job_group varchar(200) not null, 46 | description varchar(250) , 47 | job_class_name varchar(250) not null, 48 | is_durable varchar(5) not null, 49 | is_nonconcurrent varchar(5) not null, 50 | is_update_data varchar(5) not null, 51 | requests_recovery varchar(5) not null, 52 | job_data blob, 53 | primary key (sched_name,job_name,job_group) 54 | ); 55 | 56 | create table qrtz_triggers( 57 | sched_name varchar(120) not null, 58 | trigger_name varchar(200) not null, 59 | trigger_group varchar(200) not null, 60 | job_name varchar(200) not null, 61 | job_group varchar(200) not null, 62 | description varchar(250), 63 | next_fire_time bigint, 64 | prev_fire_time bigint, 65 | priority integer, 66 | trigger_state varchar(16) not null, 67 | trigger_type varchar(8) not null, 68 | start_time bigint not null, 69 | end_time bigint, 70 | calendar_name varchar(200), 71 | misfire_instr smallint, 72 | job_data blob, 73 | primary key (sched_name,trigger_name,trigger_group), 74 | foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group) 75 | ); 76 | 77 | create table qrtz_simple_triggers( 78 | sched_name varchar(120) not null, 79 | trigger_name varchar(200) not null, 80 | trigger_group varchar(200) not null, 81 | repeat_count bigint not null, 82 | repeat_interval bigint not null, 83 | times_triggered bigint not null, 84 | primary key (sched_name,trigger_name,trigger_group), 85 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 86 | ); 87 | 88 | create table qrtz_cron_triggers( 89 | sched_name varchar(120) not null, 90 | trigger_name varchar(200) not null, 91 | trigger_group varchar(200) not null, 92 | cron_expression varchar(120) not null, 93 | time_zone_id varchar(80), 94 | primary key (sched_name,trigger_name,trigger_group), 95 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 96 | ); 97 | 98 | create table qrtz_simprop_triggers 99 | ( 100 | sched_name varchar(120) not null, 101 | trigger_name varchar(200) not null, 102 | trigger_group varchar(200) not null, 103 | str_prop_1 varchar(512), 104 | str_prop_2 varchar(512), 105 | str_prop_3 varchar(512), 106 | int_prop_1 int, 107 | int_prop_2 int, 108 | long_prop_1 bigint, 109 | long_prop_2 bigint, 110 | dec_prop_1 numeric(13,4), 111 | dec_prop_2 numeric(13,4), 112 | bool_prop_1 varchar(5), 113 | bool_prop_2 varchar(5), 114 | primary key (sched_name,trigger_name,trigger_group), 115 | foreign key (sched_name,trigger_name,trigger_group) 116 | references qrtz_triggers(sched_name,trigger_name,trigger_group) 117 | ); 118 | 119 | create table qrtz_blob_triggers( 120 | sched_name varchar(120) not null, 121 | trigger_name varchar(200) not null, 122 | trigger_group varchar(200) not null, 123 | blob_data blob, 124 | primary key (sched_name,trigger_name,trigger_group), 125 | foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group) 126 | ); 127 | 128 | create table qrtz_calendars( 129 | sched_name varchar(120) not null, 130 | calendar_name varchar(200) not null, 131 | calendar blob not null, 132 | primary key (sched_name,calendar_name) 133 | ); 134 | 135 | create table qrtz_paused_trigger_grps 136 | ( 137 | sched_name varchar(120) not null, 138 | trigger_group varchar(200) not null, 139 | primary key (sched_name,trigger_group) 140 | ); 141 | 142 | create table qrtz_fired_triggers( 143 | sched_name varchar(120) not null, 144 | entry_id varchar(95) not null, 145 | trigger_name varchar(200) not null, 146 | trigger_group varchar(200) not null, 147 | instance_name varchar(200) not null, 148 | fired_time bigint not null, 149 | sched_time bigint not null, 150 | priority integer not null, 151 | state varchar(16) not null, 152 | job_name varchar(200), 153 | job_group varchar(200), 154 | is_nonconcurrent varchar(5), 155 | requests_recovery varchar(5), 156 | primary key (sched_name,entry_id) 157 | ); 158 | 159 | create table qrtz_scheduler_state 160 | ( 161 | sched_name varchar(120) not null, 162 | instance_name varchar(200) not null, 163 | last_checkin_time bigint not null, 164 | checkin_interval bigint not null, 165 | primary key (sched_name,instance_name) 166 | ); 167 | 168 | create table qrtz_locks 169 | ( 170 | sched_name varchar(120) not null, 171 | lock_name varchar(40) not null, 172 | primary key (sched_name,lock_name) 173 | ); 174 | 175 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_h2.sql: -------------------------------------------------------------------------------- 1 | -- Thanks to Amir Kibbar and Peter Rietzler for contributing the schema for H2 database, 2 | -- and verifying that it works with Quartz's StdJDBCDelegate 3 | -- 4 | -- Note, Quartz depends on row-level locking which means you must use the MVCC=TRUE 5 | -- setting on your H2 database, or you will experience dead-locks 6 | -- 7 | -- 8 | -- In your Quartz properties file, you'll need to set 9 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 10 | 11 | CREATE TABLE QRTZ_CALENDARS ( 12 | SCHED_NAME VARCHAR(120) NOT NULL, 13 | CALENDAR_NAME VARCHAR (200) NOT NULL , 14 | CALENDAR IMAGE NOT NULL 15 | ); 16 | 17 | CREATE TABLE QRTZ_CRON_TRIGGERS ( 18 | SCHED_NAME VARCHAR(120) NOT NULL, 19 | TRIGGER_NAME VARCHAR (200) NOT NULL , 20 | TRIGGER_GROUP VARCHAR (200) NOT NULL , 21 | CRON_EXPRESSION VARCHAR (120) NOT NULL , 22 | TIME_ZONE_ID VARCHAR (80) 23 | ); 24 | 25 | CREATE TABLE QRTZ_FIRED_TRIGGERS ( 26 | SCHED_NAME VARCHAR(120) NOT NULL, 27 | ENTRY_ID VARCHAR (95) NOT NULL , 28 | TRIGGER_NAME VARCHAR (200) NOT NULL , 29 | TRIGGER_GROUP VARCHAR (200) NOT NULL , 30 | INSTANCE_NAME VARCHAR (200) NOT NULL , 31 | FIRED_TIME BIGINT NOT NULL , 32 | SCHED_TIME BIGINT NOT NULL , 33 | PRIORITY INTEGER NOT NULL , 34 | STATE VARCHAR (16) NOT NULL, 35 | JOB_NAME VARCHAR (200) NULL , 36 | JOB_GROUP VARCHAR (200) NULL , 37 | IS_NONCONCURRENT BOOLEAN NULL , 38 | REQUESTS_RECOVERY BOOLEAN NULL 39 | ); 40 | 41 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( 42 | SCHED_NAME VARCHAR(120) NOT NULL, 43 | TRIGGER_GROUP VARCHAR (200) NOT NULL 44 | ); 45 | 46 | CREATE TABLE QRTZ_SCHEDULER_STATE ( 47 | SCHED_NAME VARCHAR(120) NOT NULL, 48 | INSTANCE_NAME VARCHAR (200) NOT NULL , 49 | LAST_CHECKIN_TIME BIGINT NOT NULL , 50 | CHECKIN_INTERVAL BIGINT NOT NULL 51 | ); 52 | 53 | CREATE TABLE QRTZ_LOCKS ( 54 | SCHED_NAME VARCHAR(120) NOT NULL, 55 | LOCK_NAME VARCHAR (40) NOT NULL 56 | ); 57 | 58 | CREATE TABLE QRTZ_JOB_DETAILS ( 59 | SCHED_NAME VARCHAR(120) NOT NULL, 60 | JOB_NAME VARCHAR (200) NOT NULL , 61 | JOB_GROUP VARCHAR (200) NOT NULL , 62 | DESCRIPTION VARCHAR (250) NULL , 63 | JOB_CLASS_NAME VARCHAR (250) NOT NULL , 64 | IS_DURABLE BOOLEAN NOT NULL , 65 | IS_NONCONCURRENT BOOLEAN NOT NULL , 66 | IS_UPDATE_DATA BOOLEAN NOT NULL , 67 | REQUESTS_RECOVERY BOOLEAN NOT NULL , 68 | JOB_DATA IMAGE NULL 69 | ); 70 | 71 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( 72 | SCHED_NAME VARCHAR(120) NOT NULL, 73 | TRIGGER_NAME VARCHAR (200) NOT NULL , 74 | TRIGGER_GROUP VARCHAR (200) NOT NULL , 75 | REPEAT_COUNT BIGINT NOT NULL , 76 | REPEAT_INTERVAL BIGINT NOT NULL , 77 | TIMES_TRIGGERED BIGINT NOT NULL 78 | ); 79 | 80 | CREATE TABLE qrtz_simprop_triggers 81 | ( 82 | SCHED_NAME VARCHAR(120) NOT NULL, 83 | TRIGGER_NAME VARCHAR(200) NOT NULL, 84 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 85 | STR_PROP_1 VARCHAR(512) NULL, 86 | STR_PROP_2 VARCHAR(512) NULL, 87 | STR_PROP_3 VARCHAR(512) NULL, 88 | INT_PROP_1 INTEGER NULL, 89 | INT_PROP_2 INTEGER NULL, 90 | LONG_PROP_1 BIGINT NULL, 91 | LONG_PROP_2 BIGINT NULL, 92 | DEC_PROP_1 NUMERIC(13,4) NULL, 93 | DEC_PROP_2 NUMERIC(13,4) NULL, 94 | BOOL_PROP_1 BOOLEAN NULL, 95 | BOOL_PROP_2 BOOLEAN NULL, 96 | ); 97 | 98 | CREATE TABLE QRTZ_BLOB_TRIGGERS ( 99 | SCHED_NAME VARCHAR(120) NOT NULL, 100 | TRIGGER_NAME VARCHAR (200) NOT NULL , 101 | TRIGGER_GROUP VARCHAR (200) NOT NULL , 102 | BLOB_DATA IMAGE NULL 103 | ); 104 | 105 | CREATE TABLE QRTZ_TRIGGERS ( 106 | SCHED_NAME VARCHAR(120) NOT NULL, 107 | TRIGGER_NAME VARCHAR (200) NOT NULL , 108 | TRIGGER_GROUP VARCHAR (200) NOT NULL , 109 | JOB_NAME VARCHAR (200) NOT NULL , 110 | JOB_GROUP VARCHAR (200) NOT NULL , 111 | DESCRIPTION VARCHAR (250) NULL , 112 | NEXT_FIRE_TIME BIGINT NULL , 113 | PREV_FIRE_TIME BIGINT NULL , 114 | PRIORITY INTEGER NULL , 115 | TRIGGER_STATE VARCHAR (16) NOT NULL , 116 | TRIGGER_TYPE VARCHAR (8) NOT NULL , 117 | START_TIME BIGINT NOT NULL , 118 | END_TIME BIGINT NULL , 119 | CALENDAR_NAME VARCHAR (200) NULL , 120 | MISFIRE_INSTR SMALLINT NULL , 121 | JOB_DATA IMAGE NULL 122 | ); 123 | 124 | ALTER TABLE QRTZ_CALENDARS ADD 125 | CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY 126 | ( 127 | SCHED_NAME, 128 | CALENDAR_NAME 129 | ); 130 | 131 | ALTER TABLE QRTZ_CRON_TRIGGERS ADD 132 | CONSTRAINT PK_QRTZ_CRON_TRIGGERS PRIMARY KEY 133 | ( 134 | SCHED_NAME, 135 | TRIGGER_NAME, 136 | TRIGGER_GROUP 137 | ); 138 | 139 | ALTER TABLE QRTZ_FIRED_TRIGGERS ADD 140 | CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY 141 | ( 142 | SCHED_NAME, 143 | ENTRY_ID 144 | ); 145 | 146 | ALTER TABLE QRTZ_PAUSED_TRIGGER_GRPS ADD 147 | CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY 148 | ( 149 | SCHED_NAME, 150 | TRIGGER_GROUP 151 | ); 152 | 153 | ALTER TABLE QRTZ_SCHEDULER_STATE ADD 154 | CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY 155 | ( 156 | SCHED_NAME, 157 | INSTANCE_NAME 158 | ); 159 | 160 | ALTER TABLE QRTZ_LOCKS ADD 161 | CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY 162 | ( 163 | SCHED_NAME, 164 | LOCK_NAME 165 | ); 166 | 167 | ALTER TABLE QRTZ_JOB_DETAILS ADD 168 | CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY 169 | ( 170 | SCHED_NAME, 171 | JOB_NAME, 172 | JOB_GROUP 173 | ); 174 | 175 | ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD 176 | CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY 177 | ( 178 | SCHED_NAME, 179 | TRIGGER_NAME, 180 | TRIGGER_GROUP 181 | ); 182 | 183 | ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD 184 | CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY 185 | ( 186 | SCHED_NAME, 187 | TRIGGER_NAME, 188 | TRIGGER_GROUP 189 | ); 190 | 191 | ALTER TABLE QRTZ_TRIGGERS ADD 192 | CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY 193 | ( 194 | SCHED_NAME, 195 | TRIGGER_NAME, 196 | TRIGGER_GROUP 197 | ); 198 | 199 | ALTER TABLE QRTZ_CRON_TRIGGERS ADD 200 | CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY 201 | ( 202 | SCHED_NAME, 203 | TRIGGER_NAME, 204 | TRIGGER_GROUP 205 | ) REFERENCES QRTZ_TRIGGERS ( 206 | SCHED_NAME, 207 | TRIGGER_NAME, 208 | TRIGGER_GROUP 209 | ) ON DELETE CASCADE; 210 | 211 | 212 | ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD 213 | CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY 214 | ( 215 | SCHED_NAME, 216 | TRIGGER_NAME, 217 | TRIGGER_GROUP 218 | ) REFERENCES QRTZ_TRIGGERS ( 219 | SCHED_NAME, 220 | TRIGGER_NAME, 221 | TRIGGER_GROUP 222 | ) ON DELETE CASCADE; 223 | 224 | ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD 225 | CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY 226 | ( 227 | SCHED_NAME, 228 | TRIGGER_NAME, 229 | TRIGGER_GROUP 230 | ) REFERENCES QRTZ_TRIGGERS ( 231 | SCHED_NAME, 232 | TRIGGER_NAME, 233 | TRIGGER_GROUP 234 | ) ON DELETE CASCADE; 235 | 236 | 237 | ALTER TABLE QRTZ_TRIGGERS ADD 238 | CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS FOREIGN KEY 239 | ( 240 | SCHED_NAME, 241 | JOB_NAME, 242 | JOB_GROUP 243 | ) REFERENCES QRTZ_JOB_DETAILS ( 244 | SCHED_NAME, 245 | JOB_NAME, 246 | JOB_GROUP 247 | ); 248 | 249 | COMMIT; 250 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_postgres.sql: -------------------------------------------------------------------------------- 1 | -- Thanks to Patrick Lightbody for submitting this... 2 | -- 3 | -- In your Quartz properties file, you'll need to set 4 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate 5 | 6 | drop table qrtz_fired_triggers; 7 | DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS; 8 | DROP TABLE QRTZ_SCHEDULER_STATE; 9 | DROP TABLE QRTZ_LOCKS; 10 | drop table qrtz_simple_triggers; 11 | drop table qrtz_cron_triggers; 12 | drop table qrtz_simprop_triggers; 13 | DROP TABLE QRTZ_BLOB_TRIGGERS; 14 | drop table qrtz_triggers; 15 | drop table qrtz_job_details; 16 | drop table qrtz_calendars; 17 | 18 | CREATE TABLE qrtz_job_details 19 | ( 20 | SCHED_NAME VARCHAR(120) NOT NULL, 21 | JOB_NAME VARCHAR(200) NOT NULL, 22 | JOB_GROUP VARCHAR(200) NOT NULL, 23 | DESCRIPTION VARCHAR(250) NULL, 24 | JOB_CLASS_NAME VARCHAR(250) NOT NULL, 25 | IS_DURABLE BOOL NOT NULL, 26 | IS_NONCONCURRENT BOOL NOT NULL, 27 | IS_UPDATE_DATA BOOL NOT NULL, 28 | REQUESTS_RECOVERY BOOL NOT NULL, 29 | JOB_DATA BYTEA NULL, 30 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 31 | ); 32 | 33 | CREATE TABLE qrtz_triggers 34 | ( 35 | SCHED_NAME VARCHAR(120) NOT NULL, 36 | TRIGGER_NAME VARCHAR(200) NOT NULL, 37 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 38 | JOB_NAME VARCHAR(200) NOT NULL, 39 | JOB_GROUP VARCHAR(200) NOT NULL, 40 | DESCRIPTION VARCHAR(250) NULL, 41 | NEXT_FIRE_TIME BIGINT NULL, 42 | PREV_FIRE_TIME BIGINT NULL, 43 | PRIORITY INTEGER NULL, 44 | TRIGGER_STATE VARCHAR(16) NOT NULL, 45 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 46 | START_TIME BIGINT NOT NULL, 47 | END_TIME BIGINT NULL, 48 | CALENDAR_NAME VARCHAR(200) NULL, 49 | MISFIRE_INSTR SMALLINT NULL, 50 | JOB_DATA BYTEA NULL, 51 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 52 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 53 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 54 | ); 55 | 56 | CREATE TABLE qrtz_simple_triggers 57 | ( 58 | SCHED_NAME VARCHAR(120) NOT NULL, 59 | TRIGGER_NAME VARCHAR(200) NOT NULL, 60 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 61 | REPEAT_COUNT BIGINT NOT NULL, 62 | REPEAT_INTERVAL BIGINT NOT NULL, 63 | TIMES_TRIGGERED BIGINT NOT NULL, 64 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 65 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 66 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 67 | ); 68 | 69 | CREATE TABLE qrtz_cron_triggers 70 | ( 71 | SCHED_NAME VARCHAR(120) NOT NULL, 72 | TRIGGER_NAME VARCHAR(200) NOT NULL, 73 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 74 | CRON_EXPRESSION VARCHAR(120) NOT NULL, 75 | TIME_ZONE_ID VARCHAR(80), 76 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 77 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 78 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 79 | ); 80 | 81 | CREATE TABLE qrtz_simprop_triggers 82 | ( 83 | SCHED_NAME VARCHAR(120) NOT NULL, 84 | TRIGGER_NAME VARCHAR(200) NOT NULL, 85 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 86 | STR_PROP_1 VARCHAR(512) NULL, 87 | STR_PROP_2 VARCHAR(512) NULL, 88 | STR_PROP_3 VARCHAR(512) NULL, 89 | INT_PROP_1 INT NULL, 90 | INT_PROP_2 INT NULL, 91 | LONG_PROP_1 BIGINT NULL, 92 | LONG_PROP_2 BIGINT NULL, 93 | DEC_PROP_1 NUMERIC(13,4) NULL, 94 | DEC_PROP_2 NUMERIC(13,4) NULL, 95 | BOOL_PROP_1 BOOL NULL, 96 | BOOL_PROP_2 BOOL NULL, 97 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 98 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 99 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 100 | ); 101 | 102 | CREATE TABLE qrtz_blob_triggers 103 | ( 104 | SCHED_NAME VARCHAR(120) NOT NULL, 105 | TRIGGER_NAME VARCHAR(200) NOT NULL, 106 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 107 | BLOB_DATA BYTEA NULL, 108 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 109 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 110 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 111 | ); 112 | 113 | CREATE TABLE qrtz_calendars 114 | ( 115 | SCHED_NAME VARCHAR(120) NOT NULL, 116 | CALENDAR_NAME VARCHAR(200) NOT NULL, 117 | CALENDAR BYTEA NOT NULL, 118 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 119 | ); 120 | 121 | 122 | CREATE TABLE qrtz_paused_trigger_grps 123 | ( 124 | SCHED_NAME VARCHAR(120) NOT NULL, 125 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 126 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 127 | ); 128 | 129 | CREATE TABLE qrtz_fired_triggers 130 | ( 131 | SCHED_NAME VARCHAR(120) NOT NULL, 132 | ENTRY_ID VARCHAR(95) NOT NULL, 133 | TRIGGER_NAME VARCHAR(200) NOT NULL, 134 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 135 | INSTANCE_NAME VARCHAR(200) NOT NULL, 136 | FIRED_TIME BIGINT NOT NULL, 137 | SCHED_TIME BIGINT NOT NULL, 138 | PRIORITY INTEGER NOT NULL, 139 | STATE VARCHAR(16) NOT NULL, 140 | JOB_NAME VARCHAR(200) NULL, 141 | JOB_GROUP VARCHAR(200) NULL, 142 | IS_NONCONCURRENT BOOL NULL, 143 | REQUESTS_RECOVERY BOOL NULL, 144 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 145 | ); 146 | 147 | CREATE TABLE qrtz_scheduler_state 148 | ( 149 | SCHED_NAME VARCHAR(120) NOT NULL, 150 | INSTANCE_NAME VARCHAR(200) NOT NULL, 151 | LAST_CHECKIN_TIME BIGINT NOT NULL, 152 | CHECKIN_INTERVAL BIGINT NOT NULL, 153 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 154 | ); 155 | 156 | CREATE TABLE qrtz_locks 157 | ( 158 | SCHED_NAME VARCHAR(120) NOT NULL, 159 | LOCK_NAME VARCHAR(40) NOT NULL, 160 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 161 | ); 162 | 163 | create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); 164 | create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); 165 | 166 | create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); 167 | create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); 168 | create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); 169 | create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); 170 | create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); 171 | create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); 172 | create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); 173 | create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); 174 | create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); 175 | create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); 176 | create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); 177 | create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); 178 | 179 | create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); 180 | create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); 181 | create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); 182 | create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); 183 | create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); 184 | create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); 185 | 186 | 187 | commit; 188 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_cubrid.sql: -------------------------------------------------------------------------------- 1 | 2 | -- Thanks to Timothy Anyona for this script 3 | -- CUBRID 8.4.1+ 4 | 5 | -- In your Quartz properties file, you'll need to set 6 | -- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CUBRIDDelegate 7 | 8 | 9 | DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; 10 | DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; 11 | DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; 12 | DROP TABLE IF EXISTS QRTZ_LOCKS; 13 | DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; 14 | DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; 15 | DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; 16 | DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; 17 | DROP TABLE IF EXISTS QRTZ_TRIGGERS; 18 | DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; 19 | DROP TABLE IF EXISTS QRTZ_CALENDARS; 20 | 21 | 22 | CREATE TABLE QRTZ_JOB_DETAILS 23 | ( 24 | SCHED_NAME VARCHAR(120) NOT NULL, 25 | JOB_NAME VARCHAR(200) NOT NULL, 26 | JOB_GROUP VARCHAR(200) NOT NULL, 27 | DESCRIPTION VARCHAR(250) NULL, 28 | JOB_CLASS_NAME VARCHAR(250) NOT NULL, 29 | IS_DURABLE BIT(1) NOT NULL, 30 | IS_NONCONCURRENT BIT(1) NOT NULL, 31 | IS_UPDATE_DATA BIT(1) NOT NULL, 32 | REQUESTS_RECOVERY BIT(1) NOT NULL, 33 | JOB_DATA BLOB NULL, 34 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 35 | ); 36 | 37 | CREATE TABLE QRTZ_TRIGGERS 38 | ( 39 | SCHED_NAME VARCHAR(120) NOT NULL, 40 | TRIGGER_NAME VARCHAR(200) NOT NULL, 41 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 42 | JOB_NAME VARCHAR(200) NOT NULL, 43 | JOB_GROUP VARCHAR(200) NOT NULL, 44 | DESCRIPTION VARCHAR(250) NULL, 45 | NEXT_FIRE_TIME BIGINT NULL, 46 | PREV_FIRE_TIME BIGINT NULL, 47 | PRIORITY INTEGER NULL, 48 | TRIGGER_STATE VARCHAR(16) NOT NULL, 49 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 50 | START_TIME BIGINT NOT NULL, 51 | END_TIME BIGINT NULL, 52 | CALENDAR_NAME VARCHAR(200) NULL, 53 | MISFIRE_INSTR SMALLINT NULL, 54 | JOB_DATA BLOB NULL, 55 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 56 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 57 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 58 | ); 59 | 60 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS 61 | ( 62 | SCHED_NAME VARCHAR(120) NOT NULL, 63 | TRIGGER_NAME VARCHAR(200) NOT NULL, 64 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 65 | REPEAT_COUNT BIGINT NOT NULL, 66 | REPEAT_INTERVAL BIGINT NOT NULL, 67 | TIMES_TRIGGERED BIGINT NOT NULL, 68 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 69 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 70 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 71 | ); 72 | 73 | CREATE TABLE QRTZ_CRON_TRIGGERS 74 | ( 75 | SCHED_NAME VARCHAR(120) NOT NULL, 76 | TRIGGER_NAME VARCHAR(200) NOT NULL, 77 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 78 | CRON_EXPRESSION VARCHAR(200) NOT NULL, 79 | TIME_ZONE_ID VARCHAR(80), 80 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 81 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 82 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 83 | ); 84 | 85 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 86 | ( 87 | SCHED_NAME VARCHAR(120) NOT NULL, 88 | TRIGGER_NAME VARCHAR(200) NOT NULL, 89 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 90 | STR_PROP_1 VARCHAR(512) NULL, 91 | STR_PROP_2 VARCHAR(512) NULL, 92 | STR_PROP_3 VARCHAR(512) NULL, 93 | INT_PROP_1 INT NULL, 94 | INT_PROP_2 INT NULL, 95 | LONG_PROP_1 BIGINT NULL, 96 | LONG_PROP_2 BIGINT NULL, 97 | DEC_PROP_1 NUMERIC(13,4) NULL, 98 | DEC_PROP_2 NUMERIC(13,4) NULL, 99 | BOOL_PROP_1 BIT(1) NULL, 100 | BOOL_PROP_2 BIT(1) NULL, 101 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 102 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 103 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 104 | ); 105 | 106 | CREATE TABLE QRTZ_BLOB_TRIGGERS 107 | ( 108 | SCHED_NAME VARCHAR(120) NOT NULL, 109 | TRIGGER_NAME VARCHAR(200) NOT NULL, 110 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 111 | BLOB_DATA BLOB NULL, 112 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 113 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 114 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 115 | ); 116 | 117 | CREATE TABLE QRTZ_CALENDARS 118 | ( 119 | SCHED_NAME VARCHAR(120) NOT NULL, 120 | CALENDAR_NAME VARCHAR(200) NOT NULL, 121 | CALENDAR BLOB NULL, 122 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 123 | ); 124 | 125 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS 126 | ( 127 | SCHED_NAME VARCHAR(120) NOT NULL, 128 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 129 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 130 | ); 131 | 132 | CREATE TABLE QRTZ_FIRED_TRIGGERS 133 | ( 134 | SCHED_NAME VARCHAR(120) NOT NULL, 135 | ENTRY_ID VARCHAR(95) NOT NULL, 136 | TRIGGER_NAME VARCHAR(200) NOT NULL, 137 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 138 | INSTANCE_NAME VARCHAR(200) NOT NULL, 139 | FIRED_TIME BIGINT NOT NULL, 140 | SCHED_TIME BIGINT NOT NULL, 141 | PRIORITY INTEGER NOT NULL, 142 | STATE VARCHAR(16) NOT NULL, 143 | JOB_NAME VARCHAR(200) NULL, 144 | JOB_GROUP VARCHAR(200) NULL, 145 | IS_NONCONCURRENT BIT(1) NULL, 146 | REQUESTS_RECOVERY BIT(1) NULL, 147 | PRIMARY KEY (SCHED_NAME,ENTRY_ID) 148 | ); 149 | 150 | CREATE TABLE QRTZ_SCHEDULER_STATE 151 | ( 152 | SCHED_NAME VARCHAR(120) NOT NULL, 153 | INSTANCE_NAME VARCHAR(200) NOT NULL, 154 | LAST_CHECKIN_TIME BIGINT NOT NULL, 155 | CHECKIN_INTERVAL BIGINT NOT NULL, 156 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 157 | ); 158 | 159 | CREATE TABLE QRTZ_LOCKS 160 | ( 161 | SCHED_NAME VARCHAR(120) NOT NULL, 162 | LOCK_NAME VARCHAR(40) NOT NULL, 163 | PRIMARY KEY (SCHED_NAME,LOCK_NAME) 164 | ); 165 | 166 | 167 | CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); 168 | CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); 169 | 170 | 171 | CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); 172 | CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); 173 | CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 174 | CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); 175 | CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); 176 | CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); 177 | CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); 178 | CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); 179 | CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); 180 | CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); 181 | CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); 182 | 183 | CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); 184 | CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); 185 | CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); 186 | CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); 187 | CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); 188 | CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 189 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_mysql_innodb.sql: -------------------------------------------------------------------------------- 1 | # 2 | # In your Quartz properties file, you'll need to set 3 | # org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate 4 | # 5 | # 6 | # By: Ron Cordell - roncordell 7 | # I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. 8 | 9 | DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; 10 | DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; 11 | DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; 12 | DROP TABLE IF EXISTS QRTZ_LOCKS; 13 | DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; 14 | DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; 15 | DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; 16 | DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; 17 | DROP TABLE IF EXISTS QRTZ_TRIGGERS; 18 | DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; 19 | DROP TABLE IF EXISTS QRTZ_CALENDARS; 20 | 21 | CREATE TABLE QRTZ_JOB_DETAILS( 22 | SCHED_NAME VARCHAR(120) NOT NULL, 23 | JOB_NAME VARCHAR(200) NOT NULL, 24 | JOB_GROUP VARCHAR(200) NOT NULL, 25 | DESCRIPTION VARCHAR(250) NULL, 26 | JOB_CLASS_NAME VARCHAR(250) NOT NULL, 27 | IS_DURABLE VARCHAR(1) NOT NULL, 28 | IS_NONCONCURRENT VARCHAR(1) NOT NULL, 29 | IS_UPDATE_DATA VARCHAR(1) NOT NULL, 30 | REQUESTS_RECOVERY VARCHAR(1) NOT NULL, 31 | JOB_DATA BLOB NULL, 32 | PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) 33 | ENGINE=InnoDB; 34 | 35 | CREATE TABLE QRTZ_TRIGGERS ( 36 | SCHED_NAME VARCHAR(120) NOT NULL, 37 | TRIGGER_NAME VARCHAR(200) NOT NULL, 38 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 39 | JOB_NAME VARCHAR(200) NOT NULL, 40 | JOB_GROUP VARCHAR(200) NOT NULL, 41 | DESCRIPTION VARCHAR(250) NULL, 42 | NEXT_FIRE_TIME BIGINT(13) NULL, 43 | PREV_FIRE_TIME BIGINT(13) NULL, 44 | PRIORITY INTEGER NULL, 45 | TRIGGER_STATE VARCHAR(16) NOT NULL, 46 | TRIGGER_TYPE VARCHAR(8) NOT NULL, 47 | START_TIME BIGINT(13) NOT NULL, 48 | END_TIME BIGINT(13) NULL, 49 | CALENDAR_NAME VARCHAR(200) NULL, 50 | MISFIRE_INSTR SMALLINT(2) NULL, 51 | JOB_DATA BLOB NULL, 52 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 53 | FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 54 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) 55 | ENGINE=InnoDB; 56 | 57 | CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( 58 | SCHED_NAME VARCHAR(120) NOT NULL, 59 | TRIGGER_NAME VARCHAR(200) NOT NULL, 60 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 61 | REPEAT_COUNT BIGINT(7) NOT NULL, 62 | REPEAT_INTERVAL BIGINT(12) NOT NULL, 63 | TIMES_TRIGGERED BIGINT(10) NOT NULL, 64 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 65 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 66 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 67 | ENGINE=InnoDB; 68 | 69 | CREATE TABLE QRTZ_CRON_TRIGGERS ( 70 | SCHED_NAME VARCHAR(120) NOT NULL, 71 | TRIGGER_NAME VARCHAR(200) NOT NULL, 72 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 73 | CRON_EXPRESSION VARCHAR(120) NOT NULL, 74 | TIME_ZONE_ID VARCHAR(80), 75 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 76 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 77 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 78 | ENGINE=InnoDB; 79 | 80 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 81 | ( 82 | SCHED_NAME VARCHAR(120) NOT NULL, 83 | TRIGGER_NAME VARCHAR(200) NOT NULL, 84 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 85 | STR_PROP_1 VARCHAR(512) NULL, 86 | STR_PROP_2 VARCHAR(512) NULL, 87 | STR_PROP_3 VARCHAR(512) NULL, 88 | INT_PROP_1 INT NULL, 89 | INT_PROP_2 INT NULL, 90 | LONG_PROP_1 BIGINT NULL, 91 | LONG_PROP_2 BIGINT NULL, 92 | DEC_PROP_1 NUMERIC(13,4) NULL, 93 | DEC_PROP_2 NUMERIC(13,4) NULL, 94 | BOOL_PROP_1 VARCHAR(1) NULL, 95 | BOOL_PROP_2 VARCHAR(1) NULL, 96 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 97 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 98 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 99 | ENGINE=InnoDB; 100 | 101 | CREATE TABLE QRTZ_BLOB_TRIGGERS ( 102 | SCHED_NAME VARCHAR(120) NOT NULL, 103 | TRIGGER_NAME VARCHAR(200) NOT NULL, 104 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 105 | BLOB_DATA BLOB NULL, 106 | PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 107 | INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), 108 | FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 109 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) 110 | ENGINE=InnoDB; 111 | 112 | CREATE TABLE QRTZ_CALENDARS ( 113 | SCHED_NAME VARCHAR(120) NOT NULL, 114 | CALENDAR_NAME VARCHAR(200) NOT NULL, 115 | CALENDAR BLOB NOT NULL, 116 | PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) 117 | ENGINE=InnoDB; 118 | 119 | CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( 120 | SCHED_NAME VARCHAR(120) NOT NULL, 121 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 122 | PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) 123 | ENGINE=InnoDB; 124 | 125 | CREATE TABLE QRTZ_FIRED_TRIGGERS ( 126 | SCHED_NAME VARCHAR(120) NOT NULL, 127 | ENTRY_ID VARCHAR(95) NOT NULL, 128 | TRIGGER_NAME VARCHAR(200) NOT NULL, 129 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 130 | INSTANCE_NAME VARCHAR(200) NOT NULL, 131 | FIRED_TIME BIGINT(13) NOT NULL, 132 | SCHED_TIME BIGINT(13) NOT NULL, 133 | PRIORITY INTEGER NOT NULL, 134 | STATE VARCHAR(16) NOT NULL, 135 | JOB_NAME VARCHAR(200) NULL, 136 | JOB_GROUP VARCHAR(200) NULL, 137 | IS_NONCONCURRENT VARCHAR(1) NULL, 138 | REQUESTS_RECOVERY VARCHAR(1) NULL, 139 | PRIMARY KEY (SCHED_NAME,ENTRY_ID)) 140 | ENGINE=InnoDB; 141 | 142 | CREATE TABLE QRTZ_SCHEDULER_STATE ( 143 | SCHED_NAME VARCHAR(120) NOT NULL, 144 | INSTANCE_NAME VARCHAR(200) NOT NULL, 145 | LAST_CHECKIN_TIME BIGINT(13) NOT NULL, 146 | CHECKIN_INTERVAL BIGINT(13) NOT NULL, 147 | PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) 148 | ENGINE=InnoDB; 149 | 150 | CREATE TABLE QRTZ_LOCKS ( 151 | SCHED_NAME VARCHAR(120) NOT NULL, 152 | LOCK_NAME VARCHAR(40) NOT NULL, 153 | PRIMARY KEY (SCHED_NAME,LOCK_NAME)) 154 | ENGINE=InnoDB; 155 | 156 | CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); 157 | CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); 158 | 159 | CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); 160 | CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); 161 | CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); 162 | CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 163 | CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); 164 | CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); 165 | CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); 166 | CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); 167 | CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); 168 | CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); 169 | CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); 170 | CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); 171 | 172 | CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); 173 | CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); 174 | CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); 175 | CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); 176 | CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); 177 | CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); 178 | 179 | commit; 180 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_oracle.sql: -------------------------------------------------------------------------------- 1 | -- 2 | -- A hint submitted by a user: Oracle DB MUST be created as "shared" and the 3 | -- job_queue_processes parameter must be greater than 2 4 | -- However, these settings are pretty much standard after any 5 | -- Oracle install, so most users need not worry about this. 6 | -- 7 | -- Many other users (including the primary author of Quartz) have had success 8 | -- runing in dedicated mode, so only consider the above as a hint ;-) 9 | -- 10 | 11 | delete from qrtz_fired_triggers; 12 | delete from qrtz_simple_triggers; 13 | delete from qrtz_simprop_triggers; 14 | delete from qrtz_cron_triggers; 15 | delete from qrtz_blob_triggers; 16 | delete from qrtz_triggers; 17 | delete from qrtz_job_details; 18 | delete from qrtz_calendars; 19 | delete from qrtz_paused_trigger_grps; 20 | delete from qrtz_locks; 21 | delete from qrtz_scheduler_state; 22 | 23 | drop table qrtz_calendars; 24 | drop table qrtz_fired_triggers; 25 | drop table qrtz_blob_triggers; 26 | drop table qrtz_cron_triggers; 27 | drop table qrtz_simple_triggers; 28 | drop table qrtz_simprop_triggers; 29 | drop table qrtz_triggers; 30 | drop table qrtz_job_details; 31 | drop table qrtz_paused_trigger_grps; 32 | drop table qrtz_locks; 33 | drop table qrtz_scheduler_state; 34 | 35 | 36 | CREATE TABLE qrtz_job_details 37 | ( 38 | SCHED_NAME VARCHAR2(120) NOT NULL, 39 | JOB_NAME VARCHAR2(200) NOT NULL, 40 | JOB_GROUP VARCHAR2(200) NOT NULL, 41 | DESCRIPTION VARCHAR2(250) NULL, 42 | JOB_CLASS_NAME VARCHAR2(250) NOT NULL, 43 | IS_DURABLE VARCHAR2(1) NOT NULL, 44 | IS_NONCONCURRENT VARCHAR2(1) NOT NULL, 45 | IS_UPDATE_DATA VARCHAR2(1) NOT NULL, 46 | REQUESTS_RECOVERY VARCHAR2(1) NOT NULL, 47 | JOB_DATA BLOB NULL, 48 | CONSTRAINT QRTZ_JOB_DETAILS_PK PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 49 | ); 50 | CREATE TABLE qrtz_triggers 51 | ( 52 | SCHED_NAME VARCHAR2(120) NOT NULL, 53 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 54 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 55 | JOB_NAME VARCHAR2(200) NOT NULL, 56 | JOB_GROUP VARCHAR2(200) NOT NULL, 57 | DESCRIPTION VARCHAR2(250) NULL, 58 | NEXT_FIRE_TIME NUMBER(13) NULL, 59 | PREV_FIRE_TIME NUMBER(13) NULL, 60 | PRIORITY NUMBER(13) NULL, 61 | TRIGGER_STATE VARCHAR2(16) NOT NULL, 62 | TRIGGER_TYPE VARCHAR2(8) NOT NULL, 63 | START_TIME NUMBER(13) NOT NULL, 64 | END_TIME NUMBER(13) NULL, 65 | CALENDAR_NAME VARCHAR2(200) NULL, 66 | MISFIRE_INSTR NUMBER(2) NULL, 67 | JOB_DATA BLOB NULL, 68 | CONSTRAINT QRTZ_TRIGGERS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 69 | CONSTRAINT QRTZ_TRIGGER_TO_JOBS_FK FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) 70 | REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP) 71 | ); 72 | CREATE TABLE qrtz_simple_triggers 73 | ( 74 | SCHED_NAME VARCHAR2(120) NOT NULL, 75 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 76 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 77 | REPEAT_COUNT NUMBER(7) NOT NULL, 78 | REPEAT_INTERVAL NUMBER(12) NOT NULL, 79 | TIMES_TRIGGERED NUMBER(10) NOT NULL, 80 | CONSTRAINT QRTZ_SIMPLE_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 81 | CONSTRAINT QRTZ_SIMPLE_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 82 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 83 | ); 84 | CREATE TABLE qrtz_cron_triggers 85 | ( 86 | SCHED_NAME VARCHAR2(120) NOT NULL, 87 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 88 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 89 | CRON_EXPRESSION VARCHAR2(120) NOT NULL, 90 | TIME_ZONE_ID VARCHAR2(80), 91 | CONSTRAINT QRTZ_CRON_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 92 | CONSTRAINT QRTZ_CRON_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 93 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 94 | ); 95 | CREATE TABLE qrtz_simprop_triggers 96 | ( 97 | SCHED_NAME VARCHAR2(120) NOT NULL, 98 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 99 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 100 | STR_PROP_1 VARCHAR2(512) NULL, 101 | STR_PROP_2 VARCHAR2(512) NULL, 102 | STR_PROP_3 VARCHAR2(512) NULL, 103 | INT_PROP_1 NUMBER(10) NULL, 104 | INT_PROP_2 NUMBER(10) NULL, 105 | LONG_PROP_1 NUMBER(13) NULL, 106 | LONG_PROP_2 NUMBER(13) NULL, 107 | DEC_PROP_1 NUMERIC(13,4) NULL, 108 | DEC_PROP_2 NUMERIC(13,4) NULL, 109 | BOOL_PROP_1 VARCHAR2(1) NULL, 110 | BOOL_PROP_2 VARCHAR2(1) NULL, 111 | CONSTRAINT QRTZ_SIMPROP_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 112 | CONSTRAINT QRTZ_SIMPROP_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 113 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 114 | ); 115 | CREATE TABLE qrtz_blob_triggers 116 | ( 117 | SCHED_NAME VARCHAR2(120) NOT NULL, 118 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 119 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 120 | BLOB_DATA BLOB NULL, 121 | CONSTRAINT QRTZ_BLOB_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), 122 | CONSTRAINT QRTZ_BLOB_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 123 | REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 124 | ); 125 | CREATE TABLE qrtz_calendars 126 | ( 127 | SCHED_NAME VARCHAR2(120) NOT NULL, 128 | CALENDAR_NAME VARCHAR2(200) NOT NULL, 129 | CALENDAR BLOB NOT NULL, 130 | CONSTRAINT QRTZ_CALENDARS_PK PRIMARY KEY (SCHED_NAME,CALENDAR_NAME) 131 | ); 132 | CREATE TABLE qrtz_paused_trigger_grps 133 | ( 134 | SCHED_NAME VARCHAR2(120) NOT NULL, 135 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 136 | CONSTRAINT QRTZ_PAUSED_TRIG_GRPS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP) 137 | ); 138 | CREATE TABLE qrtz_fired_triggers 139 | ( 140 | SCHED_NAME VARCHAR2(120) NOT NULL, 141 | ENTRY_ID VARCHAR2(95) NOT NULL, 142 | TRIGGER_NAME VARCHAR2(200) NOT NULL, 143 | TRIGGER_GROUP VARCHAR2(200) NOT NULL, 144 | INSTANCE_NAME VARCHAR2(200) NOT NULL, 145 | FIRED_TIME NUMBER(13) NOT NULL, 146 | SCHED_TIME NUMBER(13) NOT NULL, 147 | PRIORITY NUMBER(13) NOT NULL, 148 | STATE VARCHAR2(16) NOT NULL, 149 | JOB_NAME VARCHAR2(200) NULL, 150 | JOB_GROUP VARCHAR2(200) NULL, 151 | IS_NONCONCURRENT VARCHAR2(1) NULL, 152 | REQUESTS_RECOVERY VARCHAR2(1) NULL, 153 | CONSTRAINT QRTZ_FIRED_TRIGGER_PK PRIMARY KEY (SCHED_NAME,ENTRY_ID) 154 | ); 155 | CREATE TABLE qrtz_scheduler_state 156 | ( 157 | SCHED_NAME VARCHAR2(120) NOT NULL, 158 | INSTANCE_NAME VARCHAR2(200) NOT NULL, 159 | LAST_CHECKIN_TIME NUMBER(13) NOT NULL, 160 | CHECKIN_INTERVAL NUMBER(13) NOT NULL, 161 | CONSTRAINT QRTZ_SCHEDULER_STATE_PK PRIMARY KEY (SCHED_NAME,INSTANCE_NAME) 162 | ); 163 | CREATE TABLE qrtz_locks 164 | ( 165 | SCHED_NAME VARCHAR2(120) NOT NULL, 166 | LOCK_NAME VARCHAR2(40) NOT NULL, 167 | CONSTRAINT QRTZ_LOCKS_PK PRIMARY KEY (SCHED_NAME,LOCK_NAME) 168 | ); 169 | 170 | create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY); 171 | create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP); 172 | 173 | create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); 174 | create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP); 175 | create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME); 176 | create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP); 177 | create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE); 178 | create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); 179 | create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); 180 | create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME); 181 | create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); 182 | create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); 183 | create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); 184 | create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); 185 | 186 | create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME); 187 | create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); 188 | create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP); 189 | create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP); 190 | create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); 191 | create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP); 192 | 193 | 194 | -------------------------------------------------------------------------------- /src/main/java/net/aimeizi/quartz/utils/ScheduleUtils.java: -------------------------------------------------------------------------------- 1 | package net.aimeizi.quartz.utils; 2 | 3 | import net.aimeizi.quartz.exceptions.ScheduleException; 4 | import net.aimeizi.quartz.model.ScheduleJob; 5 | import net.aimeizi.quartz.quartz.AsyncJobFactory; 6 | import net.aimeizi.quartz.quartz.SyncJobFactory; 7 | import net.aimeizi.quartz.vo.ScheduleJobVo; 8 | import org.quartz.*; 9 | import org.slf4j.Logger; 10 | import org.slf4j.LoggerFactory; 11 | 12 | /** 13 | * author : fengjing 14 | * createTime : 2016-08-04 15 | * description : 定时任务操作辅助类 16 | * version : 1.0 17 | */ 18 | public class ScheduleUtils { 19 | 20 | /** 日志对象 */ 21 | private static final Logger LOG = LoggerFactory.getLogger(ScheduleUtils.class); 22 | 23 | /** 24 | * 获取触发器key 25 | * 26 | * @param jobName 27 | * @param jobGroup 28 | * @return 29 | */ 30 | public static TriggerKey getTriggerKey(String jobName, String jobGroup) { 31 | 32 | return TriggerKey.triggerKey(jobName, jobGroup); 33 | } 34 | 35 | /** 36 | * 获取表达式触发器 37 | * 38 | * @param scheduler the scheduler 39 | * @param jobName the job name 40 | * @param jobGroup the job group 41 | * @return cron trigger 42 | */ 43 | public static CronTrigger getCronTrigger(Scheduler scheduler, String jobName, String jobGroup) { 44 | 45 | try { 46 | TriggerKey triggerKey = TriggerKey.triggerKey(jobName, jobGroup); 47 | return (CronTrigger) scheduler.getTrigger(triggerKey); 48 | } catch (SchedulerException e) { 49 | LOG.error("获取定时任务CronTrigger出现异常", e); 50 | throw new ScheduleException("获取定时任务CronTrigger出现异常"); 51 | } 52 | } 53 | 54 | /** 55 | * 创建任务 56 | * 57 | * @param scheduler the scheduler 58 | * @param scheduleJob the schedule job 59 | */ 60 | public static void createScheduleJob(Scheduler scheduler, ScheduleJob scheduleJob) { 61 | createScheduleJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup(), 62 | scheduleJob.getCronExpression(), scheduleJob.getIsSync(), scheduleJob); 63 | } 64 | 65 | /** 66 | * 创建定时任务 67 | * 68 | * @param scheduler the scheduler 69 | * @param jobName the job name 70 | * @param jobGroup the job group 71 | * @param cronExpression the cron expression 72 | * @param isSync the is sync 73 | * @param param the param 74 | */ 75 | public static void createScheduleJob(Scheduler scheduler, String jobName, String jobGroup, 76 | String cronExpression, boolean isSync, Object param) { 77 | //同步或异步 78 | Class jobClass = isSync ? AsyncJobFactory.class : SyncJobFactory.class; 79 | 80 | //构建job信息 81 | JobDetail jobDetail = JobBuilder.newJob(jobClass).withIdentity(jobName, jobGroup).build(); 82 | 83 | //表达式调度构建器 84 | CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression); 85 | 86 | //按新的cronExpression表达式构建一个新的trigger 87 | CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(jobName, jobGroup).withSchedule(scheduleBuilder).build(); 88 | 89 | String jobTrigger = trigger.getKey().getName(); 90 | 91 | ScheduleJob scheduleJob = (ScheduleJob)param; 92 | scheduleJob.setJobTrigger(jobTrigger); 93 | 94 | //放入参数,运行时的方法可以获取 95 | jobDetail.getJobDataMap().put(ScheduleJobVo.JOB_PARAM_KEY, scheduleJob); 96 | 97 | try { 98 | scheduler.scheduleJob(jobDetail, trigger); 99 | } catch (SchedulerException e) { 100 | LOG.error("创建定时任务失败", e); 101 | throw new ScheduleException("创建定时任务失败"); 102 | } 103 | } 104 | 105 | /** 106 | * 运行一次任务 107 | * 108 | * @param scheduler 109 | * @param jobName 110 | * @param jobGroup 111 | */ 112 | public static void runOnce(Scheduler scheduler, String jobName, String jobGroup) { 113 | JobKey jobKey = JobKey.jobKey(jobName, jobGroup); 114 | try { 115 | scheduler.triggerJob(jobKey); 116 | } catch (SchedulerException e) { 117 | LOG.error("运行一次定时任务失败", e); 118 | throw new ScheduleException("运行一次定时任务失败"); 119 | } 120 | } 121 | 122 | /** 123 | * 暂停任务 124 | * 125 | * @param scheduler 126 | * @param jobName 127 | * @param jobGroup 128 | */ 129 | public static void pauseJob(Scheduler scheduler, String jobName, String jobGroup) { 130 | 131 | JobKey jobKey = JobKey.jobKey(jobName, jobGroup); 132 | try { 133 | scheduler.pauseJob(jobKey); 134 | } catch (SchedulerException e) { 135 | LOG.error("暂停定时任务失败", e); 136 | throw new ScheduleException("暂停定时任务失败"); 137 | } 138 | } 139 | 140 | /** 141 | * 恢复任务 142 | * 143 | * @param scheduler 144 | * @param jobName 145 | * @param jobGroup 146 | */ 147 | public static void resumeJob(Scheduler scheduler, String jobName, String jobGroup) { 148 | 149 | JobKey jobKey = JobKey.jobKey(jobName, jobGroup); 150 | try { 151 | scheduler.resumeJob(jobKey); 152 | } catch (SchedulerException e) { 153 | LOG.error("暂停定时任务失败", e); 154 | throw new ScheduleException("暂停定时任务失败"); 155 | } 156 | } 157 | 158 | /** 159 | * 获取jobKey 160 | * 161 | * @param jobName the job name 162 | * @param jobGroup the job group 163 | * @return the job key 164 | */ 165 | public static JobKey getJobKey(String jobName, String jobGroup) { 166 | 167 | return JobKey.jobKey(jobName, jobGroup); 168 | } 169 | 170 | /** 171 | * 更新定时任务 172 | * 173 | * @param scheduler the scheduler 174 | * @param scheduleJob the schedule job 175 | */ 176 | public static void updateScheduleJob(Scheduler scheduler, ScheduleJob scheduleJob) { 177 | updateScheduleJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup(), 178 | scheduleJob.getCronExpression(), scheduleJob.getIsSync(), scheduleJob); 179 | } 180 | 181 | /** 182 | * 更新定时任务 183 | * 184 | * @param scheduler the scheduler 185 | * @param jobName the job name 186 | * @param jobGroup the job group 187 | * @param cronExpression the cron expression 188 | * @param isSync the is sync 189 | * @param param the param 190 | */ 191 | public static void updateScheduleJob(Scheduler scheduler, String jobName, String jobGroup, 192 | String cronExpression, boolean isSync, Object param) { 193 | 194 | //同步或异步 195 | // Class jobClass = isSync ? AsyncJobFactory.class : SyncJobFactory.class; 196 | 197 | try { 198 | // JobDetail jobDetail = scheduler.getJobDetail(getJobKey(jobName, jobGroup)); 199 | 200 | // jobDetail = jobDetail.getJobBuilder().ofType(jobClass).build(); 201 | 202 | //更新参数 实际测试中发现无法更新 203 | // JobDataMap jobDataMap = jobDetail.getJobDataMap(); 204 | // jobDataMap.put(ScheduleJobVo.JOB_PARAM_KEY, param); 205 | // jobDetail.getJobBuilder().usingJobData(jobDataMap); 206 | 207 | TriggerKey triggerKey = ScheduleUtils.getTriggerKey(jobName, jobGroup); 208 | 209 | //表达式调度构建器 210 | CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression); 211 | 212 | CronTrigger trigger = (CronTrigger) scheduler.getTrigger(triggerKey); 213 | 214 | //按新的cronExpression表达式重新构建trigger 215 | trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); 216 | Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey()); 217 | // 忽略状态为PAUSED的任务,解决集群环境中在其他机器设置定时任务为PAUSED状态后,集群环境启动另一台主机时定时任务全被唤醒的bug 218 | if(!triggerState.name().equalsIgnoreCase("PAUSED")){ 219 | //按新的trigger重新设置job执行 220 | scheduler.rescheduleJob(triggerKey, trigger); 221 | } 222 | } catch (SchedulerException e) { 223 | LOG.error("更新定时任务失败", e); 224 | throw new ScheduleException("更新定时任务失败"); 225 | } 226 | } 227 | 228 | /** 229 | * 删除定时任务 230 | * 231 | * @param scheduler 232 | * @param jobName 233 | * @param jobGroup 234 | */ 235 | public static void deleteScheduleJob(Scheduler scheduler, String jobName, String jobGroup) { 236 | try { 237 | scheduler.deleteJob(getJobKey(jobName, jobGroup)); 238 | } catch (SchedulerException e) { 239 | LOG.error("删除定时任务失败", e); 240 | throw new ScheduleException("删除定时任务失败"); 241 | } 242 | } 243 | } 244 | -------------------------------------------------------------------------------- /src/main/java/net/aimeizi/quartz/service/impl/ScheduleJobServiceImpl.java: -------------------------------------------------------------------------------- 1 | package net.aimeizi.quartz.service.impl; 2 | 3 | import com.dexcoder.commons.bean.BeanConverter; 4 | import com.dexcoder.dal.JdbcDao; 5 | import com.dexcoder.dal.build.Criteria; 6 | import net.aimeizi.quartz.model.ScheduleJob; 7 | import net.aimeizi.quartz.service.ScheduleJobService; 8 | import net.aimeizi.quartz.utils.ScheduleUtils; 9 | import net.aimeizi.quartz.vo.ScheduleJobVo; 10 | import org.apache.commons.collections.CollectionUtils; 11 | import org.quartz.*; 12 | import org.quartz.impl.matchers.GroupMatcher; 13 | import org.springframework.beans.factory.annotation.Autowired; 14 | import org.springframework.stereotype.Service; 15 | 16 | import java.util.ArrayList; 17 | import java.util.List; 18 | 19 | /** 20 | * author : fengjing 21 | * createTime : 2016-08-04 22 | * description : 定时任务服务实现 23 | * version : 1.0 24 | */ 25 | @Service 26 | public class ScheduleJobServiceImpl implements ScheduleJobService { 27 | 28 | /** 调度工厂Bean */ 29 | @Autowired 30 | private Scheduler scheduler; 31 | 32 | /** 通用dao */ 33 | @Autowired 34 | private JdbcDao jdbcDao; 35 | 36 | public void initScheduleJob() { 37 | List scheduleJobList = jdbcDao.queryList(Criteria.select(ScheduleJob.class)); 38 | if (CollectionUtils.isEmpty(scheduleJobList)) { 39 | return; 40 | } 41 | for (ScheduleJob scheduleJob : scheduleJobList) { 42 | 43 | CronTrigger cronTrigger = ScheduleUtils.getCronTrigger(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 44 | 45 | //不存在,创建一个 46 | if (cronTrigger == null) { 47 | ScheduleUtils.createScheduleJob(scheduler, scheduleJob); 48 | } else { 49 | //已存在,那么更新相应的定时设置 50 | ScheduleUtils.updateScheduleJob(scheduler, scheduleJob); 51 | } 52 | } 53 | } 54 | 55 | public Long insert(ScheduleJobVo scheduleJobVo) { 56 | ScheduleJob scheduleJob = scheduleJobVo.getTargetObject(ScheduleJob.class); 57 | ScheduleUtils.createScheduleJob(scheduler, scheduleJob); 58 | return jdbcDao.insert(scheduleJob); 59 | } 60 | 61 | public void update(ScheduleJobVo scheduleJobVo) { 62 | ScheduleJob scheduleJob = scheduleJobVo.getTargetObject(ScheduleJob.class); 63 | ScheduleUtils.updateScheduleJob(scheduler, scheduleJob); 64 | jdbcDao.update(scheduleJob); 65 | } 66 | 67 | public void delUpdate(ScheduleJobVo scheduleJobVo) { 68 | ScheduleJob scheduleJob = scheduleJobVo.getTargetObject(ScheduleJob.class); 69 | //先删除 70 | ScheduleUtils.deleteScheduleJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 71 | //再创建 72 | ScheduleUtils.createScheduleJob(scheduler, scheduleJob); 73 | //数据库直接更新即可 74 | jdbcDao.update(scheduleJob); 75 | } 76 | 77 | public void delete(Long scheduleJobId) { 78 | ScheduleJob scheduleJob = jdbcDao.get(ScheduleJob.class, scheduleJobId); 79 | //删除运行的任务 80 | ScheduleUtils.deleteScheduleJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 81 | //删除数据 82 | jdbcDao.delete(ScheduleJob.class, scheduleJobId); 83 | } 84 | 85 | public void runOnce(Long scheduleJobId) { 86 | ScheduleJob scheduleJob = jdbcDao.get(ScheduleJob.class, scheduleJobId); 87 | ScheduleUtils.runOnce(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 88 | } 89 | 90 | public void pauseJob(Long scheduleJobId) { 91 | ScheduleJob scheduleJob = jdbcDao.get(ScheduleJob.class, scheduleJobId); 92 | ScheduleUtils.pauseJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 93 | //演示数据库就不更新了 94 | } 95 | 96 | public void resumeJob(Long scheduleJobId) { 97 | ScheduleJob scheduleJob = jdbcDao.get(ScheduleJob.class, scheduleJobId); 98 | ScheduleUtils.resumeJob(scheduler, scheduleJob.getJobName(), scheduleJob.getJobGroup()); 99 | //演示数据库就不更新了 100 | } 101 | 102 | public ScheduleJobVo get(Long scheduleJobId) { 103 | ScheduleJob scheduleJob = jdbcDao.get(ScheduleJob.class, scheduleJobId); 104 | return scheduleJob.getTargetObject(ScheduleJobVo.class); 105 | } 106 | 107 | public List queryList(ScheduleJobVo scheduleJobVo) { 108 | 109 | List scheduleJobs = jdbcDao.queryList(scheduleJobVo.getTargetObject(ScheduleJob.class)); 110 | 111 | List scheduleJobVoList = BeanConverter.convert(ScheduleJobVo.class, scheduleJobs); 112 | try { 113 | for (ScheduleJobVo vo : scheduleJobVoList) { 114 | 115 | JobKey jobKey = ScheduleUtils.getJobKey(vo.getJobName(), vo.getJobGroup()); 116 | List triggers = scheduler.getTriggersOfJob(jobKey); 117 | if (CollectionUtils.isEmpty(triggers)) { 118 | continue; 119 | } 120 | 121 | //这里一个任务可以有多个触发器, 但是我们一个任务对应一个触发器,所以只取第一个即可,清晰明了 122 | Trigger trigger = triggers.iterator().next(); 123 | vo.setJobTrigger(trigger.getKey().getName()); 124 | 125 | Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey()); 126 | vo.setStatus(triggerState.name()); 127 | 128 | if (trigger instanceof CronTrigger) { 129 | CronTrigger cronTrigger = (CronTrigger) trigger; 130 | String cronExpression = cronTrigger.getCronExpression(); 131 | vo.setCronExpression(cronExpression); 132 | } 133 | } 134 | } catch (SchedulerException e) { 135 | //演示用,就不处理了 136 | } 137 | return scheduleJobVoList; 138 | } 139 | 140 | /** 141 | * 获取运行中的job列表 142 | * @return 143 | */ 144 | public List queryExecutingJobList() { 145 | try { 146 | // 存放结果集 147 | List jobList = new ArrayList(); 148 | 149 | // 获取scheduler中的JobGroupName 150 | for (String group:scheduler.getJobGroupNames()){ 151 | // 获取JobKey 循环遍历JobKey 152 | for(JobKey jobKey:scheduler.getJobKeys(GroupMatcher.groupEquals(group))){ 153 | JobDetail jobDetail = scheduler.getJobDetail(jobKey); 154 | JobDataMap jobDataMap = jobDetail.getJobDataMap(); 155 | ScheduleJob scheduleJob = (ScheduleJob)jobDataMap.get(ScheduleJobVo.JOB_PARAM_KEY); 156 | ScheduleJobVo scheduleJobVo = new ScheduleJobVo(); 157 | BeanConverter.convert(scheduleJobVo,scheduleJob); 158 | List triggers = scheduler.getTriggersOfJob(jobKey); 159 | Trigger trigger = triggers.iterator().next(); 160 | Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey()); 161 | scheduleJobVo.setJobTrigger(trigger.getKey().getName()); 162 | scheduleJobVo.setStatus(triggerState.name()); 163 | if (trigger instanceof CronTrigger) { 164 | CronTrigger cronTrigger = (CronTrigger) trigger; 165 | String cronExpression = cronTrigger.getCronExpression(); 166 | scheduleJobVo.setCronExpression(cronExpression); 167 | } 168 | // 获取正常运行的任务列表 169 | if(triggerState.name().equals("NORMAL")){ 170 | jobList.add(scheduleJobVo); 171 | } 172 | } 173 | } 174 | 175 | /** 非集群环境获取正在执行的任务列表 */ 176 | /** 177 | List executingJobs = scheduler.getCurrentlyExecutingJobs(); 178 | List jobList = new ArrayList(executingJobs.size()); 179 | for (JobExecutionContext executingJob : executingJobs) { 180 | ScheduleJobVo job = new ScheduleJobVo(); 181 | JobDetail jobDetail = executingJob.getJobDetail(); 182 | JobKey jobKey = jobDetail.getKey(); 183 | Trigger trigger = executingJob.getTrigger(); 184 | job.setJobName(jobKey.getName()); 185 | job.setJobGroup(jobKey.getGroup()); 186 | job.setJobTrigger(trigger.getKey().getName()); 187 | Trigger.TriggerState triggerState = scheduler.getTriggerState(trigger.getKey()); 188 | job.setStatus(triggerState.name()); 189 | if (trigger instanceof CronTrigger) { 190 | CronTrigger cronTrigger = (CronTrigger) trigger; 191 | String cronExpression = cronTrigger.getCronExpression(); 192 | job.setCronExpression(cronExpression); 193 | } 194 | jobList.add(job); 195 | }*/ 196 | 197 | return jobList; 198 | } catch (SchedulerException e) { 199 | return null; 200 | } 201 | 202 | } 203 | } 204 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_sybase.sql: -------------------------------------------------------------------------------- 1 | /*==============================================================================================*/ 2 | /* Quartz database tables creation script for Sybase ASE 12.5 */ 3 | /* Written by Pertti Laiho (email: pertti.laiho@deio.net), 9th May 2003 */ 4 | /* */ 5 | /* Compatible with Quartz version 1.1.2 */ 6 | /* */ 7 | /* Sybase ASE works ok with the SybaseDelegate delegate class. That means in your Quartz properties */ 8 | /* file, you'll need to set: */ 9 | /* org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.SybaseDelegate */ 10 | /*==============================================================================================*/ 11 | 12 | use your_db_name_here 13 | go 14 | 15 | /*==============================================================================*/ 16 | /* Clear all tables: */ 17 | /*==============================================================================*/ 18 | 19 | IF OBJECT_ID('QRTZ_FIRED_TRIGGERS') IS NOT NULL 20 | delete from QRTZ_FIRED_TRIGGERS 21 | go 22 | IF OBJECT_ID('QRTZ_PAUSED_TRIGGER_GRPS') IS NOT NULL 23 | delete from QRTZ_PAUSED_TRIGGER_GRPS 24 | go 25 | IF OBJECT_ID('QRTZ_SCHEDULER_STATE') IS NOT NULL 26 | delete from QRTZ_SCHEDULER_STATE 27 | go 28 | IF OBJECT_ID('QRTZ_LOCKS') IS NOT NULL 29 | delete from QRTZ_LOCKS 30 | go 31 | IF OBJECT_ID('QRTZ_SIMPLE_TRIGGERS') IS NOT NULL 32 | delete from QRTZ_SIMPLE_TRIGGERS 33 | go 34 | IF OBJECT_ID('QRTZ_SIMPROP_TRIGGERS') IS NOT NULL 35 | delete from QRTZ_SIMPROP_TRIGGERS 36 | go 37 | IF OBJECT_ID('QRTZ_CRON_TRIGGERS') IS NOT NULL 38 | delete from QRTZ_CRON_TRIGGERS 39 | go 40 | IF OBJECT_ID('QRTZ_BLOB_TRIGGERS') IS NOT NULL 41 | delete from QRTZ_BLOB_TRIGGERS 42 | go 43 | IF OBJECT_ID('QRTZ_TRIGGERS') IS NOT NULL 44 | delete from QRTZ_TRIGGERS 45 | go 46 | IF OBJECT_ID('QRTZ_JOB_DETAILS') IS NOT NULL 47 | delete from QRTZ_JOB_DETAILS 48 | go 49 | IF OBJECT_ID('QRTZ_CALENDARS') IS NOT NULL 50 | delete from QRTZ_CALENDARS 51 | go 52 | 53 | /*==============================================================================*/ 54 | /* Drop constraints: */ 55 | /*==============================================================================*/ 56 | 57 | alter table QRTZ_TRIGGERS 58 | drop constraint FK_triggers_job_details 59 | go 60 | 61 | alter table QRTZ_CRON_TRIGGERS 62 | drop constraint FK_cron_triggers_triggers 63 | go 64 | 65 | alter table QRTZ_SIMPLE_TRIGGERS 66 | drop constraint FK_simple_triggers_triggers 67 | go 68 | 69 | alter table QRTZ_SIMPROP_TRIGGERS 70 | drop constraint FK_simprop_triggers_triggers 71 | go 72 | 73 | alter table QRTZ_BLOB_TRIGGERS 74 | drop constraint FK_blob_triggers_triggers 75 | go 76 | 77 | /*==============================================================================*/ 78 | /* Drop tables: */ 79 | /*==============================================================================*/ 80 | 81 | drop table QRTZ_FIRED_TRIGGERS 82 | go 83 | drop table QRTZ_PAUSED_TRIGGER_GRPS 84 | go 85 | drop table QRTZ_SCHEDULER_STATE 86 | go 87 | drop table QRTZ_LOCKS 88 | go 89 | drop table QRTZ_SIMPLE_TRIGGERS 90 | go 91 | drop table QRTZ_SIMPROP_TRIGGERS 92 | go 93 | drop table QRTZ_CRON_TRIGGERS 94 | go 95 | drop table QRTZ_BLOB_TRIGGERS 96 | go 97 | drop table QRTZ_TRIGGERS 98 | go 99 | drop table QRTZ_JOB_DETAILS 100 | go 101 | drop table QRTZ_CALENDARS 102 | go 103 | 104 | /*==============================================================================*/ 105 | /* Create tables: */ 106 | /*==============================================================================*/ 107 | 108 | create table QRTZ_CALENDARS ( 109 | SCHED_NAME varchar(120) not null, 110 | CALENDAR_NAME varchar(80) not null, 111 | CALENDAR image not null 112 | ) 113 | go 114 | 115 | create table QRTZ_CRON_TRIGGERS ( 116 | SCHED_NAME varchar(120) not null, 117 | TRIGGER_NAME varchar(80) not null, 118 | TRIGGER_GROUP varchar(80) not null, 119 | CRON_EXPRESSION varchar(120) not null, 120 | TIME_ZONE_ID varchar(80) null, 121 | ) 122 | go 123 | 124 | create table QRTZ_PAUSED_TRIGGER_GRPS ( 125 | SCHED_NAME varchar(120) not null, 126 | TRIGGER_GROUP varchar(80) not null, 127 | ) 128 | go 129 | 130 | create table QRTZ_FIRED_TRIGGERS( 131 | SCHED_NAME varchar(120) not null, 132 | ENTRY_ID varchar(95) not null, 133 | TRIGGER_NAME varchar(80) not null, 134 | TRIGGER_GROUP varchar(80) not null, 135 | INSTANCE_NAME varchar(80) not null, 136 | FIRED_TIME numeric(13,0) not null, 137 | SCHED_TIME numeric(13,0) not null, 138 | PRIORITY int not null, 139 | STATE varchar(16) not null, 140 | JOB_NAME varchar(80) null, 141 | JOB_GROUP varchar(80) null, 142 | IS_NONCONCURRENT bit not null, 143 | REQUESTS_RECOVERY bit not null, 144 | ) 145 | go 146 | 147 | create table QRTZ_SCHEDULER_STATE ( 148 | SCHED_NAME varchar(120) not null, 149 | INSTANCE_NAME varchar(80) not null, 150 | LAST_CHECKIN_TIME numeric(13,0) not null, 151 | CHECKIN_INTERVAL numeric(13,0) not null, 152 | ) 153 | go 154 | 155 | create table QRTZ_LOCKS ( 156 | SCHED_NAME varchar(120) not null, 157 | LOCK_NAME varchar(40) not null, 158 | ) 159 | go 160 | 161 | 162 | create table QRTZ_JOB_DETAILS ( 163 | SCHED_NAME varchar(120) not null, 164 | JOB_NAME varchar(80) not null, 165 | JOB_GROUP varchar(80) not null, 166 | DESCRIPTION varchar(120) null, 167 | JOB_CLASS_NAME varchar(128) not null, 168 | IS_DURABLE bit not null, 169 | IS_NONCONCURRENT bit not null, 170 | IS_UPDATE_DATA bit not null, 171 | REQUESTS_RECOVERY bit not null, 172 | JOB_DATA image null 173 | ) 174 | go 175 | 176 | create table QRTZ_SIMPLE_TRIGGERS ( 177 | SCHED_NAME varchar(120) not null, 178 | TRIGGER_NAME varchar(80) not null, 179 | TRIGGER_GROUP varchar(80) not null, 180 | REPEAT_COUNT numeric(13,0) not null, 181 | REPEAT_INTERVAL numeric(13,0) not null, 182 | TIMES_TRIGGERED numeric(13,0) not null 183 | ) 184 | go 185 | 186 | CREATE TABLE QRTZ_SIMPROP_TRIGGERS 187 | ( 188 | SCHED_NAME VARCHAR(120) NOT NULL, 189 | TRIGGER_NAME VARCHAR(200) NOT NULL, 190 | TRIGGER_GROUP VARCHAR(200) NOT NULL, 191 | STR_PROP_1 VARCHAR(512) NULL, 192 | STR_PROP_2 VARCHAR(512) NULL, 193 | STR_PROP_3 VARCHAR(512) NULL, 194 | INT_PROP_1 INT NULL, 195 | INT_PROP_2 INT NULL, 196 | LONG_PROP_1 NUMERIC(13,0) NULL, 197 | LONG_PROP_2 NUMERIC(13,0) NULL, 198 | DEC_PROP_1 NUMERIC(13,4) NULL, 199 | DEC_PROP_2 NUMERIC(13,4) NULL, 200 | BOOL_PROP_1 bit NOT NULL, 201 | BOOL_PROP_2 bit NOT NULL 202 | ) 203 | go 204 | 205 | create table QRTZ_BLOB_TRIGGERS ( 206 | SCHED_NAME varchar(120) not null, 207 | TRIGGER_NAME varchar(80) not null, 208 | TRIGGER_GROUP varchar(80) not null, 209 | BLOB_DATA image null 210 | ) 211 | go 212 | 213 | create table QRTZ_TRIGGERS ( 214 | SCHED_NAME varchar(120) not null, 215 | TRIGGER_NAME varchar(80) not null, 216 | TRIGGER_GROUP varchar(80) not null, 217 | JOB_NAME varchar(80) not null, 218 | JOB_GROUP varchar(80) not null, 219 | DESCRIPTION varchar(120) null, 220 | NEXT_FIRE_TIME numeric(13,0) null, 221 | PREV_FIRE_TIME numeric(13,0) null, 222 | PRIORITY int null, 223 | TRIGGER_STATE varchar(16) not null, 224 | TRIGGER_TYPE varchar(8) not null, 225 | START_TIME numeric(13,0) not null, 226 | END_TIME numeric(13,0) null, 227 | CALENDAR_NAME varchar(80) null, 228 | MISFIRE_INSTR smallint null, 229 | JOB_DATA image null 230 | ) 231 | go 232 | 233 | /*==============================================================================*/ 234 | /* Create primary key constraints: */ 235 | /*==============================================================================*/ 236 | 237 | alter table QRTZ_CALENDARS 238 | add constraint PK_qrtz_calendars primary key clustered (SCHED_NAME,CALENDAR_NAME) 239 | go 240 | 241 | alter table QRTZ_CRON_TRIGGERS 242 | add constraint PK_qrtz_cron_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 243 | go 244 | 245 | alter table QRTZ_FIRED_TRIGGERS 246 | add constraint PK_qrtz_fired_triggers primary key clustered (SCHED_NAME,ENTRY_ID) 247 | go 248 | 249 | alter table QRTZ_PAUSED_TRIGGER_GRPS 250 | add constraint PK_qrtz_paused_trigger_grps primary key clustered (SCHED_NAME,TRIGGER_GROUP) 251 | go 252 | 253 | alter table QRTZ_SCHEDULER_STATE 254 | add constraint PK_qrtz_scheduler_state primary key clustered (SCHED_NAME,INSTANCE_NAME) 255 | go 256 | 257 | alter table QRTZ_LOCKS 258 | add constraint PK_qrtz_locks primary key clustered (SCHED_NAME,LOCK_NAME) 259 | go 260 | 261 | alter table QRTZ_JOB_DETAILS 262 | add constraint PK_qrtz_job_details primary key clustered (SCHED_NAME,JOB_NAME, JOB_GROUP) 263 | go 264 | 265 | alter table QRTZ_SIMPLE_TRIGGERS 266 | add constraint PK_qrtz_simple_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 267 | go 268 | 269 | alter table QRTZ_SIMPROP_TRIGGERS 270 | add constraint PK_qrtz_simprop_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 271 | go 272 | 273 | alter table QRTZ_TRIGGERS 274 | add constraint PK_qrtz_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 275 | go 276 | 277 | alter table QRTZ_BLOB_TRIGGERS 278 | add constraint PK_qrtz_blob_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP) 279 | go 280 | 281 | 282 | /*==============================================================================*/ 283 | /* Create foreign key constraints: */ 284 | /*==============================================================================*/ 285 | 286 | alter table QRTZ_CRON_TRIGGERS 287 | add constraint FK_cron_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 288 | references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 289 | go 290 | 291 | alter table QRTZ_SIMPLE_TRIGGERS 292 | add constraint FK_simple_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 293 | references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 294 | go 295 | 296 | alter table QRTZ_SIMPROP_TRIGGERS 297 | add constraint FK_simprop_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 298 | references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 299 | go 300 | 301 | alter table QRTZ_TRIGGERS 302 | add constraint FK_triggers_job_details foreign key (SCHED_NAME,JOB_NAME,JOB_GROUP) 303 | references QRTZ_JOB_DETAILS (SCHED_NAME,JOB_NAME,JOB_GROUP) 304 | go 305 | 306 | alter table QRTZ_BLOB_TRIGGERS 307 | add constraint FK_blob_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 308 | references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) 309 | go 310 | 311 | /*==============================================================================*/ 312 | /* End of script. */ 313 | /*==============================================================================*/ 314 | -------------------------------------------------------------------------------- /src/main/resources/scripts/tables_sqlServer.sql: -------------------------------------------------------------------------------- 1 | --# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for 2 | --# updating it. 3 | --# 4 | --# In your Quartz properties file, you'll need to set 5 | --# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate 6 | --# 7 | --# you shouse enter your DB instance's name on the next line in place of "enter_db_name_here" 8 | --# 9 | --# 10 | --# From a helpful (but anonymous) Quartz user: 11 | --# 12 | --# Regarding this error message: 13 | --# 14 | --# [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode. 15 | --# 16 | --# 17 | --# I added "SelectMethod=cursor;" to my Connection URL in the config file. 18 | --# It Seems to work, hopefully no side effects. 19 | --# 20 | --# example: 21 | --# "jdbc:microsoft:sqlserver://dbmachine:1433;SelectMethod=cursor"; 22 | --# 23 | --# Another user has pointed out that you will probably need to use the 24 | --# JTDS driver 25 | --# 26 | 27 | USE [enter_db_name_here] 28 | GO 29 | 30 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) 31 | ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS 32 | GO 33 | 34 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) 35 | ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS 36 | GO 37 | 38 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) 39 | ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS 40 | GO 41 | 42 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1) 43 | ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS 44 | GO 45 | 46 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 47 | DROP TABLE [dbo].[QRTZ_CALENDARS] 48 | GO 49 | 50 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 51 | DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS] 52 | GO 53 | 54 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 55 | DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS] 56 | GO 57 | 58 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 59 | DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS] 60 | GO 61 | 62 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 63 | DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] 64 | GO 65 | 66 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 67 | DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE] 68 | GO 69 | 70 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 71 | DROP TABLE [dbo].[QRTZ_LOCKS] 72 | GO 73 | 74 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 75 | DROP TABLE [dbo].[QRTZ_JOB_DETAILS] 76 | GO 77 | 78 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 79 | DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] 80 | GO 81 | 82 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 83 | DROP TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] 84 | GO 85 | 86 | IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1) 87 | DROP TABLE [dbo].[QRTZ_TRIGGERS] 88 | GO 89 | 90 | CREATE TABLE [dbo].[QRTZ_CALENDARS] ( 91 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 92 | [CALENDAR_NAME] [VARCHAR] (200) NOT NULL , 93 | [CALENDAR] [IMAGE] NOT NULL 94 | ) ON [PRIMARY] 95 | GO 96 | 97 | CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] ( 98 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 99 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 100 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 101 | [CRON_EXPRESSION] [VARCHAR] (120) NOT NULL , 102 | [TIME_ZONE_ID] [VARCHAR] (80) 103 | ) ON [PRIMARY] 104 | GO 105 | 106 | CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] ( 107 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 108 | [ENTRY_ID] [VARCHAR] (95) NOT NULL , 109 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 110 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 111 | [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , 112 | [FIRED_TIME] [BIGINT] NOT NULL , 113 | [SCHED_TIME] [BIGINT] NOT NULL , 114 | [PRIORITY] [INTEGER] NOT NULL , 115 | [STATE] [VARCHAR] (16) NOT NULL, 116 | [JOB_NAME] [VARCHAR] (200) NULL , 117 | [JOB_GROUP] [VARCHAR] (200) NULL , 118 | [IS_NONCONCURRENT] [VARCHAR] (1) NULL , 119 | [REQUESTS_RECOVERY] [VARCHAR] (1) NULL 120 | ) ON [PRIMARY] 121 | GO 122 | 123 | CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] ( 124 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 125 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL 126 | ) ON [PRIMARY] 127 | GO 128 | 129 | CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] ( 130 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 131 | [INSTANCE_NAME] [VARCHAR] (200) NOT NULL , 132 | [LAST_CHECKIN_TIME] [BIGINT] NOT NULL , 133 | [CHECKIN_INTERVAL] [BIGINT] NOT NULL 134 | ) ON [PRIMARY] 135 | GO 136 | 137 | CREATE TABLE [dbo].[QRTZ_LOCKS] ( 138 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 139 | [LOCK_NAME] [VARCHAR] (40) NOT NULL 140 | ) ON [PRIMARY] 141 | GO 142 | 143 | CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] ( 144 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 145 | [JOB_NAME] [VARCHAR] (200) NOT NULL , 146 | [JOB_GROUP] [VARCHAR] (200) NOT NULL , 147 | [DESCRIPTION] [VARCHAR] (250) NULL , 148 | [JOB_CLASS_NAME] [VARCHAR] (250) NOT NULL , 149 | [IS_DURABLE] [VARCHAR] (1) NOT NULL , 150 | [IS_NONCONCURRENT] [VARCHAR] (1) NOT NULL , 151 | [IS_UPDATE_DATA] [VARCHAR] (1) NOT NULL , 152 | [REQUESTS_RECOVERY] [VARCHAR] (1) NOT NULL , 153 | [JOB_DATA] [IMAGE] NULL 154 | ) ON [PRIMARY] 155 | GO 156 | 157 | CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ( 158 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 159 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 160 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 161 | [REPEAT_COUNT] [BIGINT] NOT NULL , 162 | [REPEAT_INTERVAL] [BIGINT] NOT NULL , 163 | [TIMES_TRIGGERED] [BIGINT] NOT NULL 164 | ) ON [PRIMARY] 165 | GO 166 | 167 | CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ( 168 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 169 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 170 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 171 | [STR_PROP_1] [VARCHAR] (512) NULL, 172 | [STR_PROP_2] [VARCHAR] (512) NULL, 173 | [STR_PROP_3] [VARCHAR] (512) NULL, 174 | [INT_PROP_1] [INT] NULL, 175 | [INT_PROP_2] [INT] NULL, 176 | [LONG_PROP_1] [BIGINT] NULL, 177 | [LONG_PROP_2] [BIGINT] NULL, 178 | [DEC_PROP_1] [NUMERIC] (13,4) NULL, 179 | [DEC_PROP_2] [NUMERIC] (13,4) NULL, 180 | [BOOL_PROP_1] [VARCHAR] (1) NULL, 181 | [BOOL_PROP_2] [VARCHAR] (1) NULL, 182 | ) ON [PRIMARY] 183 | GO 184 | 185 | CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ( 186 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 187 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 188 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 189 | [BLOB_DATA] [IMAGE] NULL 190 | ) ON [PRIMARY] 191 | GO 192 | 193 | CREATE TABLE [dbo].[QRTZ_TRIGGERS] ( 194 | [SCHED_NAME] [VARCHAR] (120) NOT NULL , 195 | [TRIGGER_NAME] [VARCHAR] (200) NOT NULL , 196 | [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL , 197 | [JOB_NAME] [VARCHAR] (200) NOT NULL , 198 | [JOB_GROUP] [VARCHAR] (200) NOT NULL , 199 | [DESCRIPTION] [VARCHAR] (250) NULL , 200 | [NEXT_FIRE_TIME] [BIGINT] NULL , 201 | [PREV_FIRE_TIME] [BIGINT] NULL , 202 | [PRIORITY] [INTEGER] NULL , 203 | [TRIGGER_STATE] [VARCHAR] (16) NOT NULL , 204 | [TRIGGER_TYPE] [VARCHAR] (8) NOT NULL , 205 | [START_TIME] [BIGINT] NOT NULL , 206 | [END_TIME] [BIGINT] NULL , 207 | [CALENDAR_NAME] [VARCHAR] (200) NULL , 208 | [MISFIRE_INSTR] [SMALLINT] NULL , 209 | [JOB_DATA] [IMAGE] NULL 210 | ) ON [PRIMARY] 211 | GO 212 | 213 | ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD 214 | CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED 215 | ( 216 | [SCHED_NAME], 217 | [CALENDAR_NAME] 218 | ) ON [PRIMARY] 219 | GO 220 | 221 | ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD 222 | CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED 223 | ( 224 | [SCHED_NAME], 225 | [TRIGGER_NAME], 226 | [TRIGGER_GROUP] 227 | ) ON [PRIMARY] 228 | GO 229 | 230 | ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD 231 | CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED 232 | ( 233 | [SCHED_NAME], 234 | [ENTRY_ID] 235 | ) ON [PRIMARY] 236 | GO 237 | 238 | ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD 239 | CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED 240 | ( 241 | [SCHED_NAME], 242 | [TRIGGER_GROUP] 243 | ) ON [PRIMARY] 244 | GO 245 | 246 | ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD 247 | CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED 248 | ( 249 | [SCHED_NAME], 250 | [INSTANCE_NAME] 251 | ) ON [PRIMARY] 252 | GO 253 | 254 | ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD 255 | CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED 256 | ( 257 | [SCHED_NAME], 258 | [LOCK_NAME] 259 | ) ON [PRIMARY] 260 | GO 261 | 262 | ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD 263 | CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED 264 | ( 265 | [SCHED_NAME], 266 | [JOB_NAME], 267 | [JOB_GROUP] 268 | ) ON [PRIMARY] 269 | GO 270 | 271 | ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD 272 | CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED 273 | ( 274 | [SCHED_NAME], 275 | [TRIGGER_NAME], 276 | [TRIGGER_GROUP] 277 | ) ON [PRIMARY] 278 | GO 279 | 280 | ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD 281 | CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED 282 | ( 283 | [SCHED_NAME], 284 | [TRIGGER_NAME], 285 | [TRIGGER_GROUP] 286 | ) ON [PRIMARY] 287 | GO 288 | 289 | ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD 290 | CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED 291 | ( 292 | [SCHED_NAME], 293 | [TRIGGER_NAME], 294 | [TRIGGER_GROUP] 295 | ) ON [PRIMARY] 296 | GO 297 | 298 | ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD 299 | CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY 300 | ( 301 | [SCHED_NAME], 302 | [TRIGGER_NAME], 303 | [TRIGGER_GROUP] 304 | ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( 305 | [SCHED_NAME], 306 | [TRIGGER_NAME], 307 | [TRIGGER_GROUP] 308 | ) ON DELETE CASCADE 309 | GO 310 | 311 | ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD 312 | CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY 313 | ( 314 | [SCHED_NAME], 315 | [TRIGGER_NAME], 316 | [TRIGGER_GROUP] 317 | ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( 318 | [SCHED_NAME], 319 | [TRIGGER_NAME], 320 | [TRIGGER_GROUP] 321 | ) ON DELETE CASCADE 322 | GO 323 | 324 | ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD 325 | CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY 326 | ( 327 | [SCHED_NAME], 328 | [TRIGGER_NAME], 329 | [TRIGGER_GROUP] 330 | ) REFERENCES [dbo].[QRTZ_TRIGGERS] ( 331 | [SCHED_NAME], 332 | [TRIGGER_NAME], 333 | [TRIGGER_GROUP] 334 | ) ON DELETE CASCADE 335 | GO 336 | 337 | ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD 338 | CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY 339 | ( 340 | [SCHED_NAME], 341 | [JOB_NAME], 342 | [JOB_GROUP] 343 | ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] ( 344 | [SCHED_NAME], 345 | [JOB_NAME], 346 | [JOB_GROUP] 347 | ) 348 | GO 349 | 350 | --------------------------------------------------------------------------------