This is the second part of Quartz Scheduler framework.In the first part we saw the basic features.
In this blog we are going to focus on some advanced feature required features like (Exception management, Clustering, Transaction Management) which may be used by the enterprise products.
Terracotta acquired Quartz company .Previously they have acquired Ehcache.

TerracottaJobStore is used to store scheduling information (job, triggers and calendars) within a Terracotta server.
TerracottaJobStore is much more performant than utilizing a database for storing scheduling data (via JDBC-JobStore), and yet offers clustering features such as load-balancing and fail-over.
Jobs can be configuured in JTA Transaction. For this following property needs to be set true.
org.quartz.scheduler.wrapJobExecutionInUserTransaction" -=true
This ensures that whenever a Job execute method starts
Transaction begin() method will be called by the scheduler and on completing the execute method commit() will be called.
Pricing:
Quartz provides these enterprise features like clustering, JTA support free under apache licensing.
In this blog we are going to focus on some advanced feature required features like (Exception management, Clustering, Transaction Management) which may be used by the enterprise products.
Terracotta acquired Quartz company .Previously they have acquired Ehcache.

TerracottaJobStore is used to store scheduling information (job, triggers and calendars) within a Terracotta server.
TerracottaJobStore is much more performant than utilizing a database for storing scheduling data (via JDBC-JobStore), and yet offers clustering features such as load-balancing and fail-over.
Configuration for TerracottaJobStore
org.quartz.jobStore.class = org.terracotta.quartz.TerracottaJobStore
org.quartz.jobStore.tcConfigUrl = localhost:9510
Job Exception Handling :
In case of exception occurs during Job Execution we can have various options like firing
the Job again or we may choose for deleting the scheduling the job all the
JobExecutionException e2 =
new JobExecutionException(e);
Unscheduling: e.setUnscheduleAllTriggers(true);
Refirring : e.refireImmediately();
gracefull shutdown : sched.shutdown(true);
Clustering Support:
- High Availability - We need to be able to restart your application without losing scheduled jobs
- Scale Out - Your application now needs more than one node to handle the load it receives and you want your scheduled jobs to distribute across nodes.
- You are using a database to persist and or scale your scheduler and you are seeing DB load/locking issues and or you find it two difficult to setup or maintain.
Jobs can be configuured in JTA Transaction. For this following property needs to be set true.
org.quartz.scheduler.wrapJobExecutionInUserTransaction" -=true
This ensures that whenever a Job execute method starts
Transaction begin() method will be called by the scheduler and on completing the execute method commit() will be called.
Pricing:
Quartz provides these enterprise features like clustering, JTA support free under apache licensing.