[jira] [Commented] (AMQ-3758) Recover scheduler database option

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (AMQ-3758) Recover scheduler database option

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/AMQ-3758?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14251855#comment-14251855 ]

Timothy Bish commented on AMQ-3758:

Given the scope of this change I would not expect it to be included in a 5.10.1 release as only bugfixes should go in there.  This change essentially rewrites the Job Scheduler Store and uses a different index and journal format.  It is possible to upgrade from old to new but having a point release do this really is not a good idea.  

> Recover scheduler database option
> ---------------------------------
>                 Key: AMQ-3758
>                 URL: https://issues.apache.org/jira/browse/AMQ-3758
>             Project: ActiveMQ
>          Issue Type: New Feature
>          Components: Message Store
>    Affects Versions: 5.5.0
>            Reporter: Sergei Sokolov
>            Assignee: Timothy Bish
>              Labels: scheduler
>             Fix For: 5.10.1, 5.11.0
> I am not sure why, but Scheduler database got corrupted, and some messages couldn't be delivered to a broker. I got many exceptions similar to:
> {code}
> 2012-03-02 03:26:08,234 | ERROR | JMS Failed to schedule job | org.apache.activemq.broker.scheduler.JobSchedulerImpl | JobScheduler:JMS
> java.io.IOException: Could not locate data file <correct-file-path>\db-2.log
>         at org.apache.kahadb.journal.Journal.getDataFile(Journal.java:350)
>         at org.apache.kahadb.journal.Journal.read(Journal.java:597)
>         at org.apache.activemq.broker.scheduler.JobSchedulerStore.getPayload(JobSchedulerStore.java:315)
>         at org.apache.activemq.broker.scheduler.JobSchedulerImpl.fireJob(JobSchedulerImpl.java:421)
>         at org.apache.activemq.broker.scheduler.JobSchedulerImpl.mainLoop(JobSchedulerImpl.java:473)
>         at org.apache.activemq.broker.scheduler.JobSchedulerImpl.run(JobSchedulerImpl.java:429)
>         at java.lang.Thread.run(Unknown Source)
> {code}
> The problem is that there is no way to restore the database like you can if you are working with the main ActiveMQ database. You can fix the main database by specifying the following configuration:
> {code}
> <persistenceAdapter>  
>             <kahaDB directory="${activemq.base}/data/kahadb"
>                     ignoreMissingJournalfiles="true"
>                     checkForCorruptJournalFiles="true"
>                     checksumJournalFiles="true" />  
> </persistenceAdapter>
> {code}
> It would be nice to have the same feature for the scheduler database.

This message was sent by Atlassian JIRA