)map;
putAll(mapTyped);
+
+ // When constructing a new data map from another existing map, we should NOT mark dirty flag as true
+ // Use case: loading JobDataMap from DB
+ clearDirtyFlag();
}
/*
Index: 3rdParty_sources/quartz/org/quartz/JobExecutionException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/JobExecutionException.java (.../JobExecutionException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/JobExecutionException.java (.../JobExecutionException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,5 @@
-
-/*
- * Copyright 2001-2009 Terracotta, Inc.
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/JobKey.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/JobKey.java (.../JobKey.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/JobKey.java (.../JobKey.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -23,7 +23,7 @@
* Uniquely identifies a {@link JobDetail}.
*
* Keys are composed of both a name and group, and the name must be unique
- * within the group. If only a group is specified then the default group
+ * within the group. If only a name is specified then the default group
* name will be used.
*
* Quartz provides a builder-style API for constructing scheduling-related
Index: 3rdParty_sources/quartz/org/quartz/JobListener.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/JobListener.java (.../JobListener.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/JobListener.java (.../JobListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/JobPersistenceException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/JobPersistenceException.java (.../JobPersistenceException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/JobPersistenceException.java (.../JobPersistenceException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ObjectAlreadyExistsException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ObjectAlreadyExistsException.java (.../ObjectAlreadyExistsException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ObjectAlreadyExistsException.java (.../ObjectAlreadyExistsException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/Scheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/Scheduler.java (.../Scheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/Scheduler.java (.../Scheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -826,6 +826,22 @@
throws SchedulerException;
/**
+ * Reset the current state of the identified {@link Trigger}
+ * from {@link TriggerState#ERROR} to {@link TriggerState#NORMAL} or
+ * {@link TriggerState#PAUSED} as appropriate.
+ *
+ *
Only affects triggers that are in ERROR state - if identified trigger is not
+ * in that state then the result is a no-op.
+ *
+ * The result will be the trigger returning to the normal, waiting to
+ * be fired state, unless the trigger's group has been paused, in which
+ * case it will go into the PAUSED state.
+ *
+ * @see Trigger.TriggerState
+ */
+ void resetTriggerFromErrorState(TriggerKey triggerKey)
+ throws SchedulerException;
+ /**
* Add (register) the given Calendar
to the Scheduler.
*
* @param updateTriggers whether or not to update existing triggers that
Index: 3rdParty_sources/quartz/org/quartz/SchedulerConfigException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerConfigException.java (.../SchedulerConfigException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerConfigException.java (.../SchedulerConfigException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,5 @@
-
-/*
- * Copyright 2001-2009 Terracotta, Inc.
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/SchedulerContext.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerContext.java (.../SchedulerContext.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerContext.java (.../SchedulerContext.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/SchedulerException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerException.java (.../SchedulerException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerException.java (.../SchedulerException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/SchedulerFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerFactory.java (.../SchedulerFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerFactory.java (.../SchedulerFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/SchedulerListener.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerListener.java (.../SchedulerListener.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerListener.java (.../SchedulerListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/SchedulerMetaData.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/SchedulerMetaData.java (.../SchedulerMetaData.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/SchedulerMetaData.java (.../SchedulerMetaData.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/StatefulJob.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/StatefulJob.java (.../StatefulJob.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/StatefulJob.java (.../StatefulJob.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/Trigger.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/Trigger.java (.../Trigger.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/Trigger.java (.../Trigger.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -98,7 +98,7 @@
*
*
* In order to see if this instruction fits your needs, you should look at
- * the documentation for the getSmartMisfirePolicy()
method
+ * the documentation for the updateAfterMisfire()
method
* on the particular Trigger
implementation you are using.
*
*/
Index: 3rdParty_sources/quartz/org/quartz/TriggerListener.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/TriggerListener.java (.../TriggerListener.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/TriggerListener.java (.../TriggerListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/TriggerUtils.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/TriggerUtils.java (.../TriggerUtils.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/TriggerUtils.java (.../TriggerUtils.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/UnableToInterruptJobException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/UnableToInterruptJobException.java (.../UnableToInterruptJobException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/UnableToInterruptJobException.java (.../UnableToInterruptJobException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/commonj/WorkManagerThreadExecutor.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/commonj/WorkManagerThreadExecutor.java (.../WorkManagerThreadExecutor.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/commonj/WorkManagerThreadExecutor.java (.../WorkManagerThreadExecutor.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -34,7 +34,7 @@
* details.
*
* @author matt.accola
- * @version $Revision: 2243 $ $Date: 2013-04-30 11:39:48 -0700 (Tue, 30 Apr 2013) $
+ * @version $Revision$ $Date$
*/
public class WorkManagerThreadExecutor implements ThreadExecutor {
private final Logger log = LoggerFactory.getLogger(getClass());
Index: 3rdParty_sources/quartz/org/quartz/core/JobRunShell.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/JobRunShell.java (.../JobRunShell.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/JobRunShell.java (.../JobRunShell.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/core/JobRunShellFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/JobRunShellFactory.java (.../JobRunShellFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/JobRunShellFactory.java (.../JobRunShellFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/core/QuartzScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/QuartzScheduler.java (.../QuartzScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/QuartzScheduler.java (.../QuartzScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -34,7 +34,6 @@
import java.util.Properties;
import java.util.Random;
import java.util.Set;
-import java.util.Timer;
import java.util.Map.Entry;
import java.util.concurrent.atomic.AtomicInteger;
@@ -67,7 +66,6 @@
import org.quartz.Trigger.TriggerState;
import org.quartz.core.jmx.QuartzSchedulerMBean;
import org.quartz.impl.SchedulerRepository;
-import org.quartz.impl.StdSchedulerFactory;
import org.quartz.impl.matchers.GroupMatcher;
import org.quartz.listeners.SchedulerListenerSupport;
import org.quartz.simpl.PropertySettingJobFactory;
@@ -76,7 +74,6 @@
import org.quartz.spi.SchedulerPlugin;
import org.quartz.spi.SchedulerSignaler;
import org.quartz.spi.ThreadExecutor;
-import org.quartz.utils.UpdateChecker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -185,9 +182,6 @@
private QuartzSchedulerMBean jmxBean = null;
private Date initialStart = null;
-
- /** Update timer that must be cancelled upon shutdown. */
- private final Timer updateTimer;
private final Logger log = LoggerFactory.getLogger(getClass());
@@ -232,11 +226,6 @@
signaler = new SchedulerSignalerImpl(this, this.schedThread);
- if(shouldRunUpdateCheck())
- updateTimer = scheduleUpdateCheck();
- else
- updateTimer = null;
-
getLog().info("Quartz Scheduler v." + getVersion() + " created.");
}
@@ -328,14 +317,6 @@
return VERSION_MAJOR;
}
- private boolean shouldRunUpdateCheck() {
- if(resources.isRunUpdateCheck() && !Boolean.getBoolean(StdSchedulerFactory.PROP_SCHED_SKIP_UPDATE_CHECK) &&
- !Boolean.getBoolean("org.terracotta.quartz.skipUpdateCheck")) {
- return true;
- }
- return false;
- }
-
public static String getVersionMinor() {
return VERSION_MINOR;
}
@@ -353,15 +334,6 @@
}
/**
- * Update checker scheduler - fires every week
- */
- private Timer scheduleUpdateCheck() {
- Timer rval = new Timer(true);
- rval.scheduleAtFixedRate(new UpdateChecker(), 1000, 7 * 24 * 60 * 60 * 1000L);
- return rval;
- }
-
- /**
* Register the scheduler in the local MBeanServer.
*/
private void registerJMX() throws Exception {
@@ -591,7 +563,7 @@
catch(InterruptedException ignore) {}
try { start(); }
catch(SchedulerException se) {
- getLog().error("Unable to start secheduler after startup delay.", se);
+ getLog().error("Unable to start scheduler after startup delay.", se);
}
}
});
@@ -764,9 +736,6 @@
SchedulerRepository.getInstance().remove(resources.getName());
holdToPreventGC.clear();
-
- if(updateTimer != null)
- updateTimer.cancel();
getLog().info(
"Scheduler " + resources.getUniqueIdentifier()
@@ -1055,8 +1024,14 @@
resources.getJobStore().storeJobsAndTriggers(triggersAndJobs, replace);
notifySchedulerThread(0L);
- for(JobDetail job: triggersAndJobs.keySet())
- notifySchedulerListenersJobAdded(job);
+ for (JobDetail job : triggersAndJobs.keySet()) {
+ notifySchedulerListenersJobAdded(job);
+
+ Set extends Trigger> triggers = triggersAndJobs.get(job);
+ for (Trigger trigger : triggers) {
+ notifySchedulerListenersSchduled(trigger);
+ }
+ }
}
public void scheduleJob(JobDetail jobDetail, Set extends Trigger> triggersForJob,
@@ -1587,6 +1562,13 @@
return resources.getJobStore().getTriggerState(triggerKey);
}
+
+ public void resetTriggerFromErrorState(TriggerKey triggerKey) throws SchedulerException {
+ validateState();
+
+ resources.getJobStore().resetTriggerFromErrorState(triggerKey);
+ }
+
/**
*
* Add (register) the given Calendar
to the Scheduler.
Index: 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerResources.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerResources.java (.../QuartzSchedulerResources.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerResources.java (.../QuartzSchedulerResources.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -89,8 +89,6 @@
private ThreadExecutor threadExecutor;
- private boolean runUpdateCheck = false;
-
private long batchTimeWindow = 0;
private int maxBatchSize = 1;
@@ -542,14 +540,6 @@
+ ",instance=" + schedInstId;
}
- public boolean isRunUpdateCheck() {
- return runUpdateCheck;
- }
-
- public void setRunUpdateCheck(boolean runUpdateCheck) {
- this.runUpdateCheck = runUpdateCheck;
- }
-
public long getBatchTimeWindow() {
return batchTimeWindow;
}
Index: 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerThread.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerThread.java (.../QuartzSchedulerThread.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/QuartzSchedulerThread.java (.../QuartzSchedulerThread.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -27,6 +27,7 @@
import org.quartz.SchedulerException;
import org.quartz.Trigger;
import org.quartz.Trigger.CompletedExecutionInstruction;
+import org.quartz.spi.JobStore;
import org.quartz.spi.OperableTrigger;
import org.quartz.spi.TriggerFiredBundle;
import org.quartz.spi.TriggerFiredResult;
@@ -241,7 +242,7 @@
*/
@Override
public void run() {
- boolean lastAcquireFailed = false;
+ int acquiresFailed = 0;
while (!halted.get()) {
try {
@@ -253,41 +254,57 @@
sigLock.wait(1000L);
} catch (InterruptedException ignore) {
}
+
+ // reset failure counter when paused, so that we don't
+ // wait again after unpausing
+ acquiresFailed = 0;
}
if (halted.get()) {
break;
}
}
+ // wait a bit, if reading from job store is consistently
+ // failing (e.g. DB is down or restarting)..
+ if (acquiresFailed > 1) {
+ try {
+ long delay = computeDelayForRepeatedErrors(qsRsrcs.getJobStore(), acquiresFailed);
+ Thread.sleep(delay);
+ } catch (Exception ignore) {
+ }
+ }
+
int availThreadCount = qsRsrcs.getThreadPool().blockForAvailableThreads();
if(availThreadCount > 0) { // will always be true, due to semantics of blockForAvailableThreads...
- List triggers = null;
+ List triggers;
long now = System.currentTimeMillis();
clearSignaledSchedulingChange();
try {
triggers = qsRsrcs.getJobStore().acquireNextTriggers(
now + idleWaitTime, Math.min(availThreadCount, qsRsrcs.getMaxBatchSize()), qsRsrcs.getBatchTimeWindow());
- lastAcquireFailed = false;
- if (log.isDebugEnabled())
+ acquiresFailed = 0;
+ if (log.isDebugEnabled())
log.debug("batch acquisition of " + (triggers == null ? 0 : triggers.size()) + " triggers");
} catch (JobPersistenceException jpe) {
- if(!lastAcquireFailed) {
+ if (acquiresFailed == 0) {
qs.notifySchedulerListenersError(
"An error occurred while scanning for the next triggers to fire.",
jpe);
}
- lastAcquireFailed = true;
+ if (acquiresFailed < Integer.MAX_VALUE)
+ acquiresFailed++;
continue;
} catch (RuntimeException e) {
- if(!lastAcquireFailed) {
+ if (acquiresFailed == 0) {
getLog().error("quartzSchedulerThreadLoop: RuntimeException "
+e.getMessage(), e);
}
- lastAcquireFailed = true;
+ if (acquiresFailed < Integer.MAX_VALUE)
+ acquiresFailed++;
continue;
}
@@ -424,6 +441,29 @@
qsRsrcs = null;
}
+ private static final long MIN_DELAY = 20;
+ private static final long MAX_DELAY = 600000;
+
+ private static long computeDelayForRepeatedErrors(JobStore jobStore, int acquiresFailed) {
+ long delay;
+ try {
+ delay = jobStore.getAcquireRetryDelay(acquiresFailed);
+ } catch (Exception ignored) {
+ // we're trying to be useful in case of error states, not cause
+ // additional errors..
+ delay = 100;
+ }
+
+
+ // sanity check per getAcquireRetryDelay specification
+ if (delay < MIN_DELAY)
+ delay = MIN_DELAY;
+ if (delay > MAX_DELAY)
+ delay = MAX_DELAY;
+
+ return delay;
+ }
+
private boolean releaseIfScheduleChangedSignificantly(
List triggers, long triggerTime) {
if (isCandidateNewTimeEarlierWithinReason(triggerTime, true)) {
Index: 3rdParty_sources/quartz/org/quartz/core/RemotableQuartzScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/RemotableQuartzScheduler.java (.../RemotableQuartzScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/RemotableQuartzScheduler.java (.../RemotableQuartzScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -148,6 +148,8 @@
TriggerState getTriggerState(TriggerKey triggerKey) throws SchedulerException, RemoteException;
+ void resetTriggerFromErrorState(TriggerKey triggerKey) throws SchedulerException, RemoteException;
+
void addCalendar(String calName, Calendar calendar, boolean replace, boolean updateTriggers) throws SchedulerException, RemoteException;
boolean deleteCalendar(String calName) throws SchedulerException, RemoteException;
Index: 3rdParty_sources/quartz/org/quartz/core/SchedulerSignalerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/core/SchedulerSignalerImpl.java (.../SchedulerSignalerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/core/SchedulerSignalerImpl.java (.../SchedulerSignalerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/JBoss4RMIRemoteMBeanScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/JBoss4RMIRemoteMBeanScheduler.java (.../JBoss4RMIRemoteMBeanScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/JBoss4RMIRemoteMBeanScheduler.java (.../JBoss4RMIRemoteMBeanScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzService.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzService.java (.../QuartzService.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzService.java (.../QuartzService.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzServiceMBean.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzServiceMBean.java (.../QuartzServiceMBean.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jmx/jboss/QuartzServiceMBean.java (.../QuartzServiceMBean.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jta/JTAAnnotationAwareJobRunShellFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jta/JTAAnnotationAwareJobRunShellFactory.java (.../JTAAnnotationAwareJobRunShellFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jta/JTAAnnotationAwareJobRunShellFactory.java (.../JTAAnnotationAwareJobRunShellFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShell.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShell.java (.../JTAJobRunShell.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShell.java (.../JTAJobRunShell.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShellFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShellFactory.java (.../JTAJobRunShellFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jta/JTAJobRunShellFactory.java (.../JTAJobRunShellFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/jta/UserTransactionHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/jta/UserTransactionHelper.java (.../UserTransactionHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/jta/UserTransactionHelper.java (.../UserTransactionHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerListener.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerListener.java (.../QuartzInitializerListener.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerListener.java (.../QuartzInitializerListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2010 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -160,7 +160,7 @@
performShutdown = Boolean.valueOf(shutdownPref).booleanValue();
}
String shutdownWaitPref = servletContext.getInitParameter("quartz:wait-on-shutdown");
- if (shutdownPref != null) {
+ if (shutdownWaitPref != null) {
waitOnShutdown = Boolean.valueOf(shutdownWaitPref).booleanValue();
}
Index: 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerServlet.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerServlet.java (.../QuartzInitializerServlet.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/ee/servlet/QuartzInitializerServlet.java (.../QuartzInitializerServlet.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/helpers/VersionPrinter.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/helpers/VersionPrinter.java (.../VersionPrinter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/helpers/VersionPrinter.java (.../VersionPrinter.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/DefaultThreadExecutor.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/DefaultThreadExecutor.java (.../DefaultThreadExecutor.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/DefaultThreadExecutor.java (.../DefaultThreadExecutor.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl;
import org.quartz.spi.ThreadExecutor;
Index: 3rdParty_sources/quartz/org/quartz/impl/DirectSchedulerFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/DirectSchedulerFactory.java (.../DirectSchedulerFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/DirectSchedulerFactory.java (.../DirectSchedulerFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -172,7 +172,6 @@
throws SchedulerException {
SimpleThreadPool threadPool = new SimpleThreadPool(maxThreads,
Thread.NORM_PRIORITY);
- threadPool.initialize();
JobStore jobStore = new RAMJobStore();
this.createScheduler(threadPool, jobStore);
}
@@ -464,7 +463,7 @@
// Fire everything up
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
+ threadPool.setInstanceName(schedulerName);
threadPool.initialize();
QuartzSchedulerResources qrs = new QuartzSchedulerResources();
Index: 3rdParty_sources/quartz/org/quartz/impl/JobDetailImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/JobDetailImpl.java (.../JobDetailImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/JobDetailImpl.java (.../JobDetailImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/JobExecutionContextImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/JobExecutionContextImpl.java (.../JobExecutionContextImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/JobExecutionContextImpl.java (.../JobExecutionContextImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -144,8 +144,8 @@
public TriggerKey getRecoveringTriggerKey() {
if (isRecovering()) {
- return new TriggerKey(jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_GROUP),
- jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_NAME));
+ return new TriggerKey(jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_NAME),
+ jobDataMap.getString(Scheduler.FAILED_JOB_ORIGINAL_TRIGGER_GROUP));
} else {
throw new IllegalStateException("Not a recovering job");
}
Index: 3rdParty_sources/quartz/org/quartz/impl/QuartzServer.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/QuartzServer.java (.../QuartzServer.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/QuartzServer.java (.../QuartzServer.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/RemoteMBeanScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/RemoteMBeanScheduler.java (.../RemoteMBeanScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/RemoteMBeanScheduler.java (.../RemoteMBeanScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -833,13 +833,29 @@
new String[] { String.class.getName(), String.class.getName() }));
}
+
/**
*
* Calls the equivalent method on the 'proxied' QuartzScheduler
,
* passing the SchedulingContext
associated with this
* instance.
*
*/
+ public void resetTriggerFromErrorState(TriggerKey triggerKey)
+ throws SchedulerException {
+ invoke(
+ "resetTriggerFromErrorState",
+ new Object[] { triggerKey.getName(), triggerKey.getGroup() },
+ new String[] { String.class.getName(), String.class.getName() });
+ }
+
+ /**
+ *
+ * Calls the equivalent method on the 'proxied' QuartzScheduler
,
+ * passing the SchedulingContext
associated with this
+ * instance.
+ *
+ */
public void addCalendar(String calName, Calendar calendar, boolean replace, boolean updateTriggers)
throws SchedulerException {
invoke(
Index: 3rdParty_sources/quartz/org/quartz/impl/RemoteScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/RemoteScheduler.java (.../RemoteScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/RemoteScheduler.java (.../RemoteScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -818,6 +818,24 @@
* Calls the equivalent method on the 'proxied' QuartzScheduler
.
*
*/
+ public void resetTriggerFromErrorState(TriggerKey triggerKey)
+ throws SchedulerException {
+ try {
+ getRemoteScheduler().resetTriggerFromErrorState(triggerKey);
+ } catch (RemoteException re) {
+ throw invalidateHandleCreateException(
+ "Error communicating with remote scheduler.", re);
+ }
+ }
+
+
+
+
+ /**
+ *
+ * Calls the equivalent method on the 'proxied' QuartzScheduler
.
+ *
+ */
public void addCalendar(String calName, Calendar calendar, boolean replace, boolean updateTriggers)
throws SchedulerException {
try {
Index: 3rdParty_sources/quartz/org/quartz/impl/SchedulerDetailsSetter.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/SchedulerDetailsSetter.java (.../SchedulerDetailsSetter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/SchedulerDetailsSetter.java (.../SchedulerDetailsSetter.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl;
import java.lang.reflect.InvocationTargetException;
Index: 3rdParty_sources/quartz/org/quartz/impl/SchedulerRepository.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/SchedulerRepository.java (.../SchedulerRepository.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/SchedulerRepository.java (.../SchedulerRepository.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/StdJobRunShellFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/StdJobRunShellFactory.java (.../StdJobRunShellFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/StdJobRunShellFactory.java (.../StdJobRunShellFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/StdScheduler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/StdScheduler.java (.../StdScheduler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/StdScheduler.java (.../StdScheduler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -519,6 +519,25 @@
}
/**
+ * Reset the current state of the identified {@link Trigger}
+ * from {@link TriggerState#ERROR} to {@link TriggerState#NORMAL} or
+ * {@link TriggerState#PAUSED} as appropriate.
+ *
+ * Only affects triggers that are in ERROR state - if identified trigger is not
+ * in that state then the result is a no-op.
+ *
+ * The result will be the trigger returning to the normal, waiting to
+ * be fired state, unless the trigger's group has been paused, in which
+ * case it will go into the PAUSED state.
+ *
+ * @see Trigger.TriggerState
+ */
+ public void resetTriggerFromErrorState(TriggerKey triggerKey)
+ throws SchedulerException {
+ sched.resetTriggerFromErrorState(triggerKey);
+ }
+
+ /**
*
* Calls the equivalent method on the 'proxied' QuartzScheduler
.
*
Index: 3rdParty_sources/quartz/org/quartz/impl/StdSchedulerFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/StdSchedulerFactory.java (.../StdSchedulerFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/StdSchedulerFactory.java (.../StdSchedulerFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -17,7 +17,12 @@
package org.quartz.impl;
-import org.quartz.*;
+import org.quartz.JobListener;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerConfigException;
+import org.quartz.SchedulerException;
+import org.quartz.SchedulerFactory;
+import org.quartz.TriggerListener;
import org.quartz.core.JobRunShellFactory;
import org.quartz.core.QuartzScheduler;
import org.quartz.core.QuartzSchedulerResources;
@@ -31,20 +36,36 @@
import org.quartz.management.ManagementRESTServiceConfiguration;
import org.quartz.simpl.RAMJobStore;
import org.quartz.simpl.SimpleThreadPool;
-import org.quartz.spi.*;
-import org.quartz.utils.*;
+import org.quartz.spi.ClassLoadHelper;
+import org.quartz.spi.InstanceIdGenerator;
+import org.quartz.spi.JobFactory;
+import org.quartz.spi.JobStore;
+import org.quartz.spi.SchedulerPlugin;
+import org.quartz.spi.ThreadExecutor;
+import org.quartz.spi.ThreadPool;
+import org.quartz.utils.ConnectionProvider;
+import org.quartz.utils.DBConnectionManager;
+import org.quartz.utils.JNDIConnectionProvider;
+import org.quartz.utils.C3p0PoolingConnectionProvider;
+import org.quartz.utils.PoolingConnectionProvider;
+import org.quartz.utils.PropertiesParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.beans.BeanInfo;
import java.beans.IntrospectionException;
import java.beans.Introspector;
import java.beans.PropertyDescriptor;
-import java.io.*;
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.security.AccessControlException;
-import java.sql.SQLException;
import java.util.Collection;
+import java.util.Enumeration;
import java.util.Locale;
import java.util.Properties;
@@ -121,8 +142,6 @@
public static final String PROP_SCHED_THREAD_NAME = "org.quartz.scheduler.threadName";
- public static final String PROP_SCHED_SKIP_UPDATE_CHECK = "org.quartz.scheduler.skipUpdateCheck";
-
public static final String PROP_SCHED_BATCH_TIME_WINDOW = "org.quartz.scheduler.batchTriggerAcquisitionFireAheadTimeWindow";
public static final String PROP_SCHED_MAX_BATCH_SIZE = "org.quartz.scheduler.batchTriggerAcquisitionMaxCount";
@@ -451,19 +470,20 @@
}
}
- initialize(overrideWithSysProps(props));
+ initialize(overrideWithSysProps(props, getLog()));
}
/**
* Add all System properties to the given props
. Will override
* any properties that already exist in the given props
.
*/
- private Properties overrideWithSysProps(Properties props) {
+ // Visible for testing
+ static Properties overrideWithSysProps(Properties props, Logger log) {
Properties sysProps = null;
try {
sysProps = System.getProperties();
} catch (AccessControlException e) {
- getLog().warn(
+ log.warn(
"Skipping overriding quartz properties with System properties " +
"during initialization because of an AccessControlException. " +
"This is likely due to not having read/write access for " +
@@ -474,7 +494,17 @@
}
if (sysProps != null) {
- props.putAll(sysProps);
+ // Use the propertyNames to iterate to avoid
+ // a possible ConcurrentModificationException
+ Enumeration> en = sysProps.propertyNames();
+ while (en.hasMoreElements()) {
+ Object name = en.nextElement();
+ Object value = sysProps.get(name);
+ if (name instanceof String && value instanceof String) {
+ // Properties javadoc discourages use of put so we use setProperty
+ props.setProperty((String) name, (String) value);
+ }
+ }
}
return props;
@@ -659,7 +689,6 @@
boolean threadsInheritInitalizersClassLoader =
cfg.getBooleanProperty(PROP_SCHED_SCHEDULER_THREADS_INHERIT_CONTEXT_CLASS_LOADER_OF_INITIALIZING_THREAD);
- boolean skipUpdateCheck = cfg.getBooleanProperty(PROP_SCHED_SKIP_UPDATE_CHECK, true);
long batchTimeWindow = cfg.getLongProperty(PROP_SCHED_BATCH_TIME_WINDOW, 0L);
int maxBatchSize = cfg.getIntProperty(PROP_SCHED_MAX_BATCH_SIZE, 1);
@@ -980,6 +1009,7 @@
dbMgr = DBConnectionManager.getInstance();
dbMgr.addConnectionProvider(dsNames[i], cp);
} else {
+ String poolingProvider = pp.getStringProperty(PoolingConnectionProvider.POOLING_PROVIDER);
String dsDriver = pp.getStringProperty(PoolingConnectionProvider.DB_DRIVER);
String dsURL = pp.getStringProperty(PoolingConnectionProvider.DB_URL);
@@ -995,13 +1025,31 @@
+ dsNames[i]);
throw initException;
}
+ // we load even these "core" providers by class name in order to avoid a static dependency on
+ // the c3p0 and hikaricp libraries
+ if(poolingProvider != null && poolingProvider.equals(PoolingConnectionProvider.POOLING_PROVIDER_HIKARICP)) {
+ cpClass = "org.quartz.utils.HikariCpPoolingConnectionProvider";
+ }
+ else {
+ cpClass = "org.quartz.utils.C3p0PoolingConnectionProvider";
+ }
+ log.info("Using ConnectionProvider class '" + cpClass + "' for data source '" + dsNames[i] + "'");
+
try {
- PoolingConnectionProvider cp = new PoolingConnectionProvider(pp.getUnderlyingProperties());
+ ConnectionProvider cp = null;
+ try {
+ Constructor constructor = loadHelper.loadClass(cpClass).getConstructor(Properties.class);
+ cp = (ConnectionProvider) constructor.newInstance(pp.getUnderlyingProperties());
+ } catch (Exception e) {
+ initException = new SchedulerException("ConnectionProvider class '" + cpClass
+ + "' could not be instantiated.", e);
+ throw initException;
+ }
dbMgr = DBConnectionManager.getInstance();
dbMgr.addConnectionProvider(dsNames[i], cp);
- // Populate the underlying C3P0 data source pool properties
- populateProviderWithExtraProps(cp, pp.getUnderlyingProperties());
+ // Populate the underlying C3P0/HikariCP data source pool properties
+ populateProviderWithExtraProps((PoolingConnectionProvider)cp, pp.getUnderlyingProperties());
} catch (Exception sqle) {
initException = new SchedulerException(
"Could not initialize DataSource: " + dsNames[i],
@@ -1240,7 +1288,6 @@
rsrcs.setJobRunShellFactory(jrsf);
rsrcs.setMakeSchedulerThreadDaemon(makeSchedulerThreadDaemon);
rsrcs.setThreadsInheritInitializersClassLoadContext(threadsInheritInitalizersClassLoader);
- rsrcs.setRunUpdateCheck(!skipUpdateCheck);
rsrcs.setBatchTimeWindow(batchTimeWindow);
rsrcs.setMaxBatchSize(maxBatchSize);
rsrcs.setInterruptJobsOnShutdown(interruptJobsOnShutdown);
@@ -1364,11 +1411,17 @@
copyProps.remove(PoolingConnectionProvider.DB_URL);
copyProps.remove(PoolingConnectionProvider.DB_USER);
copyProps.remove(PoolingConnectionProvider.DB_PASSWORD);
- copyProps.remove(PoolingConnectionProvider.DB_IDLE_VALIDATION_SECONDS);
copyProps.remove(PoolingConnectionProvider.DB_MAX_CONNECTIONS);
- copyProps.remove(PoolingConnectionProvider.DB_MAX_CACHED_STATEMENTS_PER_CONNECTION);
- copyProps.remove(PoolingConnectionProvider.DB_VALIDATE_ON_CHECKOUT);
copyProps.remove(PoolingConnectionProvider.DB_VALIDATION_QUERY);
+ copyProps.remove(PoolingConnectionProvider.POOLING_PROVIDER);
+
+ if (cp instanceof C3p0PoolingConnectionProvider) {
+ copyProps.remove(C3p0PoolingConnectionProvider.DB_MAX_CACHED_STATEMENTS_PER_CONNECTION);
+ copyProps.remove(C3p0PoolingConnectionProvider.DB_VALIDATE_ON_CHECKOUT);
+ copyProps.remove(C3p0PoolingConnectionProvider.DB_IDLE_VALIDATION_SECONDS);
+ copyProps.remove(C3p0PoolingConnectionProvider.DB_DISCARD_IDLE_CONNECTIONS_SECONDS);
+ }
+
setBeanProps(cp.getDataSource(), copyProps);
}
@@ -1395,6 +1448,7 @@
java.lang.reflect.InvocationTargetException,
IntrospectionException, SchedulerConfigException {
props.remove("class");
+ props.remove(PoolingConnectionProvider.POOLING_PROVIDER);
BeanInfo bi = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propDescs = bi.getPropertyDescriptors();
Index: 3rdParty_sources/quartz/org/quartz/impl/calendar/AnnualCalendar.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/calendar/AnnualCalendar.java (.../AnnualCalendar.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/calendar/AnnualCalendar.java (.../AnnualCalendar.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/calendar/BaseCalendar.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/calendar/BaseCalendar.java (.../BaseCalendar.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/calendar/BaseCalendar.java (.../BaseCalendar.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/calendar/HolidayCalendar.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/calendar/HolidayCalendar.java (.../HolidayCalendar.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/calendar/HolidayCalendar.java (.../HolidayCalendar.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/calendar/MonthlyCalendar.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/calendar/MonthlyCalendar.java (.../MonthlyCalendar.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/calendar/MonthlyCalendar.java (.../MonthlyCalendar.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/calendar/WeeklyCalendar.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/calendar/WeeklyCalendar.java (.../WeeklyCalendar.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/calendar/WeeklyCalendar.java (.../WeeklyCalendar.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/AttributeRestoringConnectionInvocationHandler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/AttributeRestoringConnectionInvocationHandler.java (.../AttributeRestoringConnectionInvocationHandler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/AttributeRestoringConnectionInvocationHandler.java (.../AttributeRestoringConnectionInvocationHandler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CUBRIDDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CUBRIDDelegate.java (.../CUBRIDDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CUBRIDDelegate.java (.../CUBRIDDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CacheDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CacheDelegate.java (.../CacheDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CacheDelegate.java (.../CacheDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2012 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CalendarIntervalTriggerPersistenceDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CalendarIntervalTriggerPersistenceDelegate.java (.../CalendarIntervalTriggerPersistenceDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CalendarIntervalTriggerPersistenceDelegate.java (.../CalendarIntervalTriggerPersistenceDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.util.TimeZone;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Constants.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Constants.java (.../Constants.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Constants.java (.../Constants.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CronTriggerPersistenceDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CronTriggerPersistenceDelegate.java (.../CronTriggerPersistenceDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/CronTriggerPersistenceDelegate.java (.../CronTriggerPersistenceDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.io.IOException;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v6Delegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v6Delegate.java (.../DB2v6Delegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v6Delegate.java (.../DB2v6Delegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v7Delegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v7Delegate.java (.../DB2v7Delegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v7Delegate.java (.../DB2v7Delegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v8Delegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v8Delegate.java (.../DB2v8Delegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DB2v8Delegate.java (.../DB2v8Delegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DBSemaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DBSemaphore.java (.../DBSemaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DBSemaphore.java (.../DBSemaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DriverDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DriverDelegate.java (.../DriverDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/DriverDelegate.java (.../DriverDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/FiredTriggerRecord.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/FiredTriggerRecord.java (.../FiredTriggerRecord.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/FiredTriggerRecord.java (.../FiredTriggerRecord.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/HSQLDBDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/HSQLDBDelegate.java (.../HSQLDBDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/HSQLDBDelegate.java (.../HSQLDBDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/InvalidConfigurationException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/InvalidConfigurationException.java (.../InvalidConfigurationException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/InvalidConfigurationException.java (.../InvalidConfigurationException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JTANonClusteredSemaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JTANonClusteredSemaphore.java (.../JTANonClusteredSemaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JTANonClusteredSemaphore.java (.../JTANonClusteredSemaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreCMT.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreCMT.java (.../JobStoreCMT.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreCMT.java (.../JobStoreCMT.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -245,7 +245,7 @@
return txCallback.execute(conn);
} finally {
try {
- releaseLock(LOCK_TRIGGER_ACCESS, transOwner);
+ releaseLock(lockName, transOwner);
} finally {
cleanupConnection(conn);
}
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreSupport.java (.../JobStoreSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreSupport.java (.../JobStoreSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -616,7 +616,12 @@
boolean doubleCheckLockMisfireHandler) {
this.doubleCheckLockMisfireHandler = doubleCheckLockMisfireHandler;
}
-
+
+ @Override
+ public long getAcquireRetryDelay(int failureCount) {
+ return dbRetryInterval;
+ }
+
//---------------------------------------------------------------------------
// interface methods
//---------------------------------------------------------------------------
@@ -1035,7 +1040,7 @@
schedSignaler.notifySchedulerListenersFinalized(trig);
} else {
storeTrigger(conn, trig, null, true, newStateIfNotComplete,
- forceState, false);
+ forceState, recovering);
}
}
@@ -1597,6 +1602,47 @@
}
/**
+ * Reset the current state of the identified {@link Trigger}
+ * from {@link TriggerState#ERROR} to {@link TriggerState#NORMAL} or
+ * {@link TriggerState#PAUSED} as appropriate.
+ *
+ * Only affects triggers that are in ERROR state - if identified trigger is not
+ * in that state then the result is a no-op.
+ *
+ * The result will be the trigger returning to the normal, waiting to
+ * be fired state, unless the trigger's group has been paused, in which
+ * case it will go into the PAUSED state.
+ */
+ public void resetTriggerFromErrorState(final TriggerKey triggerKey) throws JobPersistenceException {
+ executeInLock(
+ LOCK_TRIGGER_ACCESS,
+ new VoidTransactionCallback() {
+ public void executeVoid(Connection conn) throws JobPersistenceException {
+ resetTriggerFromErrorState(conn, triggerKey);
+ }
+ });
+ }
+
+ void resetTriggerFromErrorState(Connection conn, final TriggerKey triggerKey)
+ throws JobPersistenceException {
+
+ try {
+ String newState = STATE_WAITING;
+
+ if(getDelegate().isTriggerGroupPaused(conn, triggerKey.getGroup())) {
+ newState = STATE_PAUSED;
+ }
+
+ getDelegate().updateTriggerStateFromOtherState(conn, triggerKey, newState, STATE_ERROR);
+
+ getLog().info("Trigger " + triggerKey + " reset from ERROR state to: " + newState);
+ } catch (SQLException e) {
+ throw new JobPersistenceException(
+ "Couldn't reset from error state of trigger (" + triggerKey + "): " + e.getMessage(), e);
+ }
+ }
+
+ /**
*
* Store the given {@link org.quartz.Calendar}
.
*
@@ -2833,8 +2879,21 @@
acquiredJobKeysForNoConcurrentExec.add(jobKey);
}
}
+
+ Date nextFireTime = nextTrigger.getNextFireTime();
+
+ // A trigger should not return NULL on nextFireTime when fetched from DB.
+ // But for whatever reason if we do have this (BAD trigger implementation or
+ // data?), we then should log a warning and continue to next trigger.
+ // User would need to manually fix these triggers from DB as they will not
+ // able to be clean up by Quartz since we are not returning it to be processed.
+ if (nextFireTime == null) {
+ log.warn("Trigger {} returned null on nextFireTime and yet still exists in DB!",
+ nextTrigger.getKey());
+ continue;
+ }
- if (nextTrigger.getNextFireTime().getTime() > batchEnd) {
+ if (nextFireTime.getTime() > batchEnd) {
break;
}
// We now have a acquired trigger, let's add to return list.
@@ -2847,7 +2906,7 @@
getDelegate().insertFiredTrigger(conn, nextTrigger, STATE_ACQUIRED, null);
if(acquiredTriggers.isEmpty()) {
- batchEnd = Math.max(nextTrigger.getNextFireTime().getTime(), System.currentTimeMillis()) + timeWindow;
+ batchEnd = Math.max(nextFireTime.getTime(), System.currentTimeMillis()) + timeWindow;
}
acquiredTriggers.add(nextTrigger);
}
@@ -2893,6 +2952,8 @@
try {
getDelegate().updateTriggerStateFromOtherState(conn,
trigger.getKey(), STATE_WAITING, STATE_ACQUIRED);
+ getDelegate().updateTriggerStateFromOtherState(conn,
+ trigger.getKey(), STATE_WAITING, STATE_BLOCKED);
getDelegate().deleteFiredTrigger(conn, trigger.getFireInstanceId());
} catch (SQLException e) {
throw new JobPersistenceException(
@@ -3696,7 +3757,7 @@
* the a transaction template. If no return value is required, execute
* should just return null.
*
- * @see JobStoreSupport#executeInNonManagedTXLock(String, TransactionCallback)
+ * @see JobStoreSupport#executeInNonManagedTXLock(String, TransactionCallback, TransactionValidator)
* @see JobStoreSupport#executeInLock(String, TransactionCallback)
* @see JobStoreSupport#executeWithoutLock(TransactionCallback)
*/
@@ -3712,7 +3773,7 @@
* Implement this interface to provide the code to execute within
* the a transaction template that has no return value.
*
- * @see JobStoreSupport#executeInNonManagedTXLock(String, TransactionCallback)
+ * @see JobStoreSupport#executeInNonManagedTXLock(String, TransactionCallback, TransactionValidator)
*/
protected abstract class VoidTransactionCallback implements TransactionCallback {
public final Void execute(Connection conn) throws JobPersistenceException {
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreTX.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreTX.java (.../JobStoreTX.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/JobStoreTX.java (.../JobStoreTX.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/LockException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/LockException.java (.../LockException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/LockException.java (.../LockException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/MSSQLDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/MSSQLDelegate.java (.../MSSQLDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/MSSQLDelegate.java (.../MSSQLDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/NoSuchDelegateException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/NoSuchDelegateException.java (.../NoSuchDelegateException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/NoSuchDelegateException.java (.../NoSuchDelegateException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PointbaseDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PointbaseDelegate.java (.../PointbaseDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PointbaseDelegate.java (.../PointbaseDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PostgreSQLDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PostgreSQLDelegate.java (.../PostgreSQLDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/PostgreSQLDelegate.java (.../PostgreSQLDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SchedulerStateRecord.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SchedulerStateRecord.java (.../SchedulerStateRecord.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SchedulerStateRecord.java (.../SchedulerStateRecord.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Semaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Semaphore.java (.../Semaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Semaphore.java (.../Semaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,20 +1,19 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
* under the License.
- *
+ *
*/
-
package org.quartz.impl.jdbcjobstore;
import java.sql.Connection;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerPersistenceDelegateSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerPersistenceDelegateSupport.java (.../SimplePropertiesTriggerPersistenceDelegateSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerPersistenceDelegateSupport.java (.../SimplePropertiesTriggerPersistenceDelegateSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.io.IOException;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerProperties.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerProperties.java (.../SimplePropertiesTriggerProperties.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimplePropertiesTriggerProperties.java (.../SimplePropertiesTriggerProperties.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.math.BigDecimal;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleSemaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleSemaphore.java (.../SimpleSemaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleSemaphore.java (.../SimpleSemaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleTriggerPersistenceDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleTriggerPersistenceDelegate.java (.../SimpleTriggerPersistenceDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SimpleTriggerPersistenceDelegate.java (.../SimpleTriggerPersistenceDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.io.IOException;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCConstants.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCConstants.java (.../StdJDBCConstants.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCConstants.java (.../StdJDBCConstants.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCDelegate.java (.../StdJDBCDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdJDBCDelegate.java (.../StdJDBCDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -1160,7 +1160,7 @@
// save some clock cycles by unnecessarily writing job data blob ...
boolean updateJobData = trigger.getJobDataMap().isDirty();
ByteArrayOutputStream baos = null;
- if(updateJobData && trigger.getJobDataMap().size() > 0) {
+ if(updateJobData) {
baos = serializeJobData(trigger.getJobDataMap());
}
@@ -2612,7 +2612,7 @@
ps.setBigDecimal(3, new BigDecimal(String.valueOf(noEarlierThan)));
rs = ps.executeQuery();
- while (rs.next() && nextTriggers.size() <= maxCount) {
+ while (rs.next() && nextTriggers.size() < maxCount) {
nextTriggers.add(triggerKey(
rs.getString(COL_TRIGGER_NAME),
rs.getString(COL_TRIGGER_GROUP)));
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdRowLockSemaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdRowLockSemaphore.java (.../StdRowLockSemaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/StdRowLockSemaphore.java (.../StdRowLockSemaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -62,7 +62,29 @@
public StdRowLockSemaphore(String tablePrefix, String schedName, String selectWithLockSQL) {
super(tablePrefix, schedName, selectWithLockSQL != null ? selectWithLockSQL : SELECT_FOR_LOCK, INSERT_LOCK);
}
-
+
+ // Data Members
+
+ // Configurable lock retry parameters
+ private int maxRetry = 3;
+ private long retryPeriod = 1000L;
+
+ public void setMaxRetry(int maxRetry) {
+ this.maxRetry = maxRetry;
+ }
+
+ public void setRetryPeriod(long retryPeriod) {
+ this.retryPeriod = retryPeriod;
+ }
+
+ public int getMaxRetry() {
+ return maxRetry;
+ }
+
+ public long getRetryPeriod() {
+ return retryPeriod;
+ }
+
/*
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*
@@ -82,6 +104,11 @@
// attempt lock two times (to work-around possible race conditions in inserting the lock row the first time running)
int count = 0;
+
+ // Configurable lock retry attempts
+ int maxRetryLocal = this.maxRetry;
+ long retryPeriodLocal = this.retryPeriod;
+
do {
count++;
try {
@@ -108,10 +135,10 @@
int res = ps.executeUpdate();
if(res != 1) {
- if(count < 3) {
+ if(count < maxRetryLocal) {
// pause a bit to give another thread some time to commit the insert of the new lock row
try {
- Thread.sleep(1000L);
+ Thread.sleep(retryPeriodLocal);
} catch (InterruptedException ignore) {
Thread.currentThread().interrupt();
}
@@ -140,13 +167,13 @@
if (getLog().isDebugEnabled()) {
getLog().debug(
"Lock '" + lockName + "' was not obtained by: " +
- Thread.currentThread().getName() + (count < 3 ? " - will try again." : ""));
+ Thread.currentThread().getName() + (count < maxRetryLocal ? " - will try again." : ""));
}
- if(count < 3) {
+ if(count < maxRetryLocal) {
// pause a bit to give another thread some time to commit the insert of the new lock row
try {
- Thread.sleep(1000L);
+ Thread.sleep(retryPeriodLocal);
} catch (InterruptedException ignore) {
Thread.currentThread().interrupt();
}
@@ -170,7 +197,7 @@
}
}
}
- } while(count < 4);
+ } while(count < (maxRetryLocal + 1));
throw new LockException("Failure obtaining db row lock, reached maximum number of attempts. Initial exception (if any) attached as root cause.", initCause);
}
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SybaseDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SybaseDelegate.java (.../SybaseDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/SybaseDelegate.java (.../SybaseDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2010 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TablePrefixAware.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TablePrefixAware.java (.../TablePrefixAware.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TablePrefixAware.java (.../TablePrefixAware.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerPersistenceDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerPersistenceDelegate.java (.../TriggerPersistenceDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerPersistenceDelegate.java (.../TriggerPersistenceDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.impl.jdbcjobstore;
import java.io.IOException;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerStatus.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerStatus.java (.../TriggerStatus.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/TriggerStatus.java (.../TriggerStatus.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/UpdateLockRowSemaphore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/UpdateLockRowSemaphore.java (.../UpdateLockRowSemaphore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/UpdateLockRowSemaphore.java (.../UpdateLockRowSemaphore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Util.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Util.java (.../Util.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/Util.java (.../Util.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/WebLogicDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/WebLogicDelegate.java (.../WebLogicDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/WebLogicDelegate.java (.../WebLogicDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc. Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/liquibase.quartz.init.xml
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/liquibase.quartz.init.xml (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/liquibase.quartz.init.xml (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,360 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/OracleDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/OracleDelegate.java (.../OracleDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/OracleDelegate.java (.../OracleDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc. Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/weblogic/WebLogicOracleDelegate.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/weblogic/WebLogicOracleDelegate.java (.../WebLogicOracleDelegate.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/oracle/weblogic/WebLogicOracleDelegate.java (.../WebLogicOracleDelegate.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc. Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cloudscape.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cloudscape.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cloudscape.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,142 @@
+#
+# Thanks to Srinivas Venkatarangaiah for submitting this file's contents
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate
+#
+# Known to work with Cloudscape 3.6.4 (should work with others)
+#
+
+
+create table qrtz_job_details (
+ sched_name varchar(120) not null,
+ job_name varchar(200) not null,
+ job_group varchar(200) not null,
+ description varchar(250) ,
+ job_class_name varchar(250) not null,
+ is_durable varchar(5) not null,
+ is_nonconcurrent varchar(5) not null,
+ is_update_data varchar(5) not null,
+ requests_recovery varchar(5) not null,
+ job_data long varbinary,
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ job_name varchar(200) not null,
+ job_group varchar(200) not null,
+ description varchar(250) ,
+ next_fire_time longint,
+ prev_fire_time longint,
+ priority integer,
+ trigger_state varchar(16) not null,
+ trigger_type varchar(8) not null,
+ start_time longint not null,
+ end_time longint,
+ calendar_name varchar(200),
+ misfire_instr smallint,
+ job_data long varbinary,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ repeat_count longint not null,
+ repeat_interval longint not null,
+ times_triggered longint not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ cron_expression varchar(120) not null,
+ time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 longint NULL,
+ LONG_PROP_2 longint NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 varchar(5) NULL,
+ BOOL_PROP_2 varchar(5) NULL,
+ PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+create table qrtz_blob_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ blob_data long varbinary ,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+ sched_name varchar(120) not null,
+ calendar_name varchar(200) not null,
+ calendar long varbinary not null,
+primary key (sched_name,calendar_name)
+);
+
+create table qrtz_paused_trigger_grps
+ (
+ sched_name varchar(120) not null,
+ trigger_group varchar(200) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_fired_triggers(
+ sched_name varchar(120) not null,
+ entry_id varchar(95) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ instance_name varchar(200) not null,
+ fired_time longint not null,
+ sched_time longint not null,
+ priority integer not null,
+ state varchar(16) not null,
+ job_name varchar(200) null,
+ job_group varchar(200) null,
+ is_nonconcurrent varchar(5) null,
+ requests_recovery varchar(5) null,
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_scheduler_state
+ (
+ sched_name varchar(120) not null,
+ instance_name varchar(200) not null,
+ last_checkin_time longint not null,
+ checkin_interval longint not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks
+ (
+ sched_name varchar(120) not null,
+ lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cubrid.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cubrid.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_cubrid.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,188 @@
+
+-- Thanks to Timothy Anyona for this script
+-- CUBRID 8.4.1+
+
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CUBRIDDelegate
+
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+
+CREATE TABLE QRTZ_JOB_DETAILS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+ IS_DURABLE BIT(1) NOT NULL,
+ IS_NONCONCURRENT BIT(1) NOT NULL,
+ IS_UPDATE_DATA BIT(1) NOT NULL,
+ REQUESTS_RECOVERY BIT(1) NOT NULL,
+ JOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ NEXT_FIRE_TIME BIGINT NULL,
+ PREV_FIRE_TIME BIGINT NULL,
+ PRIORITY INTEGER NULL,
+ TRIGGER_STATE VARCHAR(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR(8) NOT NULL,
+ START_TIME BIGINT NOT NULL,
+ END_TIME BIGINT NULL,
+ CALENDAR_NAME VARCHAR(200) NULL,
+ MISFIRE_INSTR SMALLINT NULL,
+ JOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ REPEAT_COUNT BIGINT NOT NULL,
+ REPEAT_INTERVAL BIGINT NOT NULL,
+ TIMES_TRIGGERED BIGINT NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ CRON_EXPRESSION VARCHAR(200) NOT NULL,
+ TIME_ZONE_ID VARCHAR(80),
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 BIT(1) NULL,
+ BOOL_PROP_2 BIT(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ BLOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CALENDARS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR(200) NOT NULL,
+ CALENDAR BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR(95) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ FIRED_TIME BIGINT NOT NULL,
+ SCHED_TIME BIGINT NOT NULL,
+ PRIORITY INTEGER NOT NULL,
+ STATE VARCHAR(16) NOT NULL,
+ JOB_NAME VARCHAR(200) NULL,
+ JOB_GROUP VARCHAR(200) NULL,
+ IS_NONCONCURRENT BIT(1) NULL,
+ REQUESTS_RECOVERY BIT(1) NULL,
+ PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ LAST_CHECKIN_TIME BIGINT NOT NULL,
+ CHECKIN_INTERVAL BIGINT NOT NULL,
+ PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE QRTZ_LOCKS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
+
+
+CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,148 @@
+#
+# Thanks to Horia Muntean for submitting this....
+#
+# .. known to work with DB2 7.1 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver"
+# .. likely to work with others...
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#
+# If you're using DB2 6.x you'll want to set this property to
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate
+#
+# Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in
+# that blob - i.e. limits the amount of data you can put into your JobDataMap
+#
+
+
+create table qrtz_job_details (
+ sched_name varchar(120) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120) null,
+ job_class_name varchar(128) not null,
+ is_durable varchar(1) not null,
+ is_nonconcurrent varchar(1) not null,
+ is_update_data varchar(1) not null,
+ requests_recovery varchar(1) not null,
+ job_data blob(2000),
+ primary key (sched_name,job_name,job_group)
+)
+
+create table qrtz_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120) null,
+ next_fire_time bigint,
+ prev_fire_time bigint,
+ priority integer,
+ trigger_state varchar(16) not null,
+ trigger_type varchar(8) not null,
+ start_time bigint not null,
+ end_time bigint,
+ calendar_name varchar(80),
+ misfire_instr smallint,
+ job_data blob(2000),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+)
+
+create table qrtz_simple_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ repeat_count bigint not null,
+ repeat_interval bigint not null,
+ times_triggered bigint not null,
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+)
+
+create table qrtz_cron_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ cron_expression varchar(120) not null,
+ time_zone_id varchar(80),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+)
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+)
+
+create table qrtz_blob_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ blob_data blob(2000) null,
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+)
+
+create table qrtz_calendars(
+ sched_name varchar(120) not null,
+ calendar_name varchar(80) not null,
+ calendar blob(2000) not null,
+ primary key (sched_name,calendar_name)
+)
+
+create table qrtz_fired_triggers(
+ sched_name varchar(120) not null,
+ entry_id varchar(95) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ instance_name varchar(80) not null,
+ fired_time bigint not null,
+ sched_time bigint not null,
+ priority integer not null,
+ state varchar(16) not null,
+ job_name varchar(80) null,
+ job_group varchar(80) null,
+ is_nonconcurrent varchar(1) null,
+ requests_recovery varchar(1) null,
+ primary key (sched_name,entry_id)
+);
+
+
+create table qrtz_paused_trigger_grps(
+ sched_name varchar(120) not null,
+ trigger_group varchar(80) not null,
+ primary key (sched_name,trigger_group)
+);
+
+create table qrtz_scheduler_state (
+ sched_name varchar(120) not null,
+ instance_name varchar(80) not null,
+ last_checkin_time bigint not null,
+ checkin_interval bigint not null,
+ primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks
+ (
+ sched_name varchar(120) not null,
+ lock_name varchar(40) not null,
+ primary key (sched_name,lock_name)
+);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v72.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v72.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v72.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,163 @@
+--
+-- Thanks to Horia Muntean for submitting this, Mikkel Heisterberg for updating it
+--
+-- .. known to work with DB2 7.2 and the JDBC driver "COM.ibm.db2.jdbc.net.DB2Driver"
+-- .. likely to work with others...
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v7Delegate
+--
+-- or
+--
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+--
+-- If you're using DB2 6.x you'll want to set this property to
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.DB2v6Delegate
+--
+-- Note that the blob column size (e.g. blob(2000)) dictates the amount of data that can be stored in
+-- that blob - i.e. limits the amount of data you can put into your JobDataMap
+--
+
+DROP TABLE QRTZ_FIRED_TRIGGERS;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+DROP TABLE QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE QRTZ_CRON_TRIGGERS;
+DROP TABLE QRTZ_TRIGGERS;
+DROP TABLE QRTZ_JOB_DETAILS;
+DROP TABLE QRTZ_CALENDARS;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+
+create table qrtz_job_details (
+ sched_name varchar(120) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120),
+ job_class_name varchar(128) not null,
+ is_durable varchar(1) not null,
+ is_nonconcurrent varchar(1) not null,
+ is_update_data varchar(1) not null,
+ requests_recovery varchar(1) not null,
+ job_data blob(2000),
+ primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120),
+ next_fire_time bigint,
+ prev_fire_time bigint,
+ priority integer,
+ trigger_state varchar(16) not null,
+ trigger_type varchar(8) not null,
+ start_time bigint not null,
+ end_time bigint,
+ calendar_name varchar(80),
+ misfire_instr smallint,
+ job_data blob(2000),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ repeat_count bigint not null,
+ repeat_interval bigint not null,
+ times_triggered bigint not null,
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ cron_expression varchar(120) not null,
+ time_zone_id varchar(80),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+create table qrtz_blob_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ blob_data blob(2000),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+ sched_name varchar(120) not null,
+ calendar_name varchar(80) not null,
+ calendar blob(2000) not null,
+ primary key (sched_name,calendar_name)
+);
+
+create table qrtz_fired_triggers(
+ sched_name varchar(120) not null,
+ entry_id varchar(95) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ instance_name varchar(80) not null,
+ fired_time bigint not null,
+ sched_time bigint not null,
+ priority integer not null,
+ state varchar(16) not null,
+ job_name varchar(80),
+ job_group varchar(80),
+ is_nonconcurrent varchar(1),
+ requests_recovery varchar(1),
+ primary key (sched_name,entry_id)
+);
+
+
+create table qrtz_paused_trigger_grps(
+ sched_name varchar(120) not null,
+ trigger_group varchar(80) not null,
+ primary key (sched_name,trigger_group)
+);
+
+create table qrtz_scheduler_state (
+ sched_name varchar(120) not null,
+ instance_name varchar(80) not null,
+ last_checkin_time bigint not null,
+ checkin_interval bigint not null,
+ primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks
+ (
+ sched_name varchar(120) not null,
+ lock_name varchar(40) not null,
+ primary key (sched_name,lock_name)
+);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v8.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v8.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v8.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,151 @@
+#
+# Updated by Claudiu Crisan (claudiu.crisan@schartner.net)
+# SQL scripts for DB2 ver 8.1
+#
+# Changes:
+# - "varchar(1)" replaced with "integer"
+# - "field_name varchar(xxx) not null" replaced with "field_name varchar(xxx)"
+#
+
+
+DROP TABLE QRTZ_FIRED_TRIGGERS;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+DROP TABLE QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE QRTZ_CRON_TRIGGERS;
+DROP TABLE QRTZ_TRIGGERS;
+DROP TABLE QRTZ_JOB_DETAILS;
+DROP TABLE QRTZ_CALENDARS;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+
+create table qrtz_job_details(
+sched_name varchar(120) not null,
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+description varchar(120),
+job_class_name varchar(128) not null,
+is_durable integer not null,
+is_nonconcurrent integer not null,
+is_update_data integer not null,
+requests_recovery integer not null,
+job_data blob(2000),
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+description varchar(120),
+next_fire_time bigint,
+prev_fire_time bigint,
+priority integer,
+trigger_state varchar(16) not null,
+trigger_type varchar(8) not null,
+start_time bigint not null,
+end_time bigint,
+calendar_name varchar(80),
+misfire_instr smallint,
+job_data blob(2000),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+repeat_count bigint not null,
+repeat_interval bigint not null,
+times_triggered bigint not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+cron_expression varchar(120) not null,
+time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+create table qrtz_blob_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+blob_data blob(2000),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+sched_name varchar(120) not null,
+calendar_name varchar(80) not null,
+calendar blob(2000) not null,
+primary key (calendar_name)
+);
+
+create table qrtz_fired_triggers(
+sched_name varchar(120) not null,
+entry_id varchar(95) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+instance_name varchar(80) not null,
+fired_time bigint not null,
+sched_time bigint not null,
+priority integer not null,
+state varchar(16) not null,
+job_name varchar(80),
+job_group varchar(80),
+is_nonconcurrent integer,
+requests_recovery integer,
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_paused_trigger_grps(
+sched_name varchar(120) not null,
+trigger_group varchar(80) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_scheduler_state(
+sched_name varchar(120) not null,
+instance_name varchar(80) not null,
+last_checkin_time bigint not null,
+checkin_interval bigint not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks(
+sched_name varchar(120) not null,
+lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v95.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v95.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_db2_v95.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,141 @@
+DROP TABLE QRTZ_FIRED_TRIGGERS;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+DROP TABLE QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE QRTZ_CRON_TRIGGERS;
+DROP TABLE QRTZ_TRIGGERS;
+DROP TABLE QRTZ_JOB_DETAILS;
+DROP TABLE QRTZ_CALENDARS;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+
+create table qrtz_job_details(
+sched_name varchar(120) not null,
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+description varchar(120),
+job_class_name varchar(128) not null,
+is_durable integer not null,
+is_nonconcurrent integer not null,
+is_update_data integer not null,
+requests_recovery integer not null,
+job_data blob(2000),
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+job_name varchar(80) not null,
+job_group varchar(80) not null,
+description varchar(120),
+next_fire_time bigint,
+prev_fire_time bigint,
+priority integer,
+trigger_state varchar(16) not null,
+trigger_type varchar(8) not null,
+start_time bigint not null,
+end_time bigint,
+calendar_name varchar(80),
+misfire_instr smallint,
+job_data blob(2000),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+repeat_count bigint not null,
+repeat_interval bigint not null,
+times_triggered bigint not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+cron_expression varchar(120) not null,
+time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512),
+ STR_PROP_2 VARCHAR(512),
+ STR_PROP_3 VARCHAR(512),
+ INT_PROP_1 INT,
+ INT_PROP_2 INT,
+ LONG_PROP_1 BIGINT,
+ LONG_PROP_2 BIGINT,
+ DEC_PROP_1 NUMERIC(13,4),
+ DEC_PROP_2 NUMERIC(13,4),
+ BOOL_PROP_1 VARCHAR(1),
+ BOOL_PROP_2 VARCHAR(1),
+ PRIMARY KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(sched_name,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+create table qrtz_blob_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+blob_data blob(2000),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+sched_name varchar(120) not null,
+calendar_name varchar(80) not null,
+calendar blob(2000) not null,
+primary key (calendar_name)
+);
+
+create table qrtz_fired_triggers(
+sched_name varchar(120) not null,
+entry_id varchar(95) not null,
+trigger_name varchar(80) not null,
+trigger_group varchar(80) not null,
+instance_name varchar(80) not null,
+fired_time bigint not null,
+sched_time bigint not null,
+priority integer not null,
+state varchar(16) not null,
+job_name varchar(80),
+job_group varchar(80),
+is_nonconcurrent integer,
+requests_recovery integer,
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_paused_trigger_grps(
+sched_name varchar(120) not null,
+trigger_group varchar(80) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_scheduler_state(
+sched_name varchar(120) not null,
+instance_name varchar(80) not null,
+last_checkin_time bigint not null,
+checkin_interval bigint not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks(
+sched_name varchar(120) not null,
+lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,174 @@
+--
+-- Apache Derby scripts by Steve Stewart, updated by Ronald Pomeroy
+-- Based on Srinivas Venkatarangaiah's file for Cloudscape
+--
+-- Known to work with Apache Derby 10.0.2.1, or 10.6.2.1
+--
+-- Updated by Zemian Deng on 08/21/2011
+-- * Fixed nullable fields on qrtz_simprop_triggers table.
+-- * Added Derby QuickStart comments and drop tables statements.
+--
+-- DerbyDB + Quartz Quick Guide:
+-- * Derby comes with Oracle JDK! For Java6, it default install into C:/Program Files/Sun/JavaDB on Windows.
+-- 1. Create a derby.properties file under JavaDB directory, and have the following:
+-- derby.connection.requireAuthentication = true
+-- derby.authentication.provider = BUILTIN
+-- derby.user.quartz2=quartz2123
+-- 2. Start the DB server by running bin/startNetworkServer script.
+-- 3. On a new terminal, run bin/ij tool to bring up an SQL prompt, then run:
+-- connect 'jdbc:derby://localhost:1527/quartz2;user=quartz2;password=quartz2123;create=true';
+-- run 'quartz/docs/dbTables/tables_derby.sql';
+-- Now in quartz.properties, you may use these properties:
+-- org.quartz.dataSource.quartzDataSource.driver = org.apache.derby.jdbc.ClientDriver
+-- org.quartz.dataSource.quartzDataSource.URL = jdbc:derby://localhost:1527/quartz2
+-- org.quartz.dataSource.quartzDataSource.user = quartz2
+-- org.quartz.dataSource.quartzDataSource.password = quartz2123
+--
+
+-- Auto drop and reset tables
+-- Derby doesn't support if exists condition on table drop, so user must manually do this step if needed to.
+-- drop table qrtz_fired_triggers;
+-- drop table qrtz_paused_trigger_grps;
+-- drop table qrtz_scheduler_state;
+-- drop table qrtz_locks;
+-- drop table qrtz_simple_triggers;
+-- drop table qrtz_simprop_triggers;
+-- drop table qrtz_cron_triggers;
+-- drop table qrtz_blob_triggers;
+-- drop table qrtz_triggers;
+-- drop table qrtz_job_details;
+-- drop table qrtz_calendars;
+
+create table qrtz_job_details (
+sched_name varchar(120) not null,
+job_name varchar(200) not null,
+job_group varchar(200) not null,
+description varchar(250) ,
+job_class_name varchar(250) not null,
+is_durable varchar(5) not null,
+is_nonconcurrent varchar(5) not null,
+is_update_data varchar(5) not null,
+requests_recovery varchar(5) not null,
+job_data blob,
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+job_name varchar(200) not null,
+job_group varchar(200) not null,
+description varchar(250),
+next_fire_time bigint,
+prev_fire_time bigint,
+priority integer,
+trigger_state varchar(16) not null,
+trigger_type varchar(8) not null,
+start_time bigint not null,
+end_time bigint,
+calendar_name varchar(200),
+misfire_instr smallint,
+job_data blob,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+repeat_count bigint not null,
+repeat_interval bigint not null,
+times_triggered bigint not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+cron_expression varchar(120) not null,
+time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ str_prop_1 varchar(512),
+ str_prop_2 varchar(512),
+ str_prop_3 varchar(512),
+ int_prop_1 int,
+ int_prop_2 int,
+ long_prop_1 bigint,
+ long_prop_2 bigint,
+ dec_prop_1 numeric(13,4),
+ dec_prop_2 numeric(13,4),
+ bool_prop_1 varchar(5),
+ bool_prop_2 varchar(5),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group)
+ references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_blob_triggers(
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+blob_data blob,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+sched_name varchar(120) not null,
+calendar_name varchar(200) not null,
+calendar blob not null,
+primary key (sched_name,calendar_name)
+);
+
+create table qrtz_paused_trigger_grps
+ (
+ sched_name varchar(120) not null,
+ trigger_group varchar(200) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_fired_triggers(
+sched_name varchar(120) not null,
+entry_id varchar(95) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+instance_name varchar(200) not null,
+fired_time bigint not null,
+sched_time bigint not null,
+priority integer not null,
+state varchar(16) not null,
+job_name varchar(200),
+job_group varchar(200),
+is_nonconcurrent varchar(5),
+requests_recovery varchar(5),
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_scheduler_state
+ (
+ sched_name varchar(120) not null,
+ instance_name varchar(200) not null,
+ last_checkin_time bigint not null,
+ checkin_interval bigint not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks
+ (
+ sched_name varchar(120) not null,
+ lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby_previous.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby_previous.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_derby_previous.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,141 @@
+--
+-- Apache Derby scripts by Steve Stewart.
+-- Based on Srinivas Venkatarangaiah's file for Cloudscape
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.CloudscapeDelegate
+--
+-- Known to work with Apache Derby 10.0.2.1
+--
+
+create table qrtz_job_details (
+sched_name varchar(120) not null,
+job_name varchar(200) not null,
+job_group varchar(200) not null,
+description varchar(250) ,
+job_class_name varchar(250) not null,
+is_durable varchar(5) not null,
+is_nonconcurrent varchar(5) not null,
+is_update_data varchar(5) not null,
+requests_recovery varchar(5) not null,
+job_data blob,
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers (
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+job_name varchar(200) not null,
+job_group varchar(200) not null,
+description varchar(250) ,
+next_fire_time bigint,
+prev_fire_time bigint,
+priority integer,
+trigger_state varchar(16) not null,
+trigger_type varchar(8) not null,
+start_time bigint not null,
+end_time bigint,
+calendar_name varchar(200),
+misfire_instr smallint,
+job_data blob,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers (
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+repeat_count bigint not null,
+repeat_interval bigint not null,
+times_triggered bigint not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_cron_triggers (
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+cron_expression varchar(120) not null,
+time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_simprop_triggers
+(
+ sched_name varchar(120) not null,
+ trigger_name varchar(200) not null,
+ trigger_group varchar(200) not null,
+ str_prop_1 varchar(512),
+ str_prop_2 varchar(512),
+ str_prop_3 varchar(512),
+ int_prop_1 int,
+ int_prop_2 int,
+ long_prop_1 bigint,
+ long_prop_2 bigint,
+ dec_prop_1 numeric(13,4),
+ dec_prop_2 numeric(13,4),
+ bool_prop_1 varchar(5),
+ bool_prop_2 varchar(5),
+ primary key (sched_name,trigger_name,trigger_group),
+ foreign key (sched_name,trigger_name,trigger_group)
+ references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_blob_triggers (
+sched_name varchar(120) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+blob_data blob ,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars (
+sched_name varchar(120) not null,
+calendar_name varchar(200) not null,
+calendar blob not null,
+primary key (sched_name,calendar_name)
+);
+
+create table qrtz_paused_trigger_grps (
+sched_name varchar(120) not null,
+trigger_group varchar(200) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_fired_triggers (
+sched_name varchar(120) not null,
+entry_id varchar(95) not null,
+trigger_name varchar(200) not null,
+trigger_group varchar(200) not null,
+instance_name varchar(200) not null,
+fired_time bigint not null,
+sched_time bigint not null,
+priority integer not null,
+state varchar(16) not null,
+job_name varchar(200),
+job_group varchar(200),
+is_nonconcurrent varchar(5),
+requests_recovery varchar(5),
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_scheduler_state (
+sched_name varchar(120) not null,
+instance_name varchar(200) not null,
+last_checkin_time bigint not null,
+checkin_interval bigint not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks (
+sched_name varchar(120) not null,
+lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_firebird.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_firebird.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_firebird.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,154 @@
+
+--
+-- Thanks to Leonardo Alves
+--
+
+
+DROP TABLE QRTZ_FIRED_TRIGGERS;
+DROP TABLE QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE QRTZ_SCHEDULER_STATE;
+DROP TABLE QRTZ_LOCKS;
+DROP TABLE QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE QRTZ_CRON_TRIGGERS;
+DROP TABLE QRTZ_BLOB_TRIGGERS;
+DROP TABLE QRTZ_TRIGGERS;
+DROP TABLE QRTZ_JOB_DETAILS;
+DROP TABLE QRTZ_CALENDARS;
+
+
+CREATE TABLE QRTZ_JOB_DETAILS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR(60) NOT NULL,
+ JOB_GROUP VARCHAR(60) NOT NULL,
+ DESCRIPTION VARCHAR(120),
+ JOB_CLASS_NAME VARCHAR(128) NOT NULL,
+ IS_DURABLE VARCHAR(1) NOT NULL,
+ IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+ IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+ REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+ JOB_DATA BLOB,
+ CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(60) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ JOB_NAME VARCHAR(60) NOT NULL,
+ JOB_GROUP VARCHAR(60) NOT NULL,
+ DESCRIPTION VARCHAR(120),
+ NEXT_FIRE_TIME BIGINT,
+ PREV_FIRE_TIME BIGINT,
+ PRIORITY INTEGER,
+ TRIGGER_STATE VARCHAR(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR(8) NOT NULL,
+ START_TIME BIGINT NOT NULL,
+ END_TIME BIGINT,
+ CALENDAR_NAME VARCHAR(60),
+ MISFIRE_INSTR SMALLINT,
+ JOB_DATA BLOB,
+ CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT FK_QRTZ_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(60) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ REPEAT_COUNT BIGINT NOT NULL,
+ REPEAT_INTERVAL BIGINT NOT NULL,
+ TIMES_TRIGGERED BIGINT NOT NULL,
+ CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(60) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ CRON_EXPRESSION VARCHAR(120) NOT NULL,
+ TIME_ZONE_ID VARCHAR(60),
+ CONSTRAINT PK_QRTZ_SIMPLE_TRG PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT FK_QRTZ_SIMPLE_TRG_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(60) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ BLOB_DATA BLOB,
+ CONSTRAINT PK_QRTZ_BLOB_TRIGGERS PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT FK_QRTZ_BLOB_TRIGGERS_1 FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CALENDARS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR(60) NOT NULL,
+ CALENDAR BLOB NOT NULL,
+ CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR(95) NOT NULL,
+ TRIGGER_NAME VARCHAR(60) NOT NULL,
+ TRIGGER_GROUP VARCHAR(60) NOT NULL,
+ INSTANCE_NAME VARCHAR(80) NOT NULL,
+ FIRED_TIME BIGINT NOT NULL,
+ SCHED_TIME BIGINT NOT NULL,
+ PRIORITY INTEGER NOT NULL,
+ STATE VARCHAR(16) NOT NULL,
+ JOB_NAME VARCHAR(60),
+ JOB_GROUP VARCHAR(60),
+ IS_NONCONCURRENT VARCHAR(1),
+ REQUESTS_RECOVERY VARCHAR(1),
+ CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR(80) NOT NULL,
+ LAST_CHECKIN_TIME BIGINT NOT NULL,
+ CHECKIN_INTERVAL BIGINT NOT NULL,
+ CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE QRTZ_LOCKS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR(40) NOT NULL,
+ CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+COMMIT;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_h2.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_h2.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_h2.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,248 @@
+-- Thanks to Amir Kibbar and Peter Rietzler for contributing the schema for H2 database,
+-- and verifying that it works with Quartz's StdJDBCDelegate
+--
+-- Note, Quartz depends on row-level locking which means you must use the MVCC=TRUE
+-- setting on your H2 database, or you will experience dead-locks
+--
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+
+CREATE TABLE QRTZ_CALENDARS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR (200) NOT NULL ,
+ CALENDAR IMAGE NOT NULL
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR (200) NOT NULL ,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL ,
+ CRON_EXPRESSION VARCHAR (120) NOT NULL ,
+ TIME_ZONE_ID VARCHAR (80)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR (95) NOT NULL ,
+ TRIGGER_NAME VARCHAR (200) NOT NULL ,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL ,
+ INSTANCE_NAME VARCHAR (200) NOT NULL ,
+ FIRED_TIME BIGINT NOT NULL ,
+ SCHED_TIME BIGINT NOT NULL ,
+ PRIORITY INTEGER NOT NULL ,
+ STATE VARCHAR (16) NOT NULL,
+ JOB_NAME VARCHAR (200) NULL ,
+ JOB_GROUP VARCHAR (200) NULL ,
+ IS_NONCONCURRENT BOOLEAN NULL ,
+ REQUESTS_RECOVERY BOOLEAN NULL
+);
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR (200) NOT NULL ,
+ LAST_CHECKIN_TIME BIGINT NOT NULL ,
+ CHECKIN_INTERVAL BIGINT NOT NULL
+);
+
+CREATE TABLE QRTZ_LOCKS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR (40) NOT NULL
+);
+
+CREATE TABLE QRTZ_JOB_DETAILS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR (200) NOT NULL ,
+ JOB_GROUP VARCHAR (200) NOT NULL ,
+ DESCRIPTION VARCHAR (250) NULL ,
+ JOB_CLASS_NAME VARCHAR (250) NOT NULL ,
+ IS_DURABLE BOOLEAN NOT NULL ,
+ IS_NONCONCURRENT BOOLEAN NOT NULL ,
+ IS_UPDATE_DATA BOOLEAN NOT NULL ,
+ REQUESTS_RECOVERY BOOLEAN NOT NULL ,
+ JOB_DATA IMAGE NULL
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR (200) NOT NULL ,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL ,
+ REPEAT_COUNT BIGINT NOT NULL ,
+ REPEAT_INTERVAL BIGINT NOT NULL ,
+ TIMES_TRIGGERED BIGINT NOT NULL
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INTEGER NULL,
+ INT_PROP_2 INTEGER NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 BOOLEAN NULL,
+ BOOL_PROP_2 BOOLEAN NULL
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR (200) NOT NULL ,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL ,
+ BLOB_DATA IMAGE NULL
+);
+
+CREATE TABLE QRTZ_TRIGGERS (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR (200) NOT NULL ,
+ TRIGGER_GROUP VARCHAR (200) NOT NULL ,
+ JOB_NAME VARCHAR (200) NOT NULL ,
+ JOB_GROUP VARCHAR (200) NOT NULL ,
+ DESCRIPTION VARCHAR (250) NULL ,
+ NEXT_FIRE_TIME BIGINT NULL ,
+ PREV_FIRE_TIME BIGINT NULL ,
+ PRIORITY INTEGER NULL ,
+ TRIGGER_STATE VARCHAR (16) NOT NULL ,
+ TRIGGER_TYPE VARCHAR (8) NOT NULL ,
+ START_TIME BIGINT NOT NULL ,
+ END_TIME BIGINT NULL ,
+ CALENDAR_NAME VARCHAR (200) NULL ,
+ MISFIRE_INSTR SMALLINT NULL ,
+ JOB_DATA IMAGE NULL
+);
+
+ALTER TABLE QRTZ_CALENDARS ADD
+ CONSTRAINT PK_QRTZ_CALENDARS PRIMARY KEY
+ (
+ SCHED_NAME,
+ CALENDAR_NAME
+ );
+
+ALTER TABLE QRTZ_CRON_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_CRON_TRIGGERS PRIMARY KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ );
+
+ALTER TABLE QRTZ_FIRED_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_FIRED_TRIGGERS PRIMARY KEY
+ (
+ SCHED_NAME,
+ ENTRY_ID
+ );
+
+ALTER TABLE QRTZ_PAUSED_TRIGGER_GRPS ADD
+ CONSTRAINT PK_QRTZ_PAUSED_TRIGGER_GRPS PRIMARY KEY
+ (
+ SCHED_NAME,
+ TRIGGER_GROUP
+ );
+
+ALTER TABLE QRTZ_SCHEDULER_STATE ADD
+ CONSTRAINT PK_QRTZ_SCHEDULER_STATE PRIMARY KEY
+ (
+ SCHED_NAME,
+ INSTANCE_NAME
+ );
+
+ALTER TABLE QRTZ_LOCKS ADD
+ CONSTRAINT PK_QRTZ_LOCKS PRIMARY KEY
+ (
+ SCHED_NAME,
+ LOCK_NAME
+ );
+
+ALTER TABLE QRTZ_JOB_DETAILS ADD
+ CONSTRAINT PK_QRTZ_JOB_DETAILS PRIMARY KEY
+ (
+ SCHED_NAME,
+ JOB_NAME,
+ JOB_GROUP
+ );
+
+ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_SIMPLE_TRIGGERS PRIMARY KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ );
+
+ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_SIMPROP_TRIGGERS PRIMARY KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ );
+
+ALTER TABLE QRTZ_TRIGGERS ADD
+ CONSTRAINT PK_QRTZ_TRIGGERS PRIMARY KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ );
+
+ALTER TABLE QRTZ_CRON_TRIGGERS ADD
+ CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) ON DELETE CASCADE;
+
+
+ALTER TABLE QRTZ_SIMPLE_TRIGGERS ADD
+ CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) ON DELETE CASCADE;
+
+ALTER TABLE QRTZ_SIMPROP_TRIGGERS ADD
+ CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS FOREIGN KEY
+ (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) REFERENCES QRTZ_TRIGGERS (
+ SCHED_NAME,
+ TRIGGER_NAME,
+ TRIGGER_GROUP
+ ) ON DELETE CASCADE;
+
+
+ALTER TABLE QRTZ_TRIGGERS ADD
+ CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS FOREIGN KEY
+ (
+ SCHED_NAME,
+ JOB_NAME,
+ JOB_GROUP
+ ) REFERENCES QRTZ_JOB_DETAILS (
+ SCHED_NAME,
+ JOB_NAME,
+ JOB_GROUP
+ );
+
+COMMIT;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,161 @@
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+--
+
+DROP TABLE qrtz_locks IF EXISTS;
+DROP TABLE qrtz_scheduler_state IF EXISTS;
+DROP TABLE qrtz_fired_triggers IF EXISTS;
+DROP TABLE qrtz_paused_trigger_grps IF EXISTS;
+DROP TABLE qrtz_calendars IF EXISTS;
+DROP TABLE qrtz_blob_triggers IF EXISTS;
+DROP TABLE qrtz_cron_triggers IF EXISTS;
+DROP TABLE qrtz_simple_triggers IF EXISTS;
+DROP TABLE qrtz_simprop_triggers IF EXISTS;
+DROP TABLE qrtz_triggers IF EXISTS;
+DROP TABLE qrtz_job_details IF EXISTS;
+
+CREATE TABLE qrtz_job_details
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+IS_DURABLE BOOLEAN NOT NULL,
+IS_NONCONCURRENT BOOLEAN NOT NULL,
+IS_UPDATE_DATA BOOLEAN NOT NULL,
+REQUESTS_RECOVERY BOOLEAN NOT NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+JOB_NAME VARCHAR(200) NOT NULL,
+JOB_GROUP VARCHAR(200) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+NEXT_FIRE_TIME NUMERIC(13) NULL,
+PREV_FIRE_TIME NUMERIC(13) NULL,
+PRIORITY INTEGER NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME NUMERIC(13) NOT NULL,
+END_TIME NUMERIC(13) NULL,
+CALENDAR_NAME VARCHAR(200) NULL,
+MISFIRE_INSTR NUMERIC(2) NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_simple_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+REPEAT_COUNT NUMERIC(7) NOT NULL,
+REPEAT_INTERVAL NUMERIC(12) NOT NULL,
+TIMES_TRIGGERED NUMERIC(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_cron_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+CRON_EXPRESSION VARCHAR(120) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 NUMERIC(9) NULL,
+ INT_PROP_2 NUMERIC(9) NULL,
+ LONG_PROP_1 NUMERIC(13) NULL,
+ LONG_PROP_2 NUMERIC(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 BOOLEAN NULL,
+ BOOL_PROP_2 BOOLEAN NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_blob_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+BLOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_calendars
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME VARCHAR(200) NOT NULL,
+CALENDAR BLOB NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE qrtz_paused_trigger_grps
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_fired_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(200) NOT NULL,
+TRIGGER_GROUP VARCHAR(200) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+FIRED_TIME NUMERIC(13) NOT NULL,
+SCHED_TIME NUMERIC(13) NOT NULL,
+PRIORITY INTEGER NOT NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(200) NULL,
+JOB_GROUP VARCHAR(200) NULL,
+IS_NONCONCURRENT BOOLEAN NULL,
+REQUESTS_RECOVERY BOOLEAN NULL,
+PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE qrtz_scheduler_state
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME VARCHAR(200) NOT NULL,
+LAST_CHECKIN_TIME NUMERIC(13) NOT NULL,
+CHECKIN_INTERVAL NUMERIC(13) NOT NULL,
+PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE qrtz_locks
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb_old.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb_old.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_hsqldb_old.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,156 @@
+#
+# Thanks to Joseph Wilkicki for submitting this file's contents
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.HSQLDBDelegate
+#
+# Some users report the need to change the fields
+# with datatype "OTHER" to datatype "BINARY" with
+# particular versions (e.g. 1.7.1) of HSQLDB
+#
+
+CREATE TABLE qrtz_job_details
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME LONGVARCHAR(80) NOT NULL,
+JOB_GROUP LONGVARCHAR(80) NOT NULL,
+DESCRIPTION LONGVARCHAR(120) NULL,
+JOB_CLASS_NAME LONGVARCHAR(128) NOT NULL,
+IS_DURABLE LONGVARCHAR(1) NOT NULL,
+IS_NONCONCURRENT LONGVARCHAR(1) NOT NULL,
+IS_UPDATE_DATA LONGVARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY LONGVARCHAR(1) NOT NULL,
+JOB_DATA OTHER NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+JOB_NAME LONGVARCHAR(80) NOT NULL,
+JOB_GROUP LONGVARCHAR(80) NOT NULL,
+DESCRIPTION LONGVARCHAR(120) NULL,
+NEXT_FIRE_TIME NUMERIC(13) NULL,
+PREV_FIRE_TIME NUMERIC(13) NULL,
+PRIORITY INTEGER NULL,
+TRIGGER_STATE LONGVARCHAR(16) NOT NULL,
+TRIGGER_TYPE LONGVARCHAR(8) NOT NULL,
+START_TIME NUMERIC(13) NOT NULL,
+END_TIME NUMERIC(13) NULL,
+CALENDAR_NAME LONGVARCHAR(80) NULL,
+MISFIRE_INSTR NUMERIC(2) NULL,
+JOB_DATA OTHER NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_simple_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+REPEAT_COUNT NUMERIC(7) NOT NULL,
+REPEAT_INTERVAL NUMERIC(12) NOT NULL,
+TIMES_TRIGGERED NUMERIC(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_cron_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+CRON_EXPRESSION LONGVARCHAR(120) NOT NULL,
+TIME_ZONE_ID LONGVARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME LONGVARCHAR(200) NOT NULL,
+ TRIGGER_GROUP LONGVARCHAR(200) NOT NULL,
+ STR_PROP_1 LONGVARCHAR(512) NULL,
+ STR_PROP_2 LONGVARCHAR(512) NULL,
+ STR_PROP_3 LONGVARCHAR(512) NULL,
+ INT_PROP_1 NUMERIC(9) NULL,
+ INT_PROP_2 NUMERIC(9) NULL,
+ LONG_PROP_1 NUMERIC(13) NULL,
+ LONG_PROP_2 NUMERIC(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 LONGVARCHAR(1) NULL,
+ BOOL_PROP_2 LONGVARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_blob_triggers
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+BLOB_DATA OTHER NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_calendars
+(
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME LONGVARCHAR(80) NOT NULL,
+CALENDAR OTHER NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE qrtz_paused_trigger_grps
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_fired_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID LONGVARCHAR(95) NOT NULL,
+ TRIGGER_NAME LONGVARCHAR(80) NOT NULL,
+ TRIGGER_GROUP LONGVARCHAR(80) NOT NULL,
+ INSTANCE_NAME LONGVARCHAR(80) NOT NULL,
+ FIRED_TIME NUMERIC(13) NOT NULL,
+ SCHED_TIME NUMERIC(13) NOT NULL,
+ PRIORITY INTEGER NOT NULL,
+ STATE LONGVARCHAR(16) NOT NULL,
+ JOB_NAME LONGVARCHAR(80) NULL,
+ JOB_GROUP LONGVARCHAR(80) NULL,
+ IS_NONCONCURRENT LONGVARCHAR(1) NULL,
+ REQUESTS_RECOVERY LONGVARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE qrtz_scheduler_state
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME LONGVARCHAR(80) NOT NULL,
+ LAST_CHECKIN_TIME NUMERIC(13) NOT NULL,
+ CHECKIN_INTERVAL NUMERIC(13) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE qrtz_locks
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME LONGVARCHAR(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_informix.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_informix.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_informix.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,186 @@
+{ }
+{ Thanks to Keith Chew for submitting this. }
+{ }
+{ use the StdJDBCDelegate with Informix. }
+{ }
+{ note that Informix has a 18 cahracter limit on the table name, so the prefix had to be shortened to "q" instread of "qrtz_" }
+
+CREATE TABLE qblob_triggers (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME varchar(80) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL,
+BLOB_DATA byte in table
+);
+
+ALTER TABLE qblob_triggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP);
+
+
+CREATE TABLE qcalendars (
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME varchar(80) NOT NULL,
+CALENDAR byte in table NOT NULL
+);
+
+ALTER TABLE qcalendars
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,CALENDAR_NAME);
+
+
+CREATE TABLE qcron_triggers (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME varchar(80) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL,
+CRON_EXPRESSION varchar(120) NOT NULL,
+TIME_ZONE_ID varchar(80)
+);
+
+ALTER TABLE qcron_triggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP);
+
+
+CREATE TABLE qfired_triggers (
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID varchar(95) NOT NULL,
+TRIGGER_NAME varchar(80) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL,
+INSTANCE_NAME varchar(80) NOT NULL,
+FIRED_TIME numeric(13) NOT NULL,
+SCHED_TIME numeric(13) NOT NULL,
+PRIORITY integer NOT NULL,
+STATE varchar(16) NOT NULL,
+JOB_NAME varchar(80),
+JOB_GROUP varchar(80),
+IS_NONCONCURRENT varchar(1),
+REQUESTS_RECOVERY varchar(1)
+);
+
+ALTER TABLE qfired_triggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,ENTRY_ID);
+
+
+CREATE TABLE qpaused_trigger_grps (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL
+);
+
+ALTER TABLE qpaused_trigger_grps
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP);
+
+
+CREATE TABLE qscheduler_state (
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME varchar(80) NOT NULL,
+LAST_CHECKIN_TIME numeric(13) NOT NULL,
+CHECKIN_INTERVAL numeric(13) NOT NULL
+);
+
+ALTER TABLE qscheduler_state
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,INSTANCE_NAME);
+
+
+CREATE TABLE qlocks (
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME varchar(40) NOT NULL
+);
+
+ALTER TABLE qlocks
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,LOCK_NAME);
+
+
+CREATE TABLE qjob_details (
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME varchar(80) NOT NULL,
+JOB_GROUP varchar(80) NOT NULL,
+DESCRIPTION varchar(120),
+JOB_CLASS_NAME varchar(128) NOT NULL,
+IS_DURABLE varchar(1) NOT NULL,
+IS_NONCONCURRENT varchar(1) NOT NULL,
+IS_UPDATE_DATA varchar(1) NOT NULL,
+REQUESTS_RECOVERY varchar(1) NOT NULL,
+JOB_DATA byte in table
+);
+
+ALTER TABLE qjob_details
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,JOB_NAME, JOB_GROUP);
+
+
+CREATE TABLE qsimple_triggers (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME varchar(80) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL,
+REPEAT_COUNT numeric(7) NOT NULL,
+REPEAT_INTERVAL numeric(12) NOT NULL,
+TIMES_TRIGGERED numeric(10) NOT NULL
+);
+
+ALTER TABLE qsimple_triggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP);
+
+
+CREATE TABLE qsimprop_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 NUMERIC(9) NULL,
+ INT_PROP_2 NUMERIC(9) NULL,
+ LONG_PROP_1 NUMERIC(13) NULL,
+ LONG_PROP_2 NUMERIC(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+);
+
+ALTER TABLE qsimprop_triggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP);
+
+
+CREATE TABLE qtriggers (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME varchar(80) NOT NULL,
+TRIGGER_GROUP varchar(80) NOT NULL,
+JOB_NAME varchar(80) NOT NULL,
+JOB_GROUP varchar(80) NOT NULL,
+DESCRIPTION varchar(120),
+NEXT_FIRE_TIME numeric(13),
+PREV_FIRE_TIME numeric(13),
+PRIORITY integer,
+TRIGGER_STATE varchar(16) NOT NULL,
+TRIGGER_TYPE varchar(8) NOT NULL,
+START_TIME numeric(13) NOT NULL,
+END_TIME numeric(13),
+CALENDAR_NAME varchar(80),
+MISFIRE_INSTR numeric(2),
+JOB_DATA byte in table
+);
+
+ALTER TABLE qtriggers
+ADD CONSTRAINT PRIMARY KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP);
+
+
+ALTER TABLE qblob_triggers
+ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+REFERENCES qtriggers;
+
+
+ALTER TABLE qcron_triggers
+ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+REFERENCES qtriggers;
+
+
+ALTER TABLE qsimple_triggers
+ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+REFERENCES qtriggers;
+
+ALTER TABLE qsimprop_triggers
+ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+REFERENCES qtriggers;
+
+ALTER TABLE qtriggers
+ADD CONSTRAINT FOREIGN KEY (SCHED_NAME,JOB_NAME, JOB_GROUP)
+REFERENCES qjob_details;
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,168 @@
+#
+# Quartz seems to work best with the driver mm.mysql-2.0.7-bin.jar
+#
+# PLEASE consider using mysql with innodb tables to avoid locking issues
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+
+CREATE TABLE QRTZ_JOB_DETAILS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+ IS_DURABLE VARCHAR(1) NOT NULL,
+ IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+ IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+ REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+ JOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ NEXT_FIRE_TIME BIGINT(13) NULL,
+ PREV_FIRE_TIME BIGINT(13) NULL,
+ PRIORITY INTEGER NULL,
+ TRIGGER_STATE VARCHAR(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR(8) NOT NULL,
+ START_TIME BIGINT(13) NOT NULL,
+ END_TIME BIGINT(13) NULL,
+ CALENDAR_NAME VARCHAR(200) NULL,
+ MISFIRE_INSTR SMALLINT(2) NULL,
+ JOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ REPEAT_COUNT BIGINT(7) NOT NULL,
+ REPEAT_INTERVAL BIGINT(12) NOT NULL,
+ TIMES_TRIGGERED BIGINT(10) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ CRON_EXPRESSION VARCHAR(200) NOT NULL,
+ TIME_ZONE_ID VARCHAR(80),
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ BLOB_DATA BLOB NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CALENDARS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR(200) NOT NULL,
+ CALENDAR BLOB NOT NULL,
+ PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR(95) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ FIRED_TIME BIGINT(13) NOT NULL,
+ SCHED_TIME BIGINT(13) NOT NULL,
+ PRIORITY INTEGER NOT NULL,
+ STATE VARCHAR(16) NOT NULL,
+ JOB_NAME VARCHAR(200) NULL,
+ JOB_GROUP VARCHAR(200) NULL,
+ IS_NONCONCURRENT VARCHAR(1) NULL,
+ REQUESTS_RECOVERY VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
+ CHECKIN_INTERVAL BIGINT(13) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE QRTZ_LOCKS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_mysql_innodb.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,179 @@
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#
+#
+# By: Ron Cordell - roncordell
+# 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.
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+CREATE TABLE QRTZ_JOB_DETAILS(
+SCHED_NAME VARCHAR(120) NOT NULL,
+JOB_NAME VARCHAR(190) NOT NULL,
+JOB_GROUP VARCHAR(190) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+IS_DURABLE VARCHAR(1) NOT NULL,
+IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(190) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+JOB_NAME VARCHAR(190) NOT NULL,
+JOB_GROUP VARCHAR(190) NOT NULL,
+DESCRIPTION VARCHAR(250) NULL,
+NEXT_FIRE_TIME BIGINT(13) NULL,
+PREV_FIRE_TIME BIGINT(13) NULL,
+PRIORITY INTEGER NULL,
+TRIGGER_STATE VARCHAR(16) NOT NULL,
+TRIGGER_TYPE VARCHAR(8) NOT NULL,
+START_TIME BIGINT(13) NOT NULL,
+END_TIME BIGINT(13) NULL,
+CALENDAR_NAME VARCHAR(190) NULL,
+MISFIRE_INSTR SMALLINT(2) NULL,
+JOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(190) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+REPEAT_COUNT BIGINT(7) NOT NULL,
+REPEAT_INTERVAL BIGINT(12) NOT NULL,
+TIMES_TRIGGERED BIGINT(10) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CRON_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(190) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+CRON_EXPRESSION VARCHAR(120) NOT NULL,
+TIME_ZONE_ID VARCHAR(80),
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(190) NOT NULL,
+ TRIGGER_GROUP VARCHAR(190) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_NAME VARCHAR(190) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+BLOB_DATA BLOB NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_CALENDARS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+CALENDAR_NAME VARCHAR(190) NOT NULL,
+CALENDAR BLOB NOT NULL,
+PRIMARY KEY (SCHED_NAME,CALENDAR_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+ENTRY_ID VARCHAR(95) NOT NULL,
+TRIGGER_NAME VARCHAR(190) NOT NULL,
+TRIGGER_GROUP VARCHAR(190) NOT NULL,
+INSTANCE_NAME VARCHAR(190) NOT NULL,
+FIRED_TIME BIGINT(13) NOT NULL,
+SCHED_TIME BIGINT(13) NOT NULL,
+PRIORITY INTEGER NOT NULL,
+STATE VARCHAR(16) NOT NULL,
+JOB_NAME VARCHAR(190) NULL,
+JOB_GROUP VARCHAR(190) NULL,
+IS_NONCONCURRENT VARCHAR(1) NULL,
+REQUESTS_RECOVERY VARCHAR(1) NULL,
+PRIMARY KEY (SCHED_NAME,ENTRY_ID))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_SCHEDULER_STATE (
+SCHED_NAME VARCHAR(120) NOT NULL,
+INSTANCE_NAME VARCHAR(190) NOT NULL,
+LAST_CHECKIN_TIME BIGINT(13) NOT NULL,
+CHECKIN_INTERVAL BIGINT(13) NOT NULL,
+PRIMARY KEY (SCHED_NAME,INSTANCE_NAME))
+ENGINE=InnoDB;
+
+CREATE TABLE QRTZ_LOCKS (
+SCHED_NAME VARCHAR(120) NOT NULL,
+LOCK_NAME VARCHAR(40) NOT NULL,
+PRIMARY KEY (SCHED_NAME,LOCK_NAME))
+ENGINE=InnoDB;
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP);
+
+CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP);
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_oracle.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_oracle.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_oracle.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,193 @@
+--
+-- A hint submitted by a user: Oracle DB MUST be created as "shared" and the
+-- job_queue_processes parameter must be greater than 2
+-- However, these settings are pretty much standard after any
+-- Oracle install, so most users need not worry about this.
+--
+-- Many other users (including the primary author of Quartz) have had success
+-- runing in dedicated mode, so only consider the above as a hint ;-)
+--
+
+delete from qrtz_fired_triggers;
+delete from qrtz_simple_triggers;
+delete from qrtz_simprop_triggers;
+delete from qrtz_cron_triggers;
+delete from qrtz_blob_triggers;
+delete from qrtz_triggers;
+delete from qrtz_job_details;
+delete from qrtz_calendars;
+delete from qrtz_paused_trigger_grps;
+delete from qrtz_locks;
+delete from qrtz_scheduler_state;
+
+drop table qrtz_calendars;
+drop table qrtz_fired_triggers;
+drop table qrtz_blob_triggers;
+drop table qrtz_cron_triggers;
+drop table qrtz_simple_triggers;
+drop table qrtz_simprop_triggers;
+drop table qrtz_triggers;
+drop table qrtz_job_details;
+drop table qrtz_paused_trigger_grps;
+drop table qrtz_locks;
+drop table qrtz_scheduler_state;
+
+
+CREATE TABLE qrtz_job_details
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ JOB_NAME VARCHAR2(200) NOT NULL,
+ JOB_GROUP VARCHAR2(200) NOT NULL,
+ DESCRIPTION VARCHAR2(250) NULL,
+ JOB_CLASS_NAME VARCHAR2(250) NOT NULL,
+ IS_DURABLE VARCHAR2(1) NOT NULL,
+ IS_NONCONCURRENT VARCHAR2(1) NOT NULL,
+ IS_UPDATE_DATA VARCHAR2(1) NOT NULL,
+ REQUESTS_RECOVERY VARCHAR2(1) NOT NULL,
+ JOB_DATA BLOB NULL,
+ CONSTRAINT QRTZ_JOB_DETAILS_PK PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+CREATE TABLE qrtz_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ JOB_NAME VARCHAR2(200) NOT NULL,
+ JOB_GROUP VARCHAR2(200) NOT NULL,
+ DESCRIPTION VARCHAR2(250) NULL,
+ NEXT_FIRE_TIME NUMBER(13) NULL,
+ PREV_FIRE_TIME NUMBER(13) NULL,
+ PRIORITY NUMBER(13) NULL,
+ TRIGGER_STATE VARCHAR2(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR2(8) NOT NULL,
+ START_TIME NUMBER(13) NOT NULL,
+ END_TIME NUMBER(13) NULL,
+ CALENDAR_NAME VARCHAR2(200) NULL,
+ MISFIRE_INSTR NUMBER(2) NULL,
+ JOB_DATA BLOB NULL,
+ CONSTRAINT QRTZ_TRIGGERS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT QRTZ_TRIGGER_TO_JOBS_FK FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+CREATE TABLE qrtz_simple_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ REPEAT_COUNT NUMBER(7) NOT NULL,
+ REPEAT_INTERVAL NUMBER(12) NOT NULL,
+ TIMES_TRIGGERED NUMBER(10) NOT NULL,
+ CONSTRAINT QRTZ_SIMPLE_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT QRTZ_SIMPLE_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+CREATE TABLE qrtz_cron_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ CRON_EXPRESSION VARCHAR2(120) NOT NULL,
+ TIME_ZONE_ID VARCHAR2(80),
+ CONSTRAINT QRTZ_CRON_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT QRTZ_CRON_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+CREATE TABLE qrtz_simprop_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ STR_PROP_1 VARCHAR2(512) NULL,
+ STR_PROP_2 VARCHAR2(512) NULL,
+ STR_PROP_3 VARCHAR2(512) NULL,
+ INT_PROP_1 NUMBER(10) NULL,
+ INT_PROP_2 NUMBER(10) NULL,
+ LONG_PROP_1 NUMBER(13) NULL,
+ LONG_PROP_2 NUMBER(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR2(1) NULL,
+ BOOL_PROP_2 VARCHAR2(1) NULL,
+ CONSTRAINT QRTZ_SIMPROP_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT QRTZ_SIMPROP_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+CREATE TABLE qrtz_blob_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ BLOB_DATA BLOB NULL,
+ CONSTRAINT QRTZ_BLOB_TRIG_PK PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ CONSTRAINT QRTZ_BLOB_TRIG_TO_TRIG_FK FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+CREATE TABLE qrtz_calendars
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ CALENDAR_NAME VARCHAR2(200) NOT NULL,
+ CALENDAR BLOB NOT NULL,
+ CONSTRAINT QRTZ_CALENDARS_PK PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+CREATE TABLE qrtz_paused_trigger_grps
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ CONSTRAINT QRTZ_PAUSED_TRIG_GRPS_PK PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+CREATE TABLE qrtz_fired_triggers
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ ENTRY_ID VARCHAR2(95) NOT NULL,
+ TRIGGER_NAME VARCHAR2(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(200) NOT NULL,
+ INSTANCE_NAME VARCHAR2(200) NOT NULL,
+ FIRED_TIME NUMBER(13) NOT NULL,
+ SCHED_TIME NUMBER(13) NOT NULL,
+ PRIORITY NUMBER(13) NOT NULL,
+ STATE VARCHAR2(16) NOT NULL,
+ JOB_NAME VARCHAR2(200) NULL,
+ JOB_GROUP VARCHAR2(200) NULL,
+ IS_NONCONCURRENT VARCHAR2(1) NULL,
+ REQUESTS_RECOVERY VARCHAR2(1) NULL,
+ CONSTRAINT QRTZ_FIRED_TRIGGER_PK PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+CREATE TABLE qrtz_scheduler_state
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ INSTANCE_NAME VARCHAR2(200) NOT NULL,
+ LAST_CHECKIN_TIME NUMBER(13) NOT NULL,
+ CHECKIN_INTERVAL NUMBER(13) NOT NULL,
+ CONSTRAINT QRTZ_SCHEDULER_STATE_PK PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+CREATE TABLE qrtz_locks
+ (
+ SCHED_NAME VARCHAR2(120) NOT NULL,
+ LOCK_NAME VARCHAR2(40) NOT NULL,
+ CONSTRAINT QRTZ_LOCKS_PK PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+create index idx_qrtz_j_req_recovery on qrtz_job_details(SCHED_NAME,REQUESTS_RECOVERY);
+create index idx_qrtz_j_grp on qrtz_job_details(SCHED_NAME,JOB_GROUP);
+
+create index idx_qrtz_t_j on qrtz_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
+create index idx_qrtz_t_jg on qrtz_triggers(SCHED_NAME,JOB_GROUP);
+create index idx_qrtz_t_c on qrtz_triggers(SCHED_NAME,CALENDAR_NAME);
+create index idx_qrtz_t_g on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP);
+create index idx_qrtz_t_state on qrtz_triggers(SCHED_NAME,TRIGGER_STATE);
+create index idx_qrtz_t_n_state on qrtz_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+create index idx_qrtz_t_n_g_state on qrtz_triggers(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE);
+create index idx_qrtz_t_next_fire_time on qrtz_triggers(SCHED_NAME,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_st on qrtz_triggers(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME);
+create index idx_qrtz_t_nft_st_misfire on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE);
+create index idx_qrtz_t_nft_st_misfire_grp on qrtz_triggers(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE);
+
+create index idx_qrtz_ft_trig_inst_name on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME);
+create index idx_qrtz_ft_inst_job_req_rcvry on qrtz_fired_triggers(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY);
+create index idx_qrtz_ft_j_g on qrtz_fired_triggers(SCHED_NAME,JOB_NAME,JOB_GROUP);
+create index idx_qrtz_ft_jg on qrtz_fired_triggers(SCHED_NAME,JOB_GROUP);
+create index idx_qrtz_ft_t_g on qrtz_fired_triggers(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP);
+create index idx_qrtz_ft_tg on qrtz_fired_triggers(SCHED_NAME,TRIGGER_GROUP);
+
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_pointbase.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_pointbase.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_pointbase.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,180 @@
+#
+# Thanks to Gregg Freeman
+#
+#
+# ...you may want to change defined the size of the "blob" columns before
+# creating the tables (particularly for the qrtz_job_details.job_data column),
+# if you will be storing large amounts of data in them
+#
+#
+delete from qrtz_fired_triggers;
+delete from qrtz_simple_triggers;
+delete from qrtz_simprop_triggers;
+delete from qrtz_cron_triggers;
+delete from qrtz_blob_triggers;
+delete from qrtz_triggers;
+delete from qrtz_job_details;
+delete from qrtz_calendars;
+delete from qrtz_paused_trigger_grps;
+delete from qrtz_locks;
+delete from qrtz_scheduler_state;
+
+drop table qrtz_calendars;
+drop table qrtz_fired_triggers;
+drop table qrtz_blob_triggers;
+drop table qrtz_cron_triggers;
+drop table qrtz_simple_triggers;
+drop table qrtz_simprop_triggers;
+drop table qrtz_triggers;
+drop table qrtz_job_details;
+drop table qrtz_paused_trigger_grps;
+drop table qrtz_locks;
+drop table qrtz_scheduler_state;
+
+
+CREATE TABLE qrtz_job_details
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR2(80) NOT NULL,
+ JOB_GROUP VARCHAR2(80) NOT NULL,
+ DESCRIPTION VARCHAR2(120) NULL,
+ JOB_CLASS_NAME VARCHAR2(128) NOT NULL,
+ IS_DURABLE BOOLEAN NOT NULL,
+ IS_NONCONCURRENT BOOLEAN NOT NULL,
+ IS_UPDATE_DATA BOOLEAN NOT NULL,
+ REQUESTS_RECOVERY BOOLEAN NOT NULL,
+ JOB_DATA BLOB(4K) NULL,
+ PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(80) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ JOB_NAME VARCHAR2(80) NOT NULL,
+ JOB_GROUP VARCHAR2(80) NOT NULL,
+ DESCRIPTION VARCHAR2(120) NULL,
+ NEXT_FIRE_TIME NUMBER(13) NULL,
+ PREV_FIRE_TIME NUMBER(13) NULL,
+ PRIORITY NUMBER(13) NULL,
+ TRIGGER_STATE VARCHAR2(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR2(8) NOT NULL,
+ START_TIME NUMBER(13) NOT NULL,
+ END_TIME NUMBER(13) NULL,
+ CALENDAR_NAME VARCHAR2(80) NULL,
+ MISFIRE_INSTR NUMBER(2) NULL,
+ JOB_DATA BLOB(4K) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE qrtz_simple_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(80) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ REPEAT_COUNT NUMBER(7) NOT NULL,
+ REPEAT_INTERVAL NUMBER(12) NOT NULL,
+ TIMES_TRIGGERED NUMBER(10) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 NUMBER(10) NULL,
+ INT_PROP_2 NUMBER(10) NULL,
+ LONG_PROP_1 NUMBER(13) NULL,
+ LONG_PROP_2 NUMBER(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 BOOLEAN NULL,
+ BOOL_PROP_2 BOOLEAN NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_cron_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(80) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ CRON_EXPRESSION VARCHAR2(120) NOT NULL,
+ TIME_ZONE_ID VARCHAR2(80),
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_blob_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR2(80) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ BLOB_DATA BLOB(4K) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_calendars
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR2(80) NOT NULL,
+ CALENDAR BLOB(4K) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+CREATE TABLE qrtz_paused_trigger_grps
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE qrtz_fired_triggers
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR2(95) NOT NULL,
+ TRIGGER_NAME VARCHAR2(80) NOT NULL,
+ TRIGGER_GROUP VARCHAR2(80) NOT NULL,
+ INSTANCE_NAME VARCHAR2(80) NOT NULL,
+ FIRED_TIME NUMBER(13) NOT NULL,
+ SCHED_TIME NUMBER(13) NOT NULL,
+ PRIORITY NUMBER(13) NOT NULL,
+ STATE VARCHAR2(16) NOT NULL,
+ JOB_NAME VARCHAR2(80) NULL,
+ JOB_GROUP VARCHAR2(80) NULL,
+ IS_NONCONCURRENT BOOLEAN NULL,
+ REQUESTS_RECOVERY BOOLEAN NULL,
+ PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE qrtz_scheduler_state
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR2(80) NOT NULL,
+ LAST_CHECKIN_TIME NUMBER(13) NOT NULL,
+ CHECKIN_INTERVAL NUMBER(13) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE qrtz_locks
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR2(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_postgres.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_postgres.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_postgres.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,207 @@
+-- Thanks to Patrick Lightbody for submitting this...
+--
+-- In your Quartz properties file, you'll need to set
+-- org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate
+
+DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS;
+DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE;
+DROP TABLE IF EXISTS QRTZ_LOCKS;
+DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_TRIGGERS;
+DROP TABLE IF EXISTS QRTZ_JOB_DETAILS;
+DROP TABLE IF EXISTS QRTZ_CALENDARS;
+
+CREATE TABLE QRTZ_JOB_DETAILS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ JOB_CLASS_NAME VARCHAR(250) NOT NULL,
+ IS_DURABLE BOOL NOT NULL,
+ IS_NONCONCURRENT BOOL NOT NULL,
+ IS_UPDATE_DATA BOOL NOT NULL,
+ REQUESTS_RECOVERY BOOL NOT NULL,
+ JOB_DATA BYTEA NULL,
+ PRIMARY KEY (SCHED_NAME, JOB_NAME, JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ NEXT_FIRE_TIME BIGINT NULL,
+ PREV_FIRE_TIME BIGINT NULL,
+ PRIORITY INTEGER NULL,
+ TRIGGER_STATE VARCHAR(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR(8) NOT NULL,
+ START_TIME BIGINT NOT NULL,
+ END_TIME BIGINT NULL,
+ CALENDAR_NAME VARCHAR(200) NULL,
+ MISFIRE_INSTR SMALLINT NULL,
+ JOB_DATA BYTEA NULL,
+ PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME, JOB_NAME, JOB_GROUP)
+ REFERENCES QRTZ_JOB_DETAILS (SCHED_NAME, JOB_NAME, JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ REPEAT_COUNT BIGINT NOT NULL,
+ REPEAT_INTERVAL BIGINT NOT NULL,
+ TIMES_TRIGGERED BIGINT NOT NULL,
+ PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ CRON_EXPRESSION VARCHAR(120) NOT NULL,
+ TIME_ZONE_ID VARCHAR(80),
+ PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 BIGINT NULL,
+ LONG_PROP_2 BIGINT NULL,
+ DEC_PROP_1 NUMERIC(13, 4) NULL,
+ DEC_PROP_2 NUMERIC(13, 4) NULL,
+ BOOL_PROP_1 BOOL NULL,
+ BOOL_PROP_2 BOOL NULL,
+ PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ BLOB_DATA BYTEA NULL,
+ PRIMARY KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CALENDARS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR(200) NOT NULL,
+ CALENDAR BYTEA NOT NULL,
+ PRIMARY KEY (SCHED_NAME, CALENDAR_NAME)
+);
+
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ PRIMARY KEY (SCHED_NAME, TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR(95) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ FIRED_TIME BIGINT NOT NULL,
+ SCHED_TIME BIGINT NOT NULL,
+ PRIORITY INTEGER NOT NULL,
+ STATE VARCHAR(16) NOT NULL,
+ JOB_NAME VARCHAR(200) NULL,
+ JOB_GROUP VARCHAR(200) NULL,
+ IS_NONCONCURRENT BOOL NULL,
+ REQUESTS_RECOVERY BOOL NULL,
+ PRIMARY KEY (SCHED_NAME, ENTRY_ID)
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ LAST_CHECKIN_TIME BIGINT NOT NULL,
+ CHECKIN_INTERVAL BIGINT NOT NULL,
+ PRIMARY KEY (SCHED_NAME, INSTANCE_NAME)
+);
+
+CREATE TABLE QRTZ_LOCKS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME, LOCK_NAME)
+);
+
+CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY
+ ON QRTZ_JOB_DETAILS (SCHED_NAME, REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_J_GRP
+ ON QRTZ_JOB_DETAILS (SCHED_NAME, JOB_GROUP);
+
+CREATE INDEX IDX_QRTZ_T_J
+ ON QRTZ_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_JG
+ ON QRTZ_TRIGGERS (SCHED_NAME, JOB_GROUP);
+CREATE INDEX IDX_QRTZ_T_C
+ ON QRTZ_TRIGGERS (SCHED_NAME, CALENDAR_NAME);
+CREATE INDEX IDX_QRTZ_T_G
+ ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_T_STATE
+ ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_STATE
+ ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP, TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_N_G_STATE
+ ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_GROUP, TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME
+ ON QRTZ_TRIGGERS (SCHED_NAME, NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST
+ ON QRTZ_TRIGGERS (SCHED_NAME, TRIGGER_STATE, NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE
+ ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE
+ ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_STATE);
+CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP
+ ON QRTZ_TRIGGERS (SCHED_NAME, MISFIRE_INSTR, NEXT_FIRE_TIME, TRIGGER_GROUP, TRIGGER_STATE);
+
+CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME);
+CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, INSTANCE_NAME, REQUESTS_RECOVERY);
+CREATE INDEX IDX_QRTZ_FT_J_G
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_NAME, JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_JG
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, JOB_GROUP);
+CREATE INDEX IDX_QRTZ_FT_T_G
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_NAME, TRIGGER_GROUP);
+CREATE INDEX IDX_QRTZ_FT_TG
+ ON QRTZ_FIRED_TRIGGERS (SCHED_NAME, TRIGGER_GROUP);
+
+
+COMMIT;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sapdb.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sapdb.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sapdb.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,151 @@
+#
+# Thanks to Andrew Perepelytsya for submitting this file.
+#
+# In your Quartz properties file, you'll need to set
+# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+#
+
+CREATE TABLE QRTZ_JOB_DETAILS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ JOB_CLASS_NAME VARCHAR(128) NOT NULL,
+ IS_DURABLE VARCHAR(1) NOT NULL,
+ IS_NONCONCURRENT VARCHAR(1) NOT NULL,
+ IS_UPDATE_DATA VARCHAR(1) NOT NULL,
+ REQUESTS_RECOVERY VARCHAR(1) NOT NULL,
+ JOB_DATA LONG BYTE NULL,
+ PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ JOB_NAME VARCHAR(200) NOT NULL,
+ JOB_GROUP VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ NEXT_FIRE_TIME FIXED(13) NULL,
+ PREV_FIRE_TIME FIXED(13) NULL,
+ PRIORITY FIXED(13) NULL,
+ TRIGGER_STATE VARCHAR(16) NOT NULL,
+ TRIGGER_TYPE VARCHAR(8) NOT NULL,
+ START_TIME FIXED(13) NOT NULL,
+ END_TIME FIXED(13) NULL,
+ CALENDAR_NAME VARCHAR(200) NULL,
+ MISFIRE_INSTR FIXED(2) NULL,
+ JOB_DATA LONG BYTE NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPLE_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ REPEAT_COUNT FIXED(7) NOT NULL,
+ REPEAT_INTERVAL FIXED(12) NOT NULL,
+ TIMES_TRIGGERED FIXED(10) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 FIXED(10) NULL,
+ INT_PROP_2 FIXED(10) NULL,
+ LONG_PROP_1 FIXED(13) NULL,
+ LONG_PROP_2 FIXED(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(1) NULL,
+ BOOL_PROP_2 VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CRON_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ CRON_EXPRESSION VARCHAR(120) NOT NULL,
+ TIME_ZONE_ID VARCHAR(80),
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_BLOB_TRIGGERS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ BLOB_DATA LONG BYTE NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_CALENDARS
+(
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ CALENDAR_NAME VARCHAR(200) NOT NULL,
+ DESCRIPTION VARCHAR(250) NULL,
+ CALENDAR LONG BYTE NOT NULL,
+ PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)
+);
+
+
+CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)
+);
+
+CREATE TABLE QRTZ_FIRED_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ ENTRY_ID VARCHAR(95) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ FIRED_TIME FIXED(13) NOT NULL,
+ SCHED_TIME FIXED(13) NOT NULL,
+ PRIORITY FIXED(13) NOT NULL,
+ STATE VARCHAR(16) NOT NULL,
+ JOB_NAME VARCHAR(200) NULL,
+ JOB_GROUP VARCHAR(200) NULL,
+ IS_NONCONCURRENT VARCHAR(1) NULL,
+ REQUESTS_RECOVERY VARCHAR(1) NULL,
+ PRIMARY KEY (SCHED_NAME,ENTRY_ID)
+);
+
+CREATE TABLE QRTZ_SCHEDULER_STATE
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ INSTANCE_NAME VARCHAR(200) NOT NULL,
+ LAST_CHECKIN_TIME FIXED(13) NOT NULL,
+ CHECKIN_INTERVAL FIXED(13) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)
+);
+
+CREATE TABLE QRTZ_LOCKS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ LOCK_NAME VARCHAR(40) NOT NULL,
+ PRIMARY KEY (SCHED_NAME,LOCK_NAME)
+);
+
+
+commit;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_solid.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_solid.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_solid.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,147 @@
+
+DROP TABLE qrtz_locks;
+DROP TABLE qrtz_scheduler_state;
+DROP TABLE qrtz_fired_triggers;
+DROP TABLE qrtz_paused_trigger_grps;
+DROP TABLE qrtz_calendars;
+DROP TABLE qrtz_blob_triggers;
+DROP TABLE qrtz_cron_triggers;
+DROP TABLE qrtz_simple_triggers;
+DROP TABLE qrtz_simprop_triggers;
+DROP TABLE qrtz_triggers;
+DROP TABLE qrtz_job_details;
+
+create table qrtz_job_details (
+ sched_name varchar(120) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120) ,
+ job_class_name varchar(128) not null,
+ is_durable varchar(5) not null,
+ is_nonconcurrent varchar(5) not null,
+ is_update_data varchar(5) not null,
+ requests_recovery varchar(5) not null,
+ job_data long varbinary,
+primary key (sched_name,job_name,job_group)
+);
+
+create table qrtz_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ job_name varchar(80) not null,
+ job_group varchar(80) not null,
+ description varchar(120) ,
+ next_fire_time numeric(13),
+ prev_fire_time numeric(13),
+ priority integer,
+ trigger_state varchar(16) not null,
+ trigger_type varchar(8) not null,
+ start_time numeric(13) not null,
+ end_time numeric(13),
+ calendar_name varchar(80),
+ misfire_instr smallint,
+ job_data long varbinary,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,job_name,job_group) references qrtz_job_details(sched_name,job_name,job_group)
+);
+
+create table qrtz_simple_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ repeat_count numeric(13) not null,
+ repeat_interval numeric(13) not null,
+ times_triggered numeric(13) not null,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+CREATE TABLE qrtz_simprop_triggers
+ (
+ sched_name varchar(120) not null,
+ trigger_name VARCHAR(200) NOT NULL,
+ trigger_group VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INTEGER NULL,
+ INT_PROP_2 INTEGER NULL,
+ LONG_PROP_1 NUMERIC(13) NULL,
+ LONG_PROP_2 NUMERIC(13) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 VARCHAR(5) NULL,
+ BOOL_PROP_2 VARCHAR(5) NULL,
+PRIMARY KEY (sched_name,trigger_name,trigger_group),
+FOREIGN KEY (sched_name,trigger_name,trigger_group) REFERENCES qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+
+create table qrtz_cron_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ cron_expression varchar(120) not null,
+ time_zone_id varchar(80),
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_blob_triggers(
+ sched_name varchar(120) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ blob_data long varbinary ,
+primary key (sched_name,trigger_name,trigger_group),
+foreign key (sched_name,trigger_name,trigger_group) references qrtz_triggers(sched_name,trigger_name,trigger_group)
+);
+
+create table qrtz_calendars(
+ sched_name varchar(120) not null,
+ calendar_name varchar(80) not null,
+ calendar long varbinary not null,
+primary key (sched_name,calendar_name)
+);
+
+create table qrtz_paused_trigger_grps
+ (
+ sched_name varchar(120) not null,
+ trigger_group varchar(80) not null,
+primary key (sched_name,trigger_group)
+);
+
+create table qrtz_fired_triggers(
+ sched_name varchar(120) not null,
+ entry_id varchar(95) not null,
+ trigger_name varchar(80) not null,
+ trigger_group varchar(80) not null,
+ instance_name varchar(80) not null,
+ fired_time numeric(13) not null,
+ sched_time numeric(13) not null,
+ priority integer not null,
+ state varchar(16) not null,
+ job_name varchar(80) null,
+ job_group varchar(80) null,
+ is_nonconcurrent varchar(5) null,
+ requests_recovery varchar(5) null,
+primary key (sched_name,entry_id)
+);
+
+create table qrtz_scheduler_state
+ (
+ sched_name varchar(120) not null,
+ instance_name varchar(80) not null,
+ last_checkin_time numeric(13) not null,
+ checkin_interval numeric(13) not null,
+primary key (sched_name,instance_name)
+);
+
+create table qrtz_locks
+ (
+ sched_name varchar(120) not null,
+ lock_name varchar(40) not null,
+primary key (sched_name,lock_name)
+);
+
+commit work;
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sqlServer.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sqlServer.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sqlServer.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,366 @@
+--# thanks to George Papastamatopoulos for submitting this ... and Marko Lahma for
+--# updating it.
+--#
+--# In your Quartz properties file, you'll need to set
+--# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate
+--#
+--# you shouse enter your DB instance's name on the next line in place of "enter_db_name_here"
+--#
+--#
+--# From a helpful (but anonymous) Quartz user:
+--#
+--# Regarding this error message:
+--#
+--# [Microsoft][SQLServer 2000 Driver for JDBC]Can't start a cloned connection while in manual transaction mode.
+--#
+--#
+--# I added "SelectMethod=cursor;" to my Connection URL in the config file.
+--# It Seems to work, hopefully no side effects.
+--#
+--# example:
+--# "jdbc:microsoft:sqlserver://dbmachine:1433;SelectMethod=cursor";
+--#
+--# Another user has pointed out that you will probably need to use the
+--# JTDS driver
+--#
+
+USE [enter_db_name_here]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] DROP CONSTRAINT FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] DROP CONSTRAINT FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] DROP CONSTRAINT FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[FK_QRTZ_BLOB_TRIGGERS_QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISFOREIGNKEY') = 1)
+ALTER TABLE [dbo].[QRTZ_BLOB_TRIGGERS] DROP CONSTRAINT FK_QRTZ_BLOB_TRIGGERS_QRTZ_TRIGGERS
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CALENDARS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CALENDARS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_CRON_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_CRON_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_BLOB_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_BLOB_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_FIRED_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_FIRED_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_PAUSED_TRIGGER_GRPS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SCHEDULER_STATE]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SCHEDULER_STATE]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_LOCKS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_LOCKS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_JOB_DETAILS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_JOB_DETAILS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPLE_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_SIMPROP_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS]
+GO
+
+IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[QRTZ_TRIGGERS]') AND OBJECTPROPERTY(id, N'ISUSERTABLE') = 1)
+DROP TABLE [dbo].[QRTZ_TRIGGERS]
+GO
+
+CREATE TABLE [dbo].[QRTZ_CALENDARS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [CALENDAR_NAME] [VARCHAR] (200) NOT NULL ,
+ [CALENDAR] [IMAGE] NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_CRON_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [CRON_EXPRESSION] [VARCHAR] (120) NOT NULL ,
+ [TIME_ZONE_ID] [VARCHAR] (80)
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_FIRED_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [ENTRY_ID] [VARCHAR] (95) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [INSTANCE_NAME] [VARCHAR] (200) NOT NULL ,
+ [FIRED_TIME] [BIGINT] NOT NULL ,
+ [SCHED_TIME] [BIGINT] NOT NULL ,
+ [PRIORITY] [INTEGER] NOT NULL ,
+ [STATE] [VARCHAR] (16) NOT NULL,
+ [JOB_NAME] [VARCHAR] (200) NULL ,
+ [JOB_GROUP] [VARCHAR] (200) NULL ,
+ [IS_NONCONCURRENT] [VARCHAR] (1) NULL ,
+ [REQUESTS_RECOVERY] [VARCHAR] (1) NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_SCHEDULER_STATE] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [INSTANCE_NAME] [VARCHAR] (200) NOT NULL ,
+ [LAST_CHECKIN_TIME] [BIGINT] NOT NULL ,
+ [CHECKIN_INTERVAL] [BIGINT] NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_LOCKS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [LOCK_NAME] [VARCHAR] (40) NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_JOB_DETAILS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [JOB_NAME] [VARCHAR] (200) NOT NULL ,
+ [JOB_GROUP] [VARCHAR] (200) NOT NULL ,
+ [DESCRIPTION] [VARCHAR] (250) NULL ,
+ [JOB_CLASS_NAME] [VARCHAR] (250) NOT NULL ,
+ [IS_DURABLE] [VARCHAR] (1) NOT NULL ,
+ [IS_NONCONCURRENT] [VARCHAR] (1) NOT NULL ,
+ [IS_UPDATE_DATA] [VARCHAR] (1) NOT NULL ,
+ [REQUESTS_RECOVERY] [VARCHAR] (1) NOT NULL ,
+ [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [REPEAT_COUNT] [BIGINT] NOT NULL ,
+ [REPEAT_INTERVAL] [BIGINT] NOT NULL ,
+ [TIMES_TRIGGERED] [BIGINT] NOT NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [STR_PROP_1] [VARCHAR] (512) NULL,
+ [STR_PROP_2] [VARCHAR] (512) NULL,
+ [STR_PROP_3] [VARCHAR] (512) NULL,
+ [INT_PROP_1] [INT] NULL,
+ [INT_PROP_2] [INT] NULL,
+ [LONG_PROP_1] [BIGINT] NULL,
+ [LONG_PROP_2] [BIGINT] NULL,
+ [DEC_PROP_1] [NUMERIC] (13,4) NULL,
+ [DEC_PROP_2] [NUMERIC] (13,4) NULL,
+ [BOOL_PROP_1] [VARCHAR] (1) NULL,
+ [BOOL_PROP_2] [VARCHAR] (1) NULL,
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_BLOB_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [BLOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+CREATE TABLE [dbo].[QRTZ_TRIGGERS] (
+ [SCHED_NAME] [VARCHAR] (120) NOT NULL ,
+ [TRIGGER_NAME] [VARCHAR] (200) NOT NULL ,
+ [TRIGGER_GROUP] [VARCHAR] (200) NOT NULL ,
+ [JOB_NAME] [VARCHAR] (200) NOT NULL ,
+ [JOB_GROUP] [VARCHAR] (200) NOT NULL ,
+ [DESCRIPTION] [VARCHAR] (250) NULL ,
+ [NEXT_FIRE_TIME] [BIGINT] NULL ,
+ [PREV_FIRE_TIME] [BIGINT] NULL ,
+ [PRIORITY] [INTEGER] NULL ,
+ [TRIGGER_STATE] [VARCHAR] (16) NOT NULL ,
+ [TRIGGER_TYPE] [VARCHAR] (8) NOT NULL ,
+ [START_TIME] [BIGINT] NOT NULL ,
+ [END_TIME] [BIGINT] NULL ,
+ [CALENDAR_NAME] [VARCHAR] (200) NULL ,
+ [MISFIRE_INSTR] [SMALLINT] NULL ,
+ [JOB_DATA] [IMAGE] NULL
+) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CALENDARS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_CALENDARS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [CALENDAR_NAME]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_CRON_TRIGGERS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_FIRED_TRIGGERS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_FIRED_TRIGGERS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [ENTRY_ID]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_PAUSED_TRIGGER_GRPS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_PAUSED_TRIGGER_GRPS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [TRIGGER_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_SCHEDULER_STATE] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_SCHEDULER_STATE] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [INSTANCE_NAME]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_LOCKS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_LOCKS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [LOCK_NAME]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_JOB_DETAILS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_JOB_DETAILS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [JOB_NAME],
+ [JOB_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_SIMPLE_TRIGGERS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_SIMPROP_TRIGGERS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] WITH NOCHECK ADD
+ CONSTRAINT [PK_QRTZ_TRIGGERS] PRIMARY KEY CLUSTERED
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON [PRIMARY]
+GO
+
+ALTER TABLE [dbo].[QRTZ_CRON_TRIGGERS] ADD
+ CONSTRAINT [FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPLE_TRIGGERS] ADD
+ CONSTRAINT [FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_SIMPROP_TRIGGERS] ADD
+ CONSTRAINT [FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_BLOB_TRIGGERS] ADD
+ CONSTRAINT [FK_QRTZ_BLOB_TRIGGERS_QRTZ_TRIGGERS] FOREIGN KEY
+ (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) REFERENCES [dbo].[QRTZ_TRIGGERS] (
+ [SCHED_NAME],
+ [TRIGGER_NAME],
+ [TRIGGER_GROUP]
+ ) ON DELETE CASCADE
+GO
+
+ALTER TABLE [dbo].[QRTZ_TRIGGERS] ADD
+ CONSTRAINT [FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS] FOREIGN KEY
+ (
+ [SCHED_NAME],
+ [JOB_NAME],
+ [JOB_GROUP]
+ ) REFERENCES [dbo].[QRTZ_JOB_DETAILS] (
+ [SCHED_NAME],
+ [JOB_NAME],
+ [JOB_GROUP]
+ )
+GO
+
Index: 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sybase.sql
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sybase.sql (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/impl/jdbcjobstore/tables_sybase.sql (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,313 @@
+/*==============================================================================================*/
+/* Quartz database tables creation script for Sybase ASE 12.5 */
+/* Written by Pertti Laiho (email: pertti.laiho@deio.net), 9th May 2003 */
+/* */
+/* Compatible with Quartz version 1.1.2 */
+/* */
+/* Sybase ASE works ok with the SybaseDelegate delegate class. That means in your Quartz properties */
+/* file, you'll need to set: */
+/* org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.SybaseDelegate */
+/*==============================================================================================*/
+
+use your_db_name_here
+go
+
+/*==============================================================================*/
+/* Clear all tables: */
+/*==============================================================================*/
+
+IF OBJECT_ID('QRTZ_FIRED_TRIGGERS') IS NOT NULL
+delete from QRTZ_FIRED_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_PAUSED_TRIGGER_GRPS') IS NOT NULL
+delete from QRTZ_PAUSED_TRIGGER_GRPS
+go
+IF OBJECT_ID('QRTZ_SCHEDULER_STATE') IS NOT NULL
+delete from QRTZ_SCHEDULER_STATE
+go
+IF OBJECT_ID('QRTZ_LOCKS') IS NOT NULL
+delete from QRTZ_LOCKS
+go
+IF OBJECT_ID('QRTZ_SIMPLE_TRIGGERS') IS NOT NULL
+delete from QRTZ_SIMPLE_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_SIMPROP_TRIGGERS') IS NOT NULL
+delete from QRTZ_SIMPROP_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_CRON_TRIGGERS') IS NOT NULL
+delete from QRTZ_CRON_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_BLOB_TRIGGERS') IS NOT NULL
+delete from QRTZ_BLOB_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_TRIGGERS') IS NOT NULL
+delete from QRTZ_TRIGGERS
+go
+IF OBJECT_ID('QRTZ_JOB_DETAILS') IS NOT NULL
+delete from QRTZ_JOB_DETAILS
+go
+IF OBJECT_ID('QRTZ_CALENDARS') IS NOT NULL
+delete from QRTZ_CALENDARS
+go
+
+/*==============================================================================*/
+/* Drop constraints: */
+/*==============================================================================*/
+
+alter table QRTZ_TRIGGERS
+drop constraint FK_triggers_job_details
+go
+
+alter table QRTZ_CRON_TRIGGERS
+drop constraint FK_cron_triggers_triggers
+go
+
+alter table QRTZ_SIMPLE_TRIGGERS
+drop constraint FK_simple_triggers_triggers
+go
+
+alter table QRTZ_SIMPROP_TRIGGERS
+drop constraint FK_simprop_triggers_triggers
+go
+
+alter table QRTZ_BLOB_TRIGGERS
+drop constraint FK_blob_triggers_triggers
+go
+
+/*==============================================================================*/
+/* Drop tables: */
+/*==============================================================================*/
+
+drop table QRTZ_FIRED_TRIGGERS
+go
+drop table QRTZ_PAUSED_TRIGGER_GRPS
+go
+drop table QRTZ_SCHEDULER_STATE
+go
+drop table QRTZ_LOCKS
+go
+drop table QRTZ_SIMPLE_TRIGGERS
+go
+drop table QRTZ_SIMPROP_TRIGGERS
+go
+drop table QRTZ_CRON_TRIGGERS
+go
+drop table QRTZ_BLOB_TRIGGERS
+go
+drop table QRTZ_TRIGGERS
+go
+drop table QRTZ_JOB_DETAILS
+go
+drop table QRTZ_CALENDARS
+go
+
+/*==============================================================================*/
+/* Create tables: */
+/*==============================================================================*/
+
+create table QRTZ_CALENDARS (
+SCHED_NAME varchar(120) not null,
+CALENDAR_NAME varchar(200) not null,
+CALENDAR image not null
+)
+go
+
+create table QRTZ_CRON_TRIGGERS (
+SCHED_NAME varchar(120) not null,
+TRIGGER_NAME varchar(200) not null,
+TRIGGER_GROUP varchar(200) not null,
+CRON_EXPRESSION varchar(120) not null,
+TIME_ZONE_ID varchar(80) null,
+)
+go
+
+create table QRTZ_PAUSED_TRIGGER_GRPS (
+SCHED_NAME varchar(120) not null,
+TRIGGER_GROUP varchar(200) not null,
+)
+go
+
+create table QRTZ_FIRED_TRIGGERS(
+SCHED_NAME varchar(120) not null,
+ENTRY_ID varchar(95) not null,
+TRIGGER_NAME varchar(200) not null,
+TRIGGER_GROUP varchar(200) not null,
+INSTANCE_NAME varchar(200) not null,
+FIRED_TIME numeric(13,0) not null,
+SCHED_TIME numeric(13,0) not null,
+PRIORITY int not null,
+STATE varchar(16) not null,
+JOB_NAME varchar(200) null,
+JOB_GROUP varchar(200) null,
+IS_NONCONCURRENT bit not null,
+REQUESTS_RECOVERY bit not null,
+)
+go
+
+create table QRTZ_SCHEDULER_STATE (
+SCHED_NAME varchar(120) not null,
+INSTANCE_NAME varchar(200) not null,
+LAST_CHECKIN_TIME numeric(13,0) not null,
+CHECKIN_INTERVAL numeric(13,0) not null,
+)
+go
+
+create table QRTZ_LOCKS (
+SCHED_NAME varchar(120) not null,
+LOCK_NAME varchar(40) not null,
+)
+go
+
+
+create table QRTZ_JOB_DETAILS (
+SCHED_NAME varchar(120) not null,
+JOB_NAME varchar(200) not null,
+JOB_GROUP varchar(200) not null,
+DESCRIPTION varchar(250) null,
+JOB_CLASS_NAME varchar(250) not null,
+IS_DURABLE bit not null,
+IS_NONCONCURRENT bit not null,
+IS_UPDATE_DATA bit not null,
+REQUESTS_RECOVERY bit not null,
+JOB_DATA image null
+)
+go
+
+create table QRTZ_SIMPLE_TRIGGERS (
+SCHED_NAME varchar(120) not null,
+TRIGGER_NAME varchar(200) not null,
+TRIGGER_GROUP varchar(200) not null,
+REPEAT_COUNT numeric(13,0) not null,
+REPEAT_INTERVAL numeric(13,0) not null,
+TIMES_TRIGGERED numeric(13,0) not null
+)
+go
+
+CREATE TABLE QRTZ_SIMPROP_TRIGGERS
+ (
+ SCHED_NAME VARCHAR(120) NOT NULL,
+ TRIGGER_NAME VARCHAR(200) NOT NULL,
+ TRIGGER_GROUP VARCHAR(200) NOT NULL,
+ STR_PROP_1 VARCHAR(512) NULL,
+ STR_PROP_2 VARCHAR(512) NULL,
+ STR_PROP_3 VARCHAR(512) NULL,
+ INT_PROP_1 INT NULL,
+ INT_PROP_2 INT NULL,
+ LONG_PROP_1 NUMERIC(13,0) NULL,
+ LONG_PROP_2 NUMERIC(13,0) NULL,
+ DEC_PROP_1 NUMERIC(13,4) NULL,
+ DEC_PROP_2 NUMERIC(13,4) NULL,
+ BOOL_PROP_1 bit NOT NULL,
+ BOOL_PROP_2 bit NOT NULL
+)
+go
+
+create table QRTZ_BLOB_TRIGGERS (
+SCHED_NAME varchar(120) not null,
+TRIGGER_NAME varchar(200) not null,
+TRIGGER_GROUP varchar(200) not null,
+BLOB_DATA image null
+)
+go
+
+create table QRTZ_TRIGGERS (
+SCHED_NAME varchar(120) not null,
+TRIGGER_NAME varchar(200) not null,
+TRIGGER_GROUP varchar(200) not null,
+JOB_NAME varchar(200) not null,
+JOB_GROUP varchar(200) not null,
+DESCRIPTION varchar(250) null,
+NEXT_FIRE_TIME numeric(13,0) null,
+PREV_FIRE_TIME numeric(13,0) null,
+PRIORITY int null,
+TRIGGER_STATE varchar(16) not null,
+TRIGGER_TYPE varchar(8) not null,
+START_TIME numeric(13,0) not null,
+END_TIME numeric(13,0) null,
+CALENDAR_NAME varchar(200) null,
+MISFIRE_INSTR smallint null,
+JOB_DATA image null
+)
+go
+
+/*==============================================================================*/
+/* Create primary key constraints: */
+/*==============================================================================*/
+
+alter table QRTZ_CALENDARS
+add constraint PK_qrtz_calendars primary key clustered (SCHED_NAME,CALENDAR_NAME)
+go
+
+alter table QRTZ_CRON_TRIGGERS
+add constraint PK_qrtz_cron_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+go
+
+alter table QRTZ_FIRED_TRIGGERS
+add constraint PK_qrtz_fired_triggers primary key clustered (SCHED_NAME,ENTRY_ID)
+go
+
+alter table QRTZ_PAUSED_TRIGGER_GRPS
+add constraint PK_qrtz_paused_trigger_grps primary key clustered (SCHED_NAME,TRIGGER_GROUP)
+go
+
+alter table QRTZ_SCHEDULER_STATE
+add constraint PK_qrtz_scheduler_state primary key clustered (SCHED_NAME,INSTANCE_NAME)
+go
+
+alter table QRTZ_LOCKS
+add constraint PK_qrtz_locks primary key clustered (SCHED_NAME,LOCK_NAME)
+go
+
+alter table QRTZ_JOB_DETAILS
+add constraint PK_qrtz_job_details primary key clustered (SCHED_NAME,JOB_NAME, JOB_GROUP)
+go
+
+alter table QRTZ_SIMPLE_TRIGGERS
+add constraint PK_qrtz_simple_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+go
+
+alter table QRTZ_SIMPROP_TRIGGERS
+add constraint PK_qrtz_simprop_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+go
+
+alter table QRTZ_TRIGGERS
+add constraint PK_qrtz_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+go
+
+alter table QRTZ_BLOB_TRIGGERS
+add constraint PK_qrtz_blob_triggers primary key clustered (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP)
+go
+
+
+/*==============================================================================*/
+/* Create foreign key constraints: */
+/*==============================================================================*/
+
+alter table QRTZ_CRON_TRIGGERS
+add constraint FK_cron_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+go
+
+alter table QRTZ_SIMPLE_TRIGGERS
+add constraint FK_simple_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+go
+
+alter table QRTZ_SIMPROP_TRIGGERS
+add constraint FK_simprop_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+go
+
+alter table QRTZ_TRIGGERS
+add constraint FK_triggers_job_details foreign key (SCHED_NAME,JOB_NAME,JOB_GROUP)
+references QRTZ_JOB_DETAILS (SCHED_NAME,JOB_NAME,JOB_GROUP)
+go
+
+alter table QRTZ_BLOB_TRIGGERS
+add constraint FK_blob_triggers_triggers foreign key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+references QRTZ_TRIGGERS (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+go
+
+/*==============================================================================*/
+/* End of script. */
+/*==============================================================================*/
Index: 3rdParty_sources/quartz/org/quartz/impl/triggers/AbstractTrigger.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/triggers/AbstractTrigger.java (.../AbstractTrigger.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/triggers/AbstractTrigger.java (.../AbstractTrigger.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/triggers/CalendarIntervalTriggerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/triggers/CalendarIntervalTriggerImpl.java (.../CalendarIntervalTriggerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/triggers/CalendarIntervalTriggerImpl.java (.../CalendarIntervalTriggerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/impl/triggers/CronTriggerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/triggers/CronTriggerImpl.java (.../CronTriggerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/triggers/CronTriggerImpl.java (.../CronTriggerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -31,6 +31,8 @@
import org.quartz.Scheduler;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
@@ -62,6 +64,8 @@
*/
private static final long serialVersionUID = -8644953146451592766L;
+ private static final Logger LOGGER = LoggerFactory.getLogger(CronTriggerImpl.class);
+
protected static final int YEAR_TO_GIVEUP_SCHEDULING_AT = CronExpression.MAX_YEAR;
@@ -813,12 +817,22 @@
CronScheduleBuilder cb = CronScheduleBuilder.cronSchedule(getCronExpression())
.inTimeZone(getTimeZone());
-
- switch(getMisfireInstruction()) {
- case MISFIRE_INSTRUCTION_DO_NOTHING : cb.withMisfireHandlingInstructionDoNothing();
- break;
- case MISFIRE_INSTRUCTION_FIRE_ONCE_NOW : cb.withMisfireHandlingInstructionFireAndProceed();
- break;
+
+ int misfireInstruction = getMisfireInstruction();
+ switch(misfireInstruction) {
+ case MISFIRE_INSTRUCTION_SMART_POLICY:
+ break;
+ case MISFIRE_INSTRUCTION_DO_NOTHING:
+ cb.withMisfireHandlingInstructionDoNothing();
+ break;
+ case MISFIRE_INSTRUCTION_FIRE_ONCE_NOW:
+ cb.withMisfireHandlingInstructionFireAndProceed();
+ break;
+ case MISFIRE_INSTRUCTION_IGNORE_MISFIRE_POLICY:
+ cb.withMisfireHandlingInstructionIgnoreMisfires();
+ break;
+ default:
+ LOGGER.warn("Unrecognized misfire policy {}. Derived builder will use the default cron trigger behavior (MISFIRE_INSTRUCTION_FIRE_ONCE_NOW)", misfireInstruction);
}
return cb;
Index: 3rdParty_sources/quartz/org/quartz/impl/triggers/DailyTimeIntervalTriggerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/triggers/DailyTimeIntervalTriggerImpl.java (.../DailyTimeIntervalTriggerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/triggers/DailyTimeIntervalTriggerImpl.java (.../DailyTimeIntervalTriggerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -854,8 +854,13 @@
}
// Ensure timeOfDay is in order.
- if (getEndTimeOfDay() != null && !getStartTimeOfDay().before(getEndTimeOfDay())) {
- throw new SchedulerException("StartTimeOfDay " + startTimeOfDay + " should not come after endTimeOfDay " + endTimeOfDay);
+ // NOTE: We allow startTimeOfDay to be set equal to endTimeOfDay so the repeatCount can be
+ // set to 1.
+ if (getEndTimeOfDay() != null
+ && !getStartTimeOfDay().equals(getEndTimeOfDay())
+ && !getStartTimeOfDay().before(getEndTimeOfDay())) {
+ throw new SchedulerException("StartTimeOfDay " + startTimeOfDay
+ + " should not come after endTimeOfDay " + endTimeOfDay);
}
}
Index: 3rdParty_sources/quartz/org/quartz/impl/triggers/SimpleTriggerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/impl/triggers/SimpleTriggerImpl.java (.../SimpleTriggerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/impl/triggers/SimpleTriggerImpl.java (.../SimpleTriggerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,6 +1,6 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/BroadcastJobListener.java
===================================================================
diff -u -ra5b247dd91cb3ffabf9de46cba029e5537fad087 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/BroadcastJobListener.java (.../BroadcastJobListener.java) (revision a5b247dd91cb3ffabf9de46cba029e5537fad087)
+++ 3rdParty_sources/quartz/org/quartz/listeners/BroadcastJobListener.java (.../BroadcastJobListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/BroadcastTriggerListener.java
===================================================================
diff -u -ra5b247dd91cb3ffabf9de46cba029e5537fad087 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/BroadcastTriggerListener.java (.../BroadcastTriggerListener.java) (revision a5b247dd91cb3ffabf9de46cba029e5537fad087)
+++ 3rdParty_sources/quartz/org/quartz/listeners/BroadcastTriggerListener.java (.../BroadcastTriggerListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/JobChainingJobListener.java
===================================================================
diff -u -ra5b247dd91cb3ffabf9de46cba029e5537fad087 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/JobChainingJobListener.java (.../JobChainingJobListener.java) (revision a5b247dd91cb3ffabf9de46cba029e5537fad087)
+++ 3rdParty_sources/quartz/org/quartz/listeners/JobChainingJobListener.java (.../JobChainingJobListener.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/JobListenerSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/JobListenerSupport.java (.../JobListenerSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/listeners/JobListenerSupport.java (.../JobListenerSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/SchedulerListenerSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/SchedulerListenerSupport.java (.../SchedulerListenerSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/listeners/SchedulerListenerSupport.java (.../SchedulerListenerSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/listeners/TriggerListenerSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/listeners/TriggerListenerSupport.java (.../TriggerListenerSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/listeners/TriggerListenerSupport.java (.../TriggerListenerSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/plugins/SchedulerPluginWithUserTransactionSupport.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/plugins/SchedulerPluginWithUserTransactionSupport.java (.../SchedulerPluginWithUserTransactionSupport.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/plugins/SchedulerPluginWithUserTransactionSupport.java (.../SchedulerPluginWithUserTransactionSupport.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingJobHistoryPlugin.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingJobHistoryPlugin.java (.../LoggingJobHistoryPlugin.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingJobHistoryPlugin.java (.../LoggingJobHistoryPlugin.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingTriggerHistoryPlugin.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingTriggerHistoryPlugin.java (.../LoggingTriggerHistoryPlugin.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/plugins/history/LoggingTriggerHistoryPlugin.java (.../LoggingTriggerHistoryPlugin.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/plugins/interrupt/JobInterruptMonitorPlugin.java
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/plugins/interrupt/JobInterruptMonitorPlugin.java (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/plugins/interrupt/JobInterruptMonitorPlugin.java (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,176 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ */
+package org.quartz.plugins.interrupt;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+
+import org.quartz.JobExecutionContext;
+import org.quartz.JobKey;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.Trigger;
+import org.quartz.Trigger.CompletedExecutionInstruction;
+import org.quartz.listeners.TriggerListenerSupport;
+import org.quartz.spi.ClassLoadHelper;
+import org.quartz.spi.SchedulerPlugin;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * This plugin catches the event of job running for a long time (more than the
+ * configured max time) and tells the scheduler to "try" interrupting it if
+ * enabled.
+ *
+ * @see org.quartz.Scheduler#interrupt()
+ *
+ * @author Rama Chavali
+ */
+
+public class JobInterruptMonitorPlugin extends TriggerListenerSupport implements SchedulerPlugin {
+
+ private static final String JOB_INTERRUPT_MONITOR_KEY = "JOB_INTERRUPT_MONITOR_KEY";
+
+ private long DEFAULT_MAX_RUNTIME = 300000;
+
+ private String name;
+
+ private ScheduledExecutorService executor;
+
+ @SuppressWarnings("rawtypes")
+ private ScheduledFuture future;
+
+ private Scheduler scheduler;
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ //Constants
+
+ public static final String AUTO_INTERRUPTIBLE = "AutoInterruptable";
+
+ public static final String MAX_RUN_TIME = "MaxRunTime";
+
+ public JobInterruptMonitorPlugin() {
+ }
+
+ @Override
+ public void start() {
+ }
+
+ @Override
+
+ public void shutdown() {
+ this.executor.shutdown();
+ }
+
+ protected Logger getLog() {
+ return log;
+ }
+
+ @SuppressWarnings("rawtypes")
+ public ScheduledFuture scheduleJobInterruptMonitor(JobKey jobkey, long delay) {
+ return this.executor.schedule(new InterruptMonitor(jobkey, scheduler), delay, TimeUnit.MILLISECONDS);
+ }
+
+ // Bean Property Methods
+
+ public long getDefaultMaxRunTime() {
+ return this.DEFAULT_MAX_RUNTIME;
+ }
+
+ public void setDefaultMaxRunTime(long defaultMaxRunTime) {
+ this.DEFAULT_MAX_RUNTIME = defaultMaxRunTime;
+ }
+
+ // Trigger Listener Methods
+ public String getName() {
+ return name;
+ }
+
+ public void triggerFired(Trigger trigger, JobExecutionContext context) {
+ // Call the scheduleJobInterruptMonitor and capture the ScheduledFuture in context
+ try {
+ // Schedule Monitor only if the job wants AutoInterruptable functionality
+ if (context.getJobDetail().getJobDataMap().getBoolean(AUTO_INTERRUPTIBLE)) {
+ JobInterruptMonitorPlugin monitorPlugin = (JobInterruptMonitorPlugin) context.getScheduler()
+ .getContext().get(JOB_INTERRUPT_MONITOR_KEY);
+ // Get the MaxRuntime from Job Data if NOT available use DEFAULT_MAX_RUNTIME from Plugin Configuration
+ long jobDataDelay = DEFAULT_MAX_RUNTIME;
+
+ if (context.getJobDetail().getJobDataMap().get(MAX_RUN_TIME) != null){
+ jobDataDelay = context.getJobDetail().getJobDataMap().getLong(MAX_RUN_TIME);
+ }
+ future = monitorPlugin.scheduleJobInterruptMonitor(context.getJobDetail().getKey(), jobDataDelay);
+ getLog().debug("Job's Interrupt Monitor has been scheduled to interrupt with the delay :"
+ + DEFAULT_MAX_RUNTIME);
+ }
+ } catch (SchedulerException e) {
+ getLog().info("Error scheduling interrupt monitor " + e.getMessage(), e);
+ }
+ }
+
+ public void triggerComplete(Trigger trigger, JobExecutionContext context,
+ CompletedExecutionInstruction triggerInstructionCode) {
+ // cancel the Future if job is complete
+ if (future != null) {
+ future.cancel(true);
+ }
+ }
+
+ @Override
+ public void initialize(String name, Scheduler scheduler, ClassLoadHelper helper) throws SchedulerException {
+
+ getLog().info("Registering Job Interrupt Monitor Plugin");
+ this.name = name;
+ this.executor = Executors.newScheduledThreadPool(1);
+ scheduler.getContext().put(JOB_INTERRUPT_MONITOR_KEY, this);
+ this.scheduler = scheduler;
+ // Set the trigger Listener as this class to the ListenerManager here
+ this.scheduler.getListenerManager().addTriggerListener(this);
+
+ }
+
+ static class InterruptMonitor implements Runnable {
+
+ private final JobKey jobKey;
+ private final Scheduler scheduler;
+
+ private final Logger log = LoggerFactory.getLogger(getClass());
+
+ InterruptMonitor(JobKey jobKey, Scheduler scheduler) {
+ this.jobKey = jobKey;
+ this.scheduler = scheduler;
+ }
+
+ protected Logger getLog() {
+ return log;
+ }
+
+ @Override
+ public void run() {
+ try {
+
+ // Interrupt the job here - using Scheduler API that gets propagated to Job's interrupt
+ getLog().info("Interrupting Job as it ran more than the configured max time. Job Details [" + jobKey.getName() + ":" + jobKey.getGroup()+"]");
+ scheduler.interrupt(jobKey);
+ } catch (SchedulerException x) {
+ getLog().info("Error interrupting Job: " + x.getMessage(), x);
+ }
+ }
+ }
+}
Index: 3rdParty_sources/quartz/org/quartz/plugins/management/ShutdownHookPlugin.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/plugins/management/ShutdownHookPlugin.java (.../ShutdownHookPlugin.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/plugins/management/ShutdownHookPlugin.java (.../ShutdownHookPlugin.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/plugins/xml/XMLSchedulingDataProcessorPlugin.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/plugins/xml/XMLSchedulingDataProcessorPlugin.java (.../XMLSchedulingDataProcessorPlugin.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/plugins/xml/XMLSchedulingDataProcessorPlugin.java (.../XMLSchedulingDataProcessorPlugin.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2010 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/CascadingClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/CascadingClassLoadHelper.java (.../CascadingClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/CascadingClassLoadHelper.java (.../CascadingClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/HostnameInstanceIdGenerator.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/HostnameInstanceIdGenerator.java (.../HostnameInstanceIdGenerator.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/HostnameInstanceIdGenerator.java (.../HostnameInstanceIdGenerator.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/InitThreadContextClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/InitThreadContextClassLoadHelper.java (.../InitThreadContextClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/InitThreadContextClassLoadHelper.java (.../InitThreadContextClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/LoadingLoaderClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/LoadingLoaderClassLoadHelper.java (.../LoadingLoaderClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/LoadingLoaderClassLoadHelper.java (.../LoadingLoaderClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/PropertySettingJobFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/PropertySettingJobFactory.java (.../PropertySettingJobFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/PropertySettingJobFactory.java (.../PropertySettingJobFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/RAMJobStore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/RAMJobStore.java (.../RAMJobStore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/RAMJobStore.java (.../RAMJobStore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -98,7 +98,7 @@
protected HashMap calendarsByName = new HashMap(25);
- protected ArrayList triggers = new ArrayList(1000);
+ protected Map> triggersByJob = new HashMap>(1000);
protected final Object lock = new Object();
@@ -424,8 +424,14 @@
+ ") referenced by the trigger does not exist.");
}
- // add to triggers array
- triggers.add(tw);
+ // add to triggers by job
+ List jobList = triggersByJob.get(tw.jobKey);
+ if(jobList == null) {
+ jobList = new ArrayList(1);
+ triggersByJob.put(tw.jobKey, jobList);
+ }
+ jobList.add(tw);
+
// add to triggers by group
HashMap grpMap = triggersByGroup.get(newTrigger.getKey().getGroup());
if (grpMap == null) {
@@ -469,9 +475,9 @@
synchronized (lock) {
// remove from triggers by FQN map
- found = (triggersByKey.remove(key) != null);
+ TriggerWrapper tw = triggersByKey.remove(key);
+ found = tw != null;
if (found) {
- TriggerWrapper tw = null;
// remove from triggers by group
HashMap grpMap = triggersByGroup.get(key.getGroup());
if (grpMap != null) {
@@ -480,15 +486,15 @@
triggersByGroup.remove(key.getGroup());
}
}
- // remove from triggers array
- Iterator tgs = triggers.iterator();
- while (tgs.hasNext()) {
- tw = tgs.next();
- if (key.equals(tw.key)) {
- tgs.remove();
- break;
+ //remove from triggers by job
+ List jobList = triggersByJob.get(tw.jobKey);
+ if(jobList != null) {
+ jobList.remove(tw);
+ if(jobList.isEmpty()) {
+ triggersByJob.remove(tw.jobKey);
}
}
+
timeTriggers.remove(tw);
if (removeOrphanedJob) {
@@ -525,7 +531,6 @@
throw new JobPersistenceException("New trigger is not related to the same job as the old trigger.");
}
- tw = null;
// remove from triggers by group
HashMap grpMap = triggersByGroup.get(triggerKey.getGroup());
if (grpMap != null) {
@@ -534,15 +539,16 @@
triggersByGroup.remove(triggerKey.getGroup());
}
}
- // remove from triggers array
- Iterator tgs = triggers.iterator();
- while (tgs.hasNext()) {
- tw = tgs.next();
- if (triggerKey.equals(tw.key)) {
- tgs.remove();
- break;
+
+ //remove from triggers by job
+ List jobList = triggersByJob.get(tw.jobKey);
+ if(jobList != null) {
+ jobList.remove(tw);
+ if(jobList.isEmpty()) {
+ triggersByJob.remove(tw.jobKey);
}
}
+
timeTriggers.remove(tw);
try {
@@ -664,6 +670,42 @@
}
/**
+ * Reset the current state of the identified {@link Trigger}
+ * from {@link TriggerState#ERROR} to {@link TriggerState#NORMAL} or
+ * {@link TriggerState#PAUSED} as appropriate.
+ *
+ * Only affects triggers that are in ERROR state - if identified trigger is not
+ * in that state then the result is a no-op.
+ *
+ * The result will be the trigger returning to the normal, waiting to
+ * be fired state, unless the trigger's group has been paused, in which
+ * case it will go into the PAUSED state.
+ */
+ public void resetTriggerFromErrorState(final TriggerKey triggerKey) throws JobPersistenceException {
+
+ synchronized (lock) {
+
+ TriggerWrapper tw = triggersByKey.get(triggerKey);
+ // does the trigger exist?
+ if (tw == null || tw.trigger == null) {
+ return;
+ }
+ // is the trigger in error state?
+ if (tw.state != TriggerWrapper.STATE_ERROR) {
+ return;
+ }
+
+ if(pausedTriggerGroups.contains(triggerKey.getGroup())) {
+ tw.state = TriggerWrapper.STATE_PAUSED;
+ }
+ else {
+ tw.state = TriggerWrapper.STATE_WAITING;
+ timeTriggers.add(tw);
+ }
+ }
+ }
+
+ /**
*
* Store the given {@link org.quartz.Calendar}
.
*
@@ -737,7 +779,7 @@
int numRefs = 0;
synchronized (lock) {
- for (TriggerWrapper trigger : triggers) {
+ for (TriggerWrapper trigger : triggersByKey.values()) {
OperableTrigger trigg = trigger.trigger;
if (trigg.getCalendarName() != null
&& trigg.getCalendarName().equals(calName)) {
@@ -793,7 +835,7 @@
*/
public int getNumberOfTriggers() {
synchronized (lock) {
- return triggers.size();
+ return triggersByKey.size();
}
}
@@ -965,8 +1007,9 @@
ArrayList trigList = new ArrayList();
synchronized (lock) {
- for (TriggerWrapper tw : triggers) {
- if (tw.jobKey.equals(jobKey)) {
+ List jobList = triggersByJob.get(jobKey);
+ if(jobList != null) {
+ for(TriggerWrapper tw : jobList) {
trigList.add((OperableTrigger) tw.trigger.clone());
}
}
@@ -979,8 +1022,9 @@
ArrayList trigList = new ArrayList();
synchronized (lock) {
- for (TriggerWrapper trigger : triggers) {
- if (trigger.jobKey.equals(jobKey)) {
+ List jobList = triggersByJob.get(jobKey);
+ if(jobList != null) {
+ for(TriggerWrapper trigger : jobList) {
trigList.add(trigger);
}
}
@@ -993,7 +1037,7 @@
ArrayList trigList = new ArrayList();
synchronized (lock) {
- for (TriggerWrapper tw : triggers) {
+ for (TriggerWrapper tw : triggersByKey.values()) {
String tcalName = tw.getTrigger().getCalendarName();
if (tcalName != null && tcalName.equals(calName)) {
trigList.add(tw);
@@ -1217,9 +1261,27 @@
}
resumeTrigger(triggerKey);
}
- for (String group : groups) {
- pausedTriggerGroups.remove(group);
+
+ // Find all matching paused trigger groups, and then remove them.
+ StringMatcher.StringOperatorName operator = matcher.getCompareWithOperator();
+ LinkedList pausedGroups = new LinkedList();
+ String matcherGroup = matcher.getCompareToValue();
+ switch (operator) {
+ case EQUALS:
+ if(pausedTriggerGroups.contains(matcherGroup)) {
+ pausedGroups.add(matcher.getCompareToValue());
+ }
+ break;
+ default :
+ for (String group : pausedTriggerGroups) {
+ if(operator.evaluate(group, matcherGroup)) {
+ pausedGroups.add(group);
+ }
+ }
}
+ for (String pausedGroup : pausedGroups) {
+ pausedTriggerGroups.remove(pausedGroup);
+ }
}
return new ArrayList(groups);
@@ -1624,6 +1686,11 @@
}
}
+ @Override
+ public long getAcquireRetryDelay(int failureCount) {
+ return 20;
+ }
+
protected void setAllTriggersOfJobToState(JobKey jobKey, int state) {
ArrayList tws = getTriggerWrappersForJob(jobKey);
for (TriggerWrapper tw : tws) {
Index: 3rdParty_sources/quartz/org/quartz/simpl/SimpleClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/SimpleClassLoadHelper.java (.../SimpleClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/SimpleClassLoadHelper.java (.../SimpleClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/SimpleInstanceIdGenerator.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/SimpleInstanceIdGenerator.java (.../SimpleInstanceIdGenerator.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/SimpleInstanceIdGenerator.java (.../SimpleInstanceIdGenerator.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/SimpleJobFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/SimpleJobFactory.java (.../SimpleJobFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/SimpleJobFactory.java (.../SimpleJobFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/SimpleThreadPool.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/SimpleThreadPool.java (.../SimpleThreadPool.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/SimpleThreadPool.java (.../SimpleThreadPool.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/SimpleTimeBroker.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/SimpleTimeBroker.java (.../SimpleTimeBroker.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/SimpleTimeBroker.java (.../SimpleTimeBroker.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/ThreadContextClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/ThreadContextClassLoadHelper.java (.../ThreadContextClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/ThreadContextClassLoadHelper.java (.../ThreadContextClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/simpl/ZeroSizeThreadPool.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/simpl/ZeroSizeThreadPool.java (.../ZeroSizeThreadPool.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/simpl/ZeroSizeThreadPool.java (.../ZeroSizeThreadPool.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/ClassLoadHelper.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/ClassLoadHelper.java (.../ClassLoadHelper.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/ClassLoadHelper.java (.../ClassLoadHelper.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/InstanceIdGenerator.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/InstanceIdGenerator.java (.../InstanceIdGenerator.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/InstanceIdGenerator.java (.../InstanceIdGenerator.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/JobFactory.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/JobFactory.java (.../JobFactory.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/JobFactory.java (.../JobFactory.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/JobStore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/JobStore.java (.../JobStore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/JobStore.java (.../JobStore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -425,6 +425,21 @@
*/
TriggerState getTriggerState(TriggerKey triggerKey) throws JobPersistenceException;
+ /**
+ * Reset the current state of the identified {@link Trigger}
+ * from {@link TriggerState#ERROR} to {@link TriggerState#NORMAL} or
+ * {@link TriggerState#PAUSED} as appropriate.
+ *
+ * Only affects triggers that are in ERROR state - if identified trigger is not
+ * in that state then the result is a no-op.
+ *
+ * The result will be the trigger returning to the normal, waiting to
+ * be fired state, unless the trigger's group has been paused, in which
+ * case it will go into the PAUSED state.
+ */
+ void resetTriggerFromErrorState(TriggerKey triggerKey) throws JobPersistenceException;
+
+
/////////////////////////////////////////////////////////////////////////////
//
// Trigger State manipulation methods
@@ -449,7 +464,7 @@
* paused.
*
*
- * @see #resumeTriggerGroup(String)
+ * @see #resumeTriggers(GroupMatcher)
*/
Collection pauseTriggers(GroupMatcher matcher) throws JobPersistenceException;
@@ -471,7 +486,7 @@
* paused.
*
*
- * @see #resumeJobGroup(String)
+ * @see #resumeJobs(GroupMatcher)
*/
Collection pauseJobs(GroupMatcher groupMatcher)
throws JobPersistenceException;
@@ -498,7 +513,7 @@
* Trigger
's misfire instruction will be applied.
*
*
- * @see #pauseTriggers(String)
+ * @see #pauseTriggers(GroupMatcher)
*/
Collection resumeTriggers(GroupMatcher matcher)
throws JobPersistenceException;
@@ -530,7 +545,7 @@
* misfire instruction will be applied.
*
*
- * @see #pauseJobGroup(String)
+ * @see #pauseJobs(GroupMatcher)
*/
Collection resumeJobs(GroupMatcher matcher)
throws JobPersistenceException;
@@ -545,7 +560,7 @@
*
*
* @see #resumeAll()
- * @see #pauseTriggers(String)
+ * @see #pauseTriggers(GroupMatcher)
*/
void pauseAll() throws JobPersistenceException;
@@ -576,7 +591,7 @@
* @param noLaterThan If > 0, the JobStore should only return a Trigger
* that will fire no later than the time represented in this value as
* milliseconds.
- * @see #releaseAcquiredTrigger(Trigger)
+ * @see #releaseAcquiredTrigger(OperableTrigger)
*/
List acquireNextTriggers(long noLaterThan, int maxCount, long timeWindow)
throws JobPersistenceException;
@@ -632,4 +647,22 @@
* @since 2.0
*/
void setThreadPoolSize(int poolSize);
+
+ /**
+ * Get the amount of time (in ms) to wait when accessing this job store
+ * repeatedly fails.
+ *
+ * Called by the executor thread(s) when calls to
+ * {@link #acquireNextTriggers} fail more than once in succession, and the
+ * thread thus wants to wait a bit before trying again, to not consume
+ * 100% CPU, write huge amounts of errors into logs, etc. in cases like
+ * the DB being offline/restarting.
+ *
+ * The delay returned by implementations should be between 20 and
+ * 600000 milliseconds.
+ *
+ * @param failureCount the number of successive failures seen so far
+ * @return the time (in milliseconds) to wait before trying again
+ */
+ long getAcquireRetryDelay(int failureCount);
}
Index: 3rdParty_sources/quartz/org/quartz/spi/SchedulerPlugin.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/SchedulerPlugin.java (.../SchedulerPlugin.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/SchedulerPlugin.java (.../SchedulerPlugin.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/SchedulerSignaler.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/SchedulerSignaler.java (.../SchedulerSignaler.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/SchedulerSignaler.java (.../SchedulerSignaler.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/ThreadPool.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/ThreadPool.java (.../ThreadPool.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/ThreadPool.java (.../ThreadPool.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/TimeBroker.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/TimeBroker.java (.../TimeBroker.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/TimeBroker.java (.../TimeBroker.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/spi/TriggerFiredBundle.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/spi/TriggerFiredBundle.java (.../TriggerFiredBundle.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/spi/TriggerFiredBundle.java (.../TriggerFiredBundle.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/C3p0PoolingConnectionProvider.java
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/utils/C3p0PoolingConnectionProvider.java (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/utils/C3p0PoolingConnectionProvider.java (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,233 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.quartz.utils;
+
+import java.beans.PropertyVetoException;
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Properties;
+
+import org.quartz.SchedulerException;
+
+import com.mchange.v2.c3p0.ComboPooledDataSource;
+
+/**
+ *
+ * A ConnectionProvider
implementation that creates its own
+ * pool of connections.
+ *
+ *
+ *
+ * This class uses C3PO (http://www.mchange.com/projects/c3p0/index.html) as
+ * the underlying pool implementation.
+ *
+ * @see DBConnectionManager
+ * @see ConnectionProvider
+ *
+ * @author Sharada Jambula
+ * @author James House
+ * @author Mohammad Rezaei
+ */
+public class C3p0PoolingConnectionProvider implements PoolingConnectionProvider {
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Constants.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ /**
+ * The maximum number of prepared statements that will be cached per connection in the pool.
+ * Depending upon your JDBC Driver this may significantly help performance, or may slightly
+ * hinder performance.
+ * Default is 120, as Quartz uses over 100 unique statements. 0 disables the feature.
+ */
+ public static final String DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = "maxCachedStatementsPerConnection";
+
+ /**
+ * The number of seconds between tests of idle connections - only enabled
+ * if the validation query property is set. Default is 50 seconds.
+ */
+ public static final String DB_IDLE_VALIDATION_SECONDS = "idleConnectionValidationSeconds";
+
+ /**
+ * Whether the database sql query to validate connections should be executed every time
+ * a connection is retrieved from the pool to ensure that it is still valid. If false,
+ * then validation will occur on check-in. Default is false.
+ */
+ public static final String DB_VALIDATE_ON_CHECKOUT = "validateOnCheckout";
+
+ /** Discard connections after they have been idle this many seconds. 0 disables the feature. Default is 0.*/
+ public static final String DB_DISCARD_IDLE_CONNECTIONS_SECONDS = "maxIdleTime";
+
+ /** Default maximum number of database connections in the pool. */
+ public static final int DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = 120;
+
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Data members.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ private ComboPooledDataSource datasource;
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Constructors.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ public C3p0PoolingConnectionProvider(String dbDriver, String dbURL,
+ String dbUser, String dbPassword, int maxConnections,
+ String dbValidationQuery) throws SQLException, SchedulerException {
+ initialize(
+ dbDriver, dbURL, dbUser, dbPassword,
+ maxConnections, DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION, dbValidationQuery, false, 50, 0);
+ }
+
+ /**
+ * Create a connection pool using the given properties.
+ *
+ *
+ * The properties passed should contain:
+ *
+ * - {@link #DB_DRIVER}- The database driver class name
+ *
- {@link #DB_URL}- The database URL
+ *
- {@link #DB_USER}- The database user
+ *
- {@link #DB_PASSWORD}- The database password
+ *
- {@link #DB_MAX_CONNECTIONS}- The maximum # connections in the pool,
+ * optional
+ *
- {@link #DB_VALIDATION_QUERY}- The sql validation query, optional
+ *
+ *
+ *
+ * @param config
+ * configuration properties
+ */
+ public C3p0PoolingConnectionProvider(Properties config) throws SchedulerException, SQLException {
+ PropertiesParser cfg = new PropertiesParser(config);
+ initialize(
+ cfg.getStringProperty(DB_DRIVER),
+ cfg.getStringProperty(DB_URL),
+ cfg.getStringProperty(DB_USER, ""),
+ cfg.getStringProperty(DB_PASSWORD, ""),
+ cfg.getIntProperty(DB_MAX_CONNECTIONS, DEFAULT_DB_MAX_CONNECTIONS),
+ cfg.getIntProperty(DB_MAX_CACHED_STATEMENTS_PER_CONNECTION, DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION),
+ cfg.getStringProperty(DB_VALIDATION_QUERY),
+ cfg.getBooleanProperty(DB_VALIDATE_ON_CHECKOUT, false),
+ cfg.getIntProperty(DB_IDLE_VALIDATION_SECONDS, 50),
+ cfg.getIntProperty(DB_DISCARD_IDLE_CONNECTIONS_SECONDS, 0));
+ }
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Interface.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ /**
+ * Create the underlying C3PO ComboPooledDataSource with the
+ * default supported properties.
+ * @throws SchedulerException
+ */
+ private void initialize(
+ String dbDriver,
+ String dbURL,
+ String dbUser,
+ String dbPassword,
+ int maxConnections,
+ int maxStatementsPerConnection,
+ String dbValidationQuery,
+ boolean validateOnCheckout,
+ int idleValidationSeconds,
+ int maxIdleSeconds) throws SQLException, SchedulerException {
+ if (dbURL == null) {
+ throw new SQLException(
+ "DBPool could not be created: DB URL cannot be null");
+ }
+
+ if (dbDriver == null) {
+ throw new SQLException(
+ "DBPool '" + dbURL + "' could not be created: " +
+ "DB driver class name cannot be null!");
+ }
+
+ if (maxConnections < 0) {
+ throw new SQLException(
+ "DBPool '" + dbURL + "' could not be created: " +
+ "Max connections must be greater than zero!");
+ }
+
+
+ datasource = new ComboPooledDataSource();
+ try {
+ datasource.setDriverClass(dbDriver);
+ } catch (PropertyVetoException e) {
+ throw new SchedulerException("Problem setting driver class name on datasource: " + e.getMessage(), e);
+ }
+ datasource.setJdbcUrl(dbURL);
+ datasource.setUser(dbUser);
+ datasource.setPassword(dbPassword);
+ datasource.setMaxPoolSize(maxConnections);
+ datasource.setMinPoolSize(1);
+ datasource.setMaxIdleTime(maxIdleSeconds);
+ datasource.setMaxStatementsPerConnection(maxStatementsPerConnection);
+
+ if (dbValidationQuery != null) {
+ datasource.setPreferredTestQuery(dbValidationQuery);
+ if(!validateOnCheckout)
+ datasource.setTestConnectionOnCheckin(true);
+ else
+ datasource.setTestConnectionOnCheckout(true);
+ datasource.setIdleConnectionTestPeriod(idleValidationSeconds);
+ }
+ }
+
+ /**
+ * Get the C3PO ComboPooledDataSource created during initialization.
+ *
+ *
+ * This can be used to set additional data source properties in a
+ * subclass's constructor.
+ *
+ */
+ public ComboPooledDataSource getDataSource() {
+ return datasource;
+ }
+
+ public Connection getConnection() throws SQLException {
+ return datasource.getConnection();
+ }
+
+ public void shutdown() throws SQLException {
+ datasource.close();
+ }
+
+ public void initialize() throws SQLException {
+ // do nothing, already initialized during constructor call
+ }
+}
Index: 3rdParty_sources/quartz/org/quartz/utils/CircularLossyQueue.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/CircularLossyQueue.java (.../CircularLossyQueue.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/CircularLossyQueue.java (.../CircularLossyQueue.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/ClassUtils.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/ClassUtils.java (.../ClassUtils.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/ClassUtils.java (.../ClassUtils.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,3 +1,18 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
package org.quartz.utils;
import java.lang.annotation.Annotation;
Index: 3rdParty_sources/quartz/org/quartz/utils/ConnectionProvider.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/ConnectionProvider.java (.../ConnectionProvider.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/ConnectionProvider.java (.../ConnectionProvider.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/DBConnectionManager.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/DBConnectionManager.java (.../DBConnectionManager.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/DBConnectionManager.java (.../DBConnectionManager.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/DirtyFlagMap.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/DirtyFlagMap.java (.../DirtyFlagMap.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/DirtyFlagMap.java (.../DirtyFlagMap.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/HikariCpPoolingConnectionProvider.java
===================================================================
diff -u
--- 3rdParty_sources/quartz/org/quartz/utils/HikariCpPoolingConnectionProvider.java (revision 0)
+++ 3rdParty_sources/quartz/org/quartz/utils/HikariCpPoolingConnectionProvider.java (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -0,0 +1,190 @@
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+
+package org.quartz.utils;
+
+import com.zaxxer.hikari.HikariDataSource;
+import org.quartz.SchedulerException;
+
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.util.Properties;
+
+/**
+ *
+ * A ConnectionProvider
implementation that creates its own
+ * pool of connections.
+ *
+ *
+ *
+ * This class uses HikariCP (https://brettwooldridge.github.io/HikariCP/) as
+ * the underlying pool implementation.
+ *
+ * @see DBConnectionManager
+ * @see ConnectionProvider
+ *
+ * @author Ludovic Orban
+ */
+public class HikariCpPoolingConnectionProvider implements PoolingConnectionProvider {
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Constants.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ /** This pooling provider name. */
+ public static final String POOLING_PROVIDER_NAME = "hikaricp";
+
+ /** Discard connections after they have been idle this many seconds. 0 disables the feature. Default is 0.*/
+ private static final String DB_DISCARD_IDLE_CONNECTIONS_SECONDS = "discardIdleConnectionsSeconds";
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Data members.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ private HikariDataSource datasource;
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Constructors.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ public HikariCpPoolingConnectionProvider(String dbDriver, String dbURL,
+ String dbUser, String dbPassword, int maxConnections,
+ String dbValidationQuery) throws SQLException, SchedulerException {
+ initialize(
+ dbDriver, dbURL, dbUser, dbPassword,
+ maxConnections, dbValidationQuery, 0);
+ }
+
+ /**
+ * Create a connection pool using the given properties.
+ *
+ *
+ * The properties passed should contain:
+ *
+ * - {@link #DB_DRIVER}- The database driver class name
+ *
- {@link #DB_URL}- The database URL
+ *
- {@link #DB_USER}- The database user
+ *
- {@link #DB_PASSWORD}- The database password
+ *
- {@link #DB_MAX_CONNECTIONS}- The maximum # connections in the pool,
+ * optional
+ *
- {@link #DB_VALIDATION_QUERY}- The sql validation query, optional
+ *
+ *
+ *
+ * @param config
+ * configuration properties
+ */
+ public HikariCpPoolingConnectionProvider(Properties config) throws SchedulerException, SQLException {
+ PropertiesParser cfg = new PropertiesParser(config);
+ initialize(
+ cfg.getStringProperty(DB_DRIVER),
+ cfg.getStringProperty(DB_URL),
+ cfg.getStringProperty(DB_USER, ""),
+ cfg.getStringProperty(DB_PASSWORD, ""),
+ cfg.getIntProperty(DB_MAX_CONNECTIONS, DEFAULT_DB_MAX_CONNECTIONS),
+ cfg.getStringProperty(DB_VALIDATION_QUERY),
+ cfg.getIntProperty(DB_DISCARD_IDLE_CONNECTIONS_SECONDS, 0));
+ }
+
+ /*
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ *
+ * Interface.
+ *
+ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ */
+
+ /**
+ * Create the underlying C3PO ComboPooledDataSource with the
+ * default supported properties.
+ * @throws SchedulerException
+ */
+ private void initialize(
+ String dbDriver,
+ String dbURL,
+ String dbUser,
+ String dbPassword,
+ int maxConnections,
+ String dbValidationQuery,
+ int maxIdleSeconds) throws SQLException, SchedulerException {
+ if (dbURL == null) {
+ throw new SQLException(
+ "DBPool could not be created: DB URL cannot be null");
+ }
+
+ if (dbDriver == null) {
+ throw new SQLException(
+ "DBPool '" + dbURL + "' could not be created: " +
+ "DB driver class name cannot be null!");
+ }
+
+ if (maxConnections < 0) {
+ throw new SQLException(
+ "DBPool '" + dbURL + "' could not be created: " +
+ "Max connections must be greater than zero!");
+ }
+
+
+ datasource = new HikariDataSource();
+ datasource.setDriverClassName(dbDriver);
+ datasource.setJdbcUrl(dbURL);
+ datasource.setUsername(dbUser);
+ datasource.setPassword(dbPassword);
+ datasource.setMaximumPoolSize(maxConnections);
+ datasource.setIdleTimeout(maxIdleSeconds);
+
+ if (dbValidationQuery != null) {
+ datasource.setConnectionTestQuery(dbValidationQuery);
+ }
+ }
+
+ /**
+ * Get the HikariCP HikariDataSource created during initialization.
+ *
+ *
+ * This can be used to set additional data source properties in a
+ * subclass's constructor.
+ *
+ */
+ public HikariDataSource getDataSource() {
+ return datasource;
+ }
+
+ public Connection getConnection() throws SQLException {
+ return datasource.getConnection();
+ }
+
+ public void shutdown() throws SQLException {
+ datasource.close();
+ }
+
+ public void initialize() throws SQLException {
+ // do nothing, already initialized during constructor call
+ }
+}
Index: 3rdParty_sources/quartz/org/quartz/utils/JNDIConnectionProvider.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/JNDIConnectionProvider.java (.../JNDIConnectionProvider.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/JNDIConnectionProvider.java (.../JNDIConnectionProvider.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/Key.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/Key.java (.../Key.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/Key.java (.../Key.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/PoolingConnectionProvider.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/PoolingConnectionProvider.java (.../PoolingConnectionProvider.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/PoolingConnectionProvider.java (.../PoolingConnectionProvider.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,257 +1,73 @@
-/*
- * Copyright 2001-2009 Terracotta, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy
- * of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations
+/*
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy
+ * of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations
* under the License.
- *
+ *
*/
package org.quartz.utils;
-import java.beans.PropertyVetoException;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.util.Properties;
+import javax.sql.DataSource;
-import org.quartz.SchedulerException;
-
-import com.mchange.v2.c3p0.ComboPooledDataSource;
-
/**
*
- * A ConnectionProvider
implementation that creates its own
- * pool of connections.
+ * ConnectionProvider
s supporting pooling of connections.
*
- *
+ *
*
- * This class uses C3PO (http://www.mchange.com/projects/c3p0/index.html) as
- * the underlying pool implementation.
- *
+ * Implementations must pool connections.
+ *
+ *
* @see DBConnectionManager
* @see ConnectionProvider
- *
- * @author Sharada Jambula
- * @author James House
- * @author Mohammad Rezaei
+ * @author Ludovic Orban
*/
-public class PoolingConnectionProvider implements ConnectionProvider {
+public interface PoolingConnectionProvider extends ConnectionProvider {
- /*
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Constants.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
+ /** The pooling provider. */
+ String POOLING_PROVIDER = "provider";
+ /** The c3p0 pooling provider. */
+ String POOLING_PROVIDER_C3P0 = "c3p0";
+
+ /** The Hikari pooling provider. */
+ String POOLING_PROVIDER_HIKARICP = "hikaricp";
+
/** The JDBC database driver. */
- public static final String DB_DRIVER = "driver";
+ String DB_DRIVER = "driver";
/** The JDBC database URL. */
- public static final String DB_URL = "URL";
+ String DB_URL = "URL";
/** The database user name. */
- public static final String DB_USER = "user";
+ String DB_USER = "user";
/** The database user password. */
- public static final String DB_PASSWORD = "password";
+ String DB_PASSWORD = "password";
/** The maximum number of database connections to have in the pool. Default is 10. */
- public static final String DB_MAX_CONNECTIONS = "maxConnections";
+ String DB_MAX_CONNECTIONS = "maxConnections";
- /**
- * The maximum number of prepared statements that will be cached per connection in the pool.
- * Depending upon your JDBC Driver this may significantly help performance, or may slightly
- * hinder performance.
- * Default is 120, as Quartz uses over 100 unique statements. 0 disables the feature.
+ /**
+ * The database sql query to execute every time a connection is returned
+ * to the pool to ensure that it is still valid.
*/
- public static final String DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = "maxCachedStatementsPerConnection";
+ String DB_VALIDATION_QUERY = "validationQuery";
- /**
- * The database sql query to execute every time a connection is returned
- * to the pool to ensure that it is still valid.
- */
- public static final String DB_VALIDATION_QUERY = "validationQuery";
-
- /**
- * The number of seconds between tests of idle connections - only enabled
- * if the validation query property is set. Default is 50 seconds.
- */
- public static final String DB_IDLE_VALIDATION_SECONDS = "idleConnectionValidationSeconds";
-
- /**
- * Whether the database sql query to validate connections should be executed every time
- * a connection is retrieved from the pool to ensure that it is still valid. If false,
- * then validation will occur on check-in. Default is false.
- */
- public static final String DB_VALIDATE_ON_CHECKOUT = "validateOnCheckout";
-
- /** Discard connections after they have been idle this many seconds. 0 disables the feature. Default is 0.*/
- private static final String DB_DISCARD_IDLE_CONNECTIONS_SECONDS = "discardIdleConnectionsSeconds";
-
/** Default maximum number of database connections in the pool. */
- public static final int DEFAULT_DB_MAX_CONNECTIONS = 10;
+ int DEFAULT_DB_MAX_CONNECTIONS = 10;
- /** Default maximum number of database connections in the pool. */
- public static final int DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION = 120;
+ DataSource getDataSource();
- /*
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Data members.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
- private ComboPooledDataSource datasource;
-
- /*
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Constructors.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
- public PoolingConnectionProvider(String dbDriver, String dbURL,
- String dbUser, String dbPassword, int maxConnections,
- String dbValidationQuery) throws SQLException, SchedulerException {
- initialize(
- dbDriver, dbURL, dbUser, dbPassword,
- maxConnections, DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION, dbValidationQuery, false, 50, 0);
- }
-
- /**
- * Create a connection pool using the given properties.
- *
- *
- * The properties passed should contain:
- *
- * - {@link #DB_DRIVER}- The database driver class name
- *
- {@link #DB_URL}- The database URL
- *
- {@link #DB_USER}- The database user
- *
- {@link #DB_PASSWORD}- The database password
- *
- {@link #DB_MAX_CONNECTIONS}- The maximum # connections in the pool,
- * optional
- *
- {@link #DB_VALIDATION_QUERY}- The sql validation query, optional
- *
- *
- *
- * @param config
- * configuration properties
- */
- public PoolingConnectionProvider(Properties config) throws SchedulerException, SQLException {
- PropertiesParser cfg = new PropertiesParser(config);
- initialize(
- cfg.getStringProperty(DB_DRIVER),
- cfg.getStringProperty(DB_URL),
- cfg.getStringProperty(DB_USER, ""),
- cfg.getStringProperty(DB_PASSWORD, ""),
- cfg.getIntProperty(DB_MAX_CONNECTIONS, DEFAULT_DB_MAX_CONNECTIONS),
- cfg.getIntProperty(DB_MAX_CACHED_STATEMENTS_PER_CONNECTION, DEFAULT_DB_MAX_CACHED_STATEMENTS_PER_CONNECTION),
- cfg.getStringProperty(DB_VALIDATION_QUERY),
- cfg.getBooleanProperty(DB_VALIDATE_ON_CHECKOUT, false),
- cfg.getIntProperty(DB_IDLE_VALIDATION_SECONDS, 50),
- cfg.getIntProperty(DB_DISCARD_IDLE_CONNECTIONS_SECONDS, 0));
- }
-
- /*
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- *
- * Interface.
- *
- * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- */
-
- /**
- * Create the underlying C3PO ComboPooledDataSource with the
- * default supported properties.
- * @throws SchedulerException
- */
- private void initialize(
- String dbDriver,
- String dbURL,
- String dbUser,
- String dbPassword,
- int maxConnections,
- int maxStatementsPerConnection,
- String dbValidationQuery,
- boolean validateOnCheckout,
- int idleValidationSeconds,
- int maxIdleSeconds) throws SQLException, SchedulerException {
- if (dbURL == null) {
- throw new SQLException(
- "DBPool could not be created: DB URL cannot be null");
- }
-
- if (dbDriver == null) {
- throw new SQLException(
- "DBPool '" + dbURL + "' could not be created: " +
- "DB driver class name cannot be null!");
- }
-
- if (maxConnections < 0) {
- throw new SQLException(
- "DBPool '" + dbURL + "' could not be created: " +
- "Max connections must be greater than zero!");
- }
-
-
- datasource = new ComboPooledDataSource();
- try {
- datasource.setDriverClass(dbDriver);
- } catch (PropertyVetoException e) {
- throw new SchedulerException("Problem setting driver class name on datasource: " + e.getMessage(), e);
- }
- datasource.setJdbcUrl(dbURL);
- datasource.setUser(dbUser);
- datasource.setPassword(dbPassword);
- datasource.setMaxPoolSize(maxConnections);
- datasource.setMinPoolSize(1);
- datasource.setMaxIdleTime(maxIdleSeconds);
- datasource.setMaxStatementsPerConnection(maxStatementsPerConnection);
-
- if (dbValidationQuery != null) {
- datasource.setPreferredTestQuery(dbValidationQuery);
- if(!validateOnCheckout)
- datasource.setTestConnectionOnCheckin(true);
- else
- datasource.setTestConnectionOnCheckout(true);
- datasource.setIdleConnectionTestPeriod(idleValidationSeconds);
- }
- }
-
- /**
- * Get the C3PO ComboPooledDataSource created during initialization.
- *
- *
- * This can be used to set additional data source properties in a
- * subclass's constructor.
- *
- */
- public ComboPooledDataSource getDataSource() {
- return datasource;
- }
-
- public Connection getConnection() throws SQLException {
- return datasource.getConnection();
- }
-
- public void shutdown() throws SQLException {
- datasource.close();
- }
-
- public void initialize() throws SQLException {
- // do nothing, already initialized during constructor call
- }
}
Index: 3rdParty_sources/quartz/org/quartz/utils/PropertiesParser.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/PropertiesParser.java (.../PropertiesParser.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/PropertiesParser.java (.../PropertiesParser.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/utils/StringKeyDirtyFlagMap.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/StringKeyDirtyFlagMap.java (.../StringKeyDirtyFlagMap.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/StringKeyDirtyFlagMap.java (.../StringKeyDirtyFlagMap.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Fisheye: Tag 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71 refers to a dead (removed) revision in file `3rdParty_sources/quartz/org/quartz/utils/UpdateChecker.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/Counter.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/Counter.java (.../Counter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/Counter.java (.../Counter.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/CounterConfig.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/CounterConfig.java (.../CounterConfig.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/CounterConfig.java (.../CounterConfig.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/CounterImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/CounterImpl.java (.../CounterImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/CounterImpl.java (.../CounterImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManager.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManager.java (.../CounterManager.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManager.java (.../CounterManager.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManagerImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManagerImpl.java (.../CounterManagerImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/CounterManagerImpl.java (.../CounterManagerImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounter.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounter.java (.../SampledCounter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounter.java (.../SampledCounter.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterConfig.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterConfig.java (.../SampledCounterConfig.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterConfig.java (.../SampledCounterConfig.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterImpl.java (.../SampledCounterImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledCounterImpl.java (.../SampledCounterImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounter.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounter.java (.../SampledRateCounter.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounter.java (.../SampledRateCounter.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterConfig.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterConfig.java (.../SampledRateCounterConfig.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterConfig.java (.../SampledRateCounterConfig.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterImpl.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterImpl.java (.../SampledRateCounterImpl.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/SampledRateCounterImpl.java (.../SampledRateCounterImpl.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/TimeStampedCounterValue.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/TimeStampedCounterValue.java (.../TimeStampedCounterValue.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/counter/sampled/TimeStampedCounterValue.java (.../TimeStampedCounterValue.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/**
- * Copyright 2003-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
Index: 3rdParty_sources/quartz/org/quartz/utils/weblogic/WeblogicConnectionProvider.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/utils/weblogic/WeblogicConnectionProvider.java (.../WeblogicConnectionProvider.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/utils/weblogic/WeblogicConnectionProvider.java (.../WeblogicConnectionProvider.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc. Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/xml/ValidationException.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/xml/ValidationException.java (.../ValidationException.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/xml/ValidationException.java (.../ValidationException.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2009 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
Index: 3rdParty_sources/quartz/org/quartz/xml/XMLSchedulingDataProcessor.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/quartz/xml/XMLSchedulingDataProcessor.java (.../XMLSchedulingDataProcessor.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/quartz/xml/XMLSchedulingDataProcessor.java (.../XMLSchedulingDataProcessor.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -1,5 +1,5 @@
/*
- * Copyright 2001-2010 Terracotta, Inc.
+ * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
@@ -174,6 +174,13 @@
docBuilderFactory.setAttribute("http://java.sun.com/xml/jaxp/properties/schemaSource", resolveSchemaSource());
+ docBuilderFactory.setFeature("http://apache.org/xml/features/disallow-doctype-decl", true);
+ docBuilderFactory.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false);
+ docBuilderFactory.setFeature("http://xml.org/sax/features/external-general-entities", false);
+ docBuilderFactory.setFeature("http://xml.org/sax/features/external-parameter-entities", false);
+ docBuilderFactory.setXIncludeAware(false);
+ docBuilderFactory.setExpandEntityReferences(false);
+
docBuilder = docBuilderFactory.newDocumentBuilder();
docBuilder.setErrorHandler(this);
Index: 3rdParty_sources/quartz/org/terracotta/quartz/AbstractTerracottaJobStore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/terracotta/quartz/AbstractTerracottaJobStore.java (.../AbstractTerracottaJobStore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/terracotta/quartz/AbstractTerracottaJobStore.java (.../AbstractTerracottaJobStore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -230,6 +230,15 @@
}
@Override
+ public void resetTriggerFromErrorState(final TriggerKey triggerKey) throws JobPersistenceException {
+ try {
+ realJobStore.resetTriggerFromErrorState(triggerKey);
+ } catch (RejoinException e) {
+ throw new JobPersistenceException("Trigger state reset failed due to client rejoin", e);
+ }
+ }
+
+ @Override
public void initialize(ClassLoadHelper loadHelper, SchedulerSignaler signaler) throws SchedulerConfigException {
init();
realJobStore.setInstanceId(schedInstId);
@@ -598,6 +607,15 @@
}
}
+ @Override
+ public long getAcquireRetryDelay(int failureCount) {
+ try {
+ return realJobStore.getAcquireRetryDelay(failureCount);
+ } catch (Exception e) {
+ return 20;
+ }
+ }
+
protected TerracottaJobStoreExtensions getRealJobStore() {
return realJobStore;
}
Index: 3rdParty_sources/quartz/org/terracotta/quartz/DefaultClusteredJobStore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/terracotta/quartz/DefaultClusteredJobStore.java (.../DefaultClusteredJobStore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/terracotta/quartz/DefaultClusteredJobStore.java (.../DefaultClusteredJobStore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -823,11 +823,34 @@
return Trigger.TriggerState.NORMAL;
}
+ @Override
+ public void resetTriggerFromErrorState(final TriggerKey triggerKey) throws JobPersistenceException {
+
+ TriggerWrapper tw = triggerFacade.get(triggerKey);
+ // was the trigger deleted since being acquired?
+ if (tw == null) {
+ return;
+ }
+ // was the trigger completed, paused, blocked, etc. since being acquired?
+ if (tw.getState() != TriggerState.ERROR) {
+ return;
+ }
+
+ if(triggerFacade.pausedGroupsContain(triggerKey.getGroup())) {
+ tw.setState(TriggerState.PAUSED, terracottaClientId, triggerFacade);
+ }
+ else {
+ tw.setState(TriggerState.WAITING, terracottaClientId, triggerFacade);
+ timeTriggers.add(tw);
+ }
+ }
+
+
/**
*
* Store the given {@link org.quartz.Calendar}
.
*
- *
+ *
* @param calendar The Calendar
to be stored.
* @param replaceExisting If true
, any Calendar
existing in the JobStore
with
* the same name & group should be over-written.
@@ -837,7 +860,7 @@
* @throws ObjectAlreadyExistsException if a Calendar
with the same name already exists, and
* replaceExisting is set to false.
*/
- @Override
+@Override
public void storeCalendar(String name, Calendar calendar, boolean replaceExisting, boolean updateTriggers)
throws ObjectAlreadyExistsException, JobPersistenceException {
@@ -2006,6 +2029,11 @@
throw new AssertionError();
}
+ @Override
+ public long getAcquireRetryDelay(int failureCount) {
+ return retryInterval;
+ }
+
void injectTriggerWrapper(final TriggerWrapper triggerWrapper) {
timeTriggers.add(triggerWrapper);
}
Index: 3rdParty_sources/quartz/org/terracotta/quartz/PlainTerracottaJobStore.java
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- 3rdParty_sources/quartz/org/terracotta/quartz/PlainTerracottaJobStore.java (.../PlainTerracottaJobStore.java) (revision 7475d08afc280b5e2e5ddf04e8bf35e3166aaf80)
+++ 3rdParty_sources/quartz/org/terracotta/quartz/PlainTerracottaJobStore.java (.../PlainTerracottaJobStore.java) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -130,6 +130,11 @@
}
@Override
+ public void resetTriggerFromErrorState(final TriggerKey triggerKey) throws JobPersistenceException {
+ clusteredJobStore.resetTriggerFromErrorState(triggerKey);
+ }
+
+ @Override
public synchronized void initialize(ClassLoadHelper loadHelper, SchedulerSignaler signaler)
throws SchedulerConfigException {
if (clusteredJobStore != null) { throw new IllegalStateException("already initialized"); }
@@ -151,8 +156,6 @@
clusteredJobStore.setTcRetryInterval(tcRetryInterval);
clusteredJobStore.initialize(loadHelper, signaler);
- // update check
- scheduleUpdateCheck();
}
@Override
@@ -381,6 +384,11 @@
}
@Override
+ public long getAcquireRetryDelay(int failureCount) {
+ return tcRetryInterval;
+ }
+
+ @Override
public String getUUID() {
return toolkit.getClientUUID();
}
@@ -389,13 +397,6 @@
return (T) new DefaultClusteredJobStore(useSynchWrite, toolkit, schedulerName);
}
- private void scheduleUpdateCheck() {
- if (!Boolean.getBoolean("org.terracotta.quartz.skipUpdateCheck")) {
- updateCheckTimer = new Timer("Update Checker", true);
- updateCheckTimer.scheduleAtFixedRate(new UpdateChecker(), 100, WEEKLY);
- }
- }
-
@Override
public long getEstimatedTimeToReleaseAndAcquireTrigger() {
return clusteredJobStore.getEstimatedTimeToReleaseAndAcquireTrigger();
Fisheye: Tag 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71 refers to a dead (removed) revision in file `3rdParty_sources/quartz/org/terracotta/quartz/UpdateChecker.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: idea_project/.idea/libraries/3rdParty.xml
===================================================================
diff -u -rca3e06f3b65d2880d69fd5278773c5c71e1ca3e7 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- idea_project/.idea/libraries/3rdParty.xml (.../3rdParty.xml) (revision ca3e06f3b65d2880d69fd5278773c5c71e1ca3e7)
+++ idea_project/.idea/libraries/3rdParty.xml (.../3rdParty.xml) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -7,10 +7,8 @@
-
-
@@ -57,6 +55,7 @@
+
Index: lams_build/lib/quartz/quartz-2.2.3.jar
===================================================================
diff -u -r7475d08afc280b5e2e5ddf04e8bf35e3166aaf80 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
Binary files differ
Index: lams_build/lib/quartz/quartz-2.3.2.jar
===================================================================
diff -u
Binary files differ
Index: lams_build/lib/quartz/quartz.module.xml
===================================================================
diff -u -r5661c79b661c18221c0eb5e32fe7ec54110e5a65 -r7a52ff105bdf91d903cd180e6b5bbf7bd2810b71
--- lams_build/lib/quartz/quartz.module.xml (.../quartz.module.xml) (revision 5661c79b661c18221c0eb5e32fe7ec54110e5a65)
+++ lams_build/lib/quartz/quartz.module.xml (.../quartz.module.xml) (revision 7a52ff105bdf91d903cd180e6b5bbf7bd2810b71)
@@ -24,7 +24,7 @@
-
+