You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Bo Xu (JIRA)" <ji...@apache.org> on 2014/02/21 02:12:20 UTC

[jira] [Updated] (AMQ-5069) scheduled delivery not work when persistent="false" schedulerSupport="true"

     [ https://issues.apache.org/jira/browse/AMQ-5069?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Bo Xu updated AMQ-5069:
-----------------------

    Summary: scheduled delivery not work when persistent="false"  schedulerSupport="true"  (was: scheduled delivery did not work when persistent="false"  schedulerSupport="true")

> scheduled delivery not work when persistent="false"  schedulerSupport="true"
> ----------------------------------------------------------------------------
>
>                 Key: AMQ-5069
>                 URL: https://issues.apache.org/jira/browse/AMQ-5069
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.9.0
>            Reporter: Bo Xu
>            Priority: Critical
>
> with version 5.9, when configured in activemq.xml with: persistent="false"  schedulerSupport="true", scheduled delivery does NOT work. The message is immediately ready for delivery, 
> Here is my fix, please review it and make it official.
>  
> diff ../activemq-parent-5.9.0/activemq-broker/src/main/java/org/apache/activemq/broker/BrokerService.java My_BrokerService.java 
> 647c647
> <         LOG.info("Apache ActiveMQ {} ({}, {}) is starting", new Object[]{ getBrokerVersion(), getBrokerName(), brokerId });
> ---
> >         LOG.info("Modified Apache ActiveMQ {} ({}, {}) is starting", new Object[]{ getBrokerVersion(), getBrokerName(), brokerId });
> 1806c1806,1807
> <         if (!isSchedulerSupport()) {
> ---
> >         //if (!isSchedulerSupport()) @BOXU: always true, if !isPersistent()
> >         if (!this.schedulerSupport) {
> 1814,1816c1815
> <             if (!isPersistent()) {
> <                 return null;
> <             }
> ---
> >             if (isPersistent()) {
> 1818,1821c1817,1835
> <             try {
> <                 PersistenceAdapter pa = getPersistenceAdapter();
> <                 if (pa != null && pa instanceof JobSchedulerStore) {
> <                     this.jobSchedulerStore = (JobSchedulerStore) pa;
> ---
> >                 try {
> >                     PersistenceAdapter pa = getPersistenceAdapter();
> >                     if (pa != null && pa instanceof JobSchedulerStore) {
> >                         this.jobSchedulerStore = (JobSchedulerStore) pa;
> >                         configureService(jobSchedulerStore);
> >                         return this.jobSchedulerStore;
> >                     }
> >                     //else return null;
> >                 } catch (IOException e) {
> >                     throw new RuntimeException(e);
> >                 }
> >                                               } 
> >             else {
> >                 LOG.info("Creating user configured jobSchedulerStore, fixed by BOXU, Paypal");
> >     
> >                 try {
> >                     String clazz = "org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl";
> >                     jobSchedulerStore = (JobSchedulerStore) getClass().getClassLoader().loadClass(clazz).newInstance();
> >                     jobSchedulerStore.setDirectory(getSchedulerDirectoryFile());
> 1823c1837,1840
> <                     return this.jobSchedulerStore;
> ---
> >                     jobSchedulerStore.start();
> >                     LOG.info("JobScheduler using directory: {}", getSchedulerDirectoryFile());
> >                 } catch (Exception e) {
> >                     throw new RuntimeException(e);
> 1825,1837d1841
> <             } catch (IOException e) {
> <                 throw new RuntimeException(e);
> <             }
> < 
> <             try {
> <                 String clazz = "org.apache.activemq.store.kahadb.scheduler.JobSchedulerStoreImpl";
> <                 jobSchedulerStore = (JobSchedulerStore) getClass().getClassLoader().loadClass(clazz).newInstance();
> <                 jobSchedulerStore.setDirectory(getSchedulerDirectoryFile());
> <                 configureService(jobSchedulerStore);
> <                 jobSchedulerStore.start();
> <                 LOG.info("JobScheduler using directory: {}", getSchedulerDirectoryFile());
> <             } catch (Exception e) {
> <                 throw new RuntimeException(e);



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)