Quartz Job Scheduling Framework

book cover
Quartz Job Scheduling Framework
By Chuck Cavaness
Publisher: Prentice Hall
Pub Date: June 08, 2006
Print ISBN-10: 0-13-188670-3
Print ISBN-13: 978-0-13-188670-4
Pages: 360

Table of Contents  | Index

Integrate Powerful Scheduling Capabilities into Any Java Application or Environment


If your Java applications depend on tasks that must be performed at specific times or if your systems have recurring maintenance jobs that could be automated, then you need Quartz: the first full-featured, open source job scheduling framework.


Quartz Job Scheduling Framework reveals how to make the most of Quartz with virtually any Java EE or Java SE application, from the smallest standalone program to the largest e-commerce application. Best-selling author Chuck Cavaness shows developers and architects how to integrate Quartz with leading open source Java frameworks, including Hibernate and Struts.


Using practical examples, Cavaness illuminates everything from basic job scheduling to the use of Quartz in clustered environments and enterprise workflow applications. To jumpstart your own Quartz projects, he also presents a full chapter of "cookbook" sample code. Coverage includes


• Understanding the value of scheduling in the enterprise environment

• Installing and configuring the Quartz framework

• Scheduling jobs, and triggering them on simple or complex schedules

• Using JobStores to persist schedule information between JVM restarts

• Using Listeners to receive callbacks from Quartz when key events occur

• Extending Quartz with Plugins

• Accessing Quartz through a Web-based graphical interface

• Clustering Quartz applications, both horizontally and vertically

• Using RMI to schedule Quartz remotely

• Leveraging Quartz to automate maintenance and workflow


book cover
Quartz Job Scheduling Framework
By Chuck Cavaness
Publisher: Prentice Hall
Pub Date: June 08, 2006
Print ISBN-10: 0-13-188670-3
Print ISBN-13: 978-0-13-188670-4
Pages: 360

Table of Contents  | Index

   About the Author
    Chapter 1.  Scheduling in the Enterprise
      What Is Job Scheduling?
      Why job Scheduling Is Important
      Uses for Job Schedulers in the Enterprise
      Uses for Job Schedulers in NonEnterprise
      Job scheduling Versus Workflow
      What about Alternative Solutions?
    Chapter 2.  Getting Started with Quartz
      History of the Quartz Framework
      Downloading and Installing Quartz
      Building Quartz from Source
      Getting Help from the Quartz Community
      Who's Using Quartz?
    Chapter 3.  Hello, Quartz
      The "Hello, World" Quartz Project
      Scheduling the Quartz ScanDirectoryJob
      Scheduling a Quartz Job Declaratively
      Packaging the Quartz Application
    Chapter 4.  Scheduling Jobs
      The Quartz Scheduler
      The Quartz SchedulerFactory
      Managing the Scheduler
      Managing Jobs
      Volatility, Durability, and Recoverability
      Quick Java Thread Overview
      Thread Usage in Quartz
      Understanding Quartz Triggers
    Chapter 5.  Cron Triggers and More
      Quick Lesson in Cron
      Using the Quartz CronTrigger
      The Cron Expression Format
      Using Start and End Dates with CronTrigger
      Using TriggerUtils with the CronTrigger
      Using CronTriggers in the JobInitializationPlugin
      Cron Expressions Cookbook
      Creating a Fire-Now Trigger
    Chapter 6.  JobStores and Persistence
      Job Storage
      Job Storage in Quartz
      Using Memory to Store Scheduler Information
      Using Persistent JobStores
      Using the Database for Job Storage
      Creating the Quartz Database Structure
      Using JobStoreTX
      Configuring a DataSource for JobStoreTX
      Running Quartz with JobStoreTX
      Using Memory to Store Scheduler Information
      Using the JobStoreCMT
      Configuring Datasources for JobStoreCMT
      Improving Performance with Persistent JobStores
      Creating New JobStores
    Chapter 7.  Implementing Quartz Listeners
      Listeners as Extension Points
      Implementing a Listener
      Listening for Job Events
      Listening for Trigger Events
      Listening for Scheduler Events
      Using the FileScanListener
      Implementing Listeners in the quartz_jobs.xml File
      Thread Use in Listeners
      Uses of the Quartz Listeners
    Chapter 8.  Using Quartz Plug-Ins
      What Is a Plug-In?
      Creating a Quartz Plug-In
      Registering Your Plug-Ins
      Using Multiple Plug-Ins
      Quartz Utility Plug-Ins
    Chapter 9.  Using Quartz Remotely
      Why RMI with Quartz?
      Brief Overview of Java RMI
      Requirements of RMI
      Creating a Quartz RMI Server
      Using the RMI Registry
      Creating the RMI Client
      Testing the RMI Server and Client
    Chapter 10.  Using Quartz with J2EE
      If I Have J2EE, Why Do I Need Quartz?
      Using the J2EE Container's DataSource
      Using Other J2EE Resources
      The EJB 2.1 Specification: Finally Some Light
    Chapter 11.  Clustering Quartz
      What Does Clustering Mean to Quartz?
      How Clustering Works in Quartz
      Configuring Quartz to Use Clustering
      Running the Quartz Cluster Nodes
      Quartz Clustering Cookbook
    Chapter 12.  Quartz Cookbook
      Working with the Scheduler
      Working with Jobs
    Chapter 13.  Quartz and Web Applications
      Using Quartz Within a Web Application
      Integrating Quartz
      Using Quartz with the Struts Framework
      The QuartzInitializerServlet to the Rescue
      Using a ServletContextListener
      Introducing the Quartz Web Application
    Chapter 14.  Using Quartz with Workflow
      What Is Workflow?
      Job Chaining in Quartz
      Quick Introduction to OSWorkflow
      Integration of Quartz with OSWorkflow
      Creating a Workflow Job
    Appendix A.  Quartz Configuration Reference
      The Main Quartz Properties
      Configuring the Quartz ThreadPool
      Configuring Quartz Listeners
      Configuring a TriggerListener
      Configuring Quartz Plug-Ins
      Configuring Quartz RMI Settings
      Configuring JobStore Settings
      Configuring the JobStoreTX JobStore
      Configuring JobStoreCMT
      Configuring Quartz Datasources
      Configuring a Datasource Using a Custom ConnectionProvider