1. ----------------Source code---------------------------------------------------------
public class StartAndStop {
public static void main(String[] args) throws Exception {
//Use mysql database
SchedulerFactory sf = new org.quartz.impl.StdSchedulerFactory("bin/quartz_db.properties");
Scheduler sched = sf.getScheduler();
sched.start();
ched.shutdown(); //immediately shutdown after start
}
}
2. ----------------quartz_db.properties content---------------------------------------------------------
#============================================================================
# Configure Main Scheduler Properties
#============================================================================
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = AUTO
#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 15
org.quartz.threadPool.threadPriority = 5
#============================================================================
# Configure JobStore
#============================================================================
org.quartz.jobStore.misfireThreshold = 60000
#org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate
org.quartz.jobStore.useProperties = false
org.quartz.jobStore.dataSource = myDS
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
#============================================================================
# Configure Datasources
#============================================================================
org.quartz.dataSource.myDS.driver = org.gjt.mm.mysql.Driver
org.quartz.dataSource.myDS.URL = jdbc:
mysql://localhost/engine
org.quartz.dataSource.myDS.user = quartz
org.quartz.dataSource.myDS.password = quartz
org.quartz.dataSource.myDS.maxConnections = 10
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport initialize
信息: Using thread monitor-based data access locking (synchronization).
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport cleanVolatileTriggerAndJobs
信息: Removed 0 Volatile Trigger(s).
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport cleanVolatileTriggerAndJobs
信息: Removed 0 Volatile Job(s).
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport recoverJobs
信息: Freed 0 triggers from 'acquired' / 'blocked' state.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport recoverJobs
信息: Recovering 0 jobs that were in-progress at the time of the last shut-down.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport recoverJobs
信息: Recovery complete.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport recoverJobs
信息: Removed 0 'complete' triggers.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport recoverJobs
信息: Removed 0 stale fired job entries.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreTX initialize
信息: JobStoreTX initialized.
2005-7-15 10:41:30 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler 'TestScheduler' initialized from the specified file : 'bin/quartz_db.properties'
2005-7-15 10:41:30 org.quartz.impl.StdSchedulerFactory instantiate
信息: Quartz scheduler version: @version.major@.@version.minor@.@version.iteration@
2005-7-15 10:41:30 org.quartz.core.QuartzScheduler start
信息: Scheduler TestScheduler_$_NON_CLUSTERED started.
2005-7-15 10:41:30 org.quartz.core.QuartzScheduler shutdown
信息: Scheduler TestScheduler_$_NON_CLUSTERED shutting down.
2005-7-15 10:41:30 org.quartz.core.QuartzScheduler pause
信息: Scheduler TestScheduler_$_NON_CLUSTERED paused.
2005-7-15 10:41:30 org.quartz.core.QuartzScheduler shutdown
信息: Scheduler TestScheduler_$_NON_CLUSTERED shutdown complete.
2005-7-15 10:41:30 org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler manage
严重: MisfireHandler: Error handling misfires: Pool not open
java.lang.IllegalStateException: Pool not open
at org.apache.commons.pool.BaseObjectPool.assertOpen(BaseObjectPool.java:123)
at org.apache.commons.pool.impl.GenericObjectPool.returnObject(GenericObjectPool.java:898)
at org.apache.commons.dbcp.PoolableConnection.close(PoolableConnection.java:114)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:225)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.closeConnection(JobStoreSupport.java:2132)
at org.quartz.impl.jdbcjobstore.JobStoreTX.doRecoverMisfires(JobStoreTX.java:1320)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.manage(JobStoreSupport.java:2284)
at org.quartz.impl.jdbcjobstore.JobStoreSupport$MisfireHandler.run(JobStoreSupport.java:2302)
2005-7-15 10:41:30 org.quartz.core.ErrorLogger schedulerError
严重: An error occured while scanning for the next trigger to fire.
org.quartz.JobPersistenceException: Failed to obtain DB connection from data source 'myDS': org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause: Could not create a validated object [See nested exception: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause: Could not create a validated object]
at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:543)
at org.quartz.impl.jdbcjobstore.JobStoreTX.acquireNextTrigger(JobStoreTX.java:1173)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:232)
* Nested Exception (Underlying Cause) ---------------
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause:
java.util.NoSuchElementException: Could not create a validated object
at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:851)
at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:140)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:518)
at org.quartz.utils.PoolingConnectionProvider.getConnection(PoolingConnectionProvider.java:180)
at org.quartz.utils.DBConnectionManager.getConnection(DBConnectionManager.java:119)
at org.quartz.impl.jdbcjobstore.JobStoreSupport.getConnection(JobStoreSupport.java:526)
at org.quartz.impl.jdbcjobstore.JobStoreTX.acquireNextTrigger(JobStoreTX.java:1173)
at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:232)