activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrey Zavodnik (JIRA)" <j...@apache.org>
Subject [jira] [Created] (AMQ-4683) Scheduler discards overdue messages on startup
Date Wed, 14 Aug 2013 14:07:48 GMT
Andrey Zavodnik created AMQ-4683:
------------------------------------

             Summary: Scheduler discards overdue messages on startup
                 Key: AMQ-4683
                 URL: https://issues.apache.org/jira/browse/AMQ-4683
             Project: ActiveMQ
          Issue Type: Bug
          Components: Broker
    Affects Versions: 5.8.0
         Environment: Windows 7 64bit, JDK 1.6.0_26
            Reporter: Andrey Zavodnik
            Priority: Critical


When message is scheduled for a delivery (using AMQ_SCHEDULED_PERIOD property) it is not posted
to the queue, but saved to the scheduler’s repository instead. If Broker instance is shut
down at the time for which the message is scheduled for a delivery, the scheduler will try
to process the message at the next time broker is started up. Due to a bug in the scheduler
implementation such messages may be dismissed rather than posted to the queue depending on
the racing conditions inside the JVM.

Actual bug resides in org.apache.activemq.broker.scheduler.SchedulerBroker.getInternalScheduler()
method. 
This method first calls JobSchedulerStoreImpl. getJobScheduler(String name) method which in
turn creates an instance of runnable JobSchedulerImpl class and starts it.
Then SchedulerBroker registers itselfas a listener of the newly created JobSchedulerImpl.
Unfortunately this may happen after the JobSchedulerImpl have dismissed all the “missed”
tasks as “fired” as there were no listeners configured.


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message