Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on Apr 24th, 2012  |  syntax: None  |  size: 2.96 KB  |  hits: 68  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. Quartz Trigger getting in BLOCKED state as soon the server starts in a cluster
  2. org.quartz.scheduler.instanceName = TestScheduler
  3. org.quartz.scheduler.skipUpdateCheck = true
  4. org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
  5. org.quartz.threadPool.threadCount = 25
  6. org.quartz.threadPool.threadPriority = 5
  7. org.quartz.scheduler.wrapJobExecutionInUserTransaction = false
  8. org.quartz.jobStore.misfireThreshold = 60000
  9. org.quartz.dataSource.DSPE.jndiURL = mi_pe
  10. org.quartz.dataSource.DSPE.jndiAlwaysLookup = true
  11. org.quartz.dataSource.DSADMIN.jndiURL = mi_admin
  12. org.quartz.dataSource.DSADMIN.jndiAlwaysLookup = true
  13. org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreCMT
  14. org.quartz.jobStore.driverDelegateClass =  org.quartz.impl.jdbcjobstore.oracle.weblogic.WebLogicOracleDelegate
  15. org.quartz.jobStore.dataSource = DSPE
  16. org.quartz.jobStore.nonManagedTXDataSource = DSADMIN
  17. org.quartz.jobStore.tablePrefix = q_
  18. org.quartz.jobStore.useProperties = true
  19. org.quartz.jobStore.isClustered = true
  20. org.quartz.scheduler.interruptJobsOnShutdown=true
  21.        
  22. Cluster cluster = CacheFactory.ensureCluster();
  23.         Member mySelf = cluster.getLocalMember();
  24.         int myId = mySelf.getId();
  25.  
  26.         Properties quartzProps = new Properties();
  27.         ClassLoader mine = getClass().getClassLoader();
  28.  
  29.         quartzProps.load(mine.getResourceAsStream(QUARTZ_PROPERTIES_SRC));
  30.  
  31.         quartzProps.setProperty(QUARTZ_INSTANCE_PROPERTY,
  32.                 QUARTZ_INSTANCE_PREFIX + myId);
  33.  
  34.         log.info("Creating quartz factory with member id "+myId+
  35.                 ". Coherence cluster member UID is "+mySelf.getUid());
  36.  
  37.         SchedulerFactory factory = new StdSchedulerFactory(quartzProps);
  38.         Scheduler scheduler = factory.getScheduler();
  39.         scheduler.getContext().put("context",getServletContext());
  40.         scheduler.start();
  41.  
  42.         this.scheduler = scheduler;
  43.  
  44.         String [] groupNames = scheduler.getJobGroupNames();
  45.  
  46.         for (String groupName : groupNames) {
  47.  
  48.             log.info("Listing group name "+groupName);
  49.  
  50.             String [] jobNames = scheduler.getJobNames(groupName);
  51.  
  52.             for (String jobName : jobNames) {
  53.  
  54.                 log.info("There is a job "+jobName+" in group "+groupName);
  55.  
  56.                 JobDetail jd = scheduler.getJobDetail(jobName, groupName);
  57.  
  58.                 log.info("Details: "+jd.getFullName()+":"+
  59.                         jd.getDescription());
  60.  
  61.             }
  62.  
  63.         }
  64.  
  65.         JobDetail myDetails = scheduler.getJobDetail(HOURLY_JOB_NAME,
  66.                 MY_GROUP_NAME);
  67.  
  68.         if (myDetails == null) {
  69.             // job doesn't exist?
  70.  
  71.             JobDetail myDetail = new JobDetail(HOURLY_JOB_NAME,
  72.                     MY_GROUP_NAME, HourlyReporter.class);
  73.  
  74.             Trigger trigger = new CronTrigger(HOURLY_TRIGGER_NAME,
  75.                     MY_GROUP_NAME, "0 1 * ? * *");
  76.  
  77.             log.info("Created a new reporter job");
  78.  
  79.             myDetail.setRequestsRecovery(true);
  80.  
  81.             scheduler.scheduleJob(myDetail, trigger);
  82.  
  83.         }