You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by Samir Faci <sa...@esamir.com> on 2010/11/04 21:34:28 UTC

activeMQ recoving from a crash...

So, I was going to test the recovery mechanism of activeMQ.  I looked
at the default config and it seems like it was using
kahadb by default which is great.  I sent a bunch of messages to the
activeMQ broker, hard killed it, and in theory it should recover,
and replay the messages I sent.

Well, when I try to restart it after the kill -9 (which is how I
killed it ) I get the following output:


%> ./activemq console
INFO: Using default configuration
(you can configure options in one of these file: /etc/default/activemq
/home/samirf/.activemqrc)

INFO: Invoke the following command to create a configuration file
./activemq setup [ /etc/default/activemq | /home/samirf/.activemqrc ]

INFO: Using java '/usr/bin/java'
INFO: Starting in foreground, this is just for debugging purposes
(stop process by pressing CTRL+C)
Java Runtime: Sun Microsystems Inc. 1.6.0_20 /usr/lib/jvm/java-6-openjdk/jre
  Heap sizes: current=502464k  free=497221k  max=502464k
    JVM args: -Xms512M -Xmx512M
-Dorg.apache.activemq.UseDedicatedTaskRunner=true
-Djava.util.logging.config.file=logging.properties
-Dcom.sun.management.jmxremote
-Dactivemq.classpath=/home/samirf/projects/apache-activemq-5.4.1/conf;
-Dactivemq.home=/home/samirf/projects/apache-activemq-5.4.1
-Dactivemq.base=/home/samirf/projects/apache-activemq-5.4.1
ACTIVEMQ_HOME: /home/samirf/projects/apache-activemq-5.4.1
ACTIVEMQ_BASE: /home/samirf/projects/apache-activemq-5.4.1
Loading message broker from: xbean:activemq.xml
 WARN | destroyApplicationContextOnStop parameter is deprecated,
please use shutdown hooks instead
 INFO | PListStore:/home/samirf/projects/apache-activemq-5.4.1/data/localhost/tmp_storage
started
 INFO | Using Persistence Adapter:
KahaDBPersistenceAdapter[/home/samirf/projects/apache-activemq-5.4.1/data/kahadb]
 INFO | KahaDB is version 2
 INFO | Recovering from the journal ...
 INFO | Recovery replayed 1 operations from the journal in 0.022 seconds.
 INFO | ActiveMQ 5.4.1 JMS Message Broker (localhost) is starting
 INFO | For help or more information please see: http://activemq.apache.org/
 INFO | Scheduler using directory:
/home/samirf/projects/apache-activemq-5.4.1/data/localhost/scheduler
ERROR | Failed to start ActiveMQ JMS Message Broker. Reason:
java.io.EOFException: Chunk stream does not exist at page: 0
java.io.EOFException: Chunk stream does not exist at page: 0
        at org.apache.kahadb.page.Transaction$2.readPage(Transaction.java:454)
        at org.apache.kahadb.page.Transaction$2.<init>(Transaction.java:431)
        at org.apache.kahadb.page.Transaction.openInputStream(Transaction.java:428)
        at org.apache.kahadb.page.Transaction.load(Transaction.java:404)
        at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
        at org.apache.activemq.broker.scheduler.JobSchedulerStore$3.execute(JobSchedulerStore.java:250)
        at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
        at org.apache.activemq.broker.scheduler.JobSchedulerStore.doStart(JobSchedulerStore.java:239)
        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
        at org.apache.activemq.broker.scheduler.SchedulerBroker.getStore(SchedulerBroker.java:198)
        at org.apache.activemq.broker.scheduler.SchedulerBroker.getInternalScheduler(SchedulerBroker.java:185)

any suggestion??


--
Samir

Re: activeMQ recoving from a crash...

Posted by Norman Maurer <no...@apache.org>.
Hi,

its a known bug and fixed in current trunk (5.5-SNAPSHOT).

See: https://issues.apache.org/activemq/browse/AMQ-2935

Bye,
Norman

2010/11/4 Samir Faci <sa...@esamir.com>:
> So, I was going to test the recovery mechanism of activeMQ.  I looked
> at the default config and it seems like it was using
> kahadb by default which is great.  I sent a bunch of messages to the
> activeMQ broker, hard killed it, and in theory it should recover,
> and replay the messages I sent.
>
> Well, when I try to restart it after the kill -9 (which is how I
> killed it ) I get the following output:
>
>
> %> ./activemq console
> INFO: Using default configuration
> (you can configure options in one of these file: /etc/default/activemq
> /home/samirf/.activemqrc)
>
> INFO: Invoke the following command to create a configuration file
> ./activemq setup [ /etc/default/activemq | /home/samirf/.activemqrc ]
>
> INFO: Using java '/usr/bin/java'
> INFO: Starting in foreground, this is just for debugging purposes
> (stop process by pressing CTRL+C)
> Java Runtime: Sun Microsystems Inc. 1.6.0_20 /usr/lib/jvm/java-6-openjdk/jre
>  Heap sizes: current=502464k  free=497221k  max=502464k
>    JVM args: -Xms512M -Xmx512M
> -Dorg.apache.activemq.UseDedicatedTaskRunner=true
> -Djava.util.logging.config.file=logging.properties
> -Dcom.sun.management.jmxremote
> -Dactivemq.classpath=/home/samirf/projects/apache-activemq-5.4.1/conf;
> -Dactivemq.home=/home/samirf/projects/apache-activemq-5.4.1
> -Dactivemq.base=/home/samirf/projects/apache-activemq-5.4.1
> ACTIVEMQ_HOME: /home/samirf/projects/apache-activemq-5.4.1
> ACTIVEMQ_BASE: /home/samirf/projects/apache-activemq-5.4.1
> Loading message broker from: xbean:activemq.xml
>  WARN | destroyApplicationContextOnStop parameter is deprecated,
> please use shutdown hooks instead
>  INFO | PListStore:/home/samirf/projects/apache-activemq-5.4.1/data/localhost/tmp_storage
> started
>  INFO | Using Persistence Adapter:
> KahaDBPersistenceAdapter[/home/samirf/projects/apache-activemq-5.4.1/data/kahadb]
>  INFO | KahaDB is version 2
>  INFO | Recovering from the journal ...
>  INFO | Recovery replayed 1 operations from the journal in 0.022 seconds.
>  INFO | ActiveMQ 5.4.1 JMS Message Broker (localhost) is starting
>  INFO | For help or more information please see: http://activemq.apache.org/
>  INFO | Scheduler using directory:
> /home/samirf/projects/apache-activemq-5.4.1/data/localhost/scheduler
> ERROR | Failed to start ActiveMQ JMS Message Broker. Reason:
> java.io.EOFException: Chunk stream does not exist at page: 0
> java.io.EOFException: Chunk stream does not exist at page: 0
>        at org.apache.kahadb.page.Transaction$2.readPage(Transaction.java:454)
>        at org.apache.kahadb.page.Transaction$2.<init>(Transaction.java:431)
>        at org.apache.kahadb.page.Transaction.openInputStream(Transaction.java:428)
>        at org.apache.kahadb.page.Transaction.load(Transaction.java:404)
>        at org.apache.kahadb.page.Transaction.load(Transaction.java:361)
>        at org.apache.activemq.broker.scheduler.JobSchedulerStore$3.execute(JobSchedulerStore.java:250)
>        at org.apache.kahadb.page.Transaction.execute(Transaction.java:728)
>        at org.apache.activemq.broker.scheduler.JobSchedulerStore.doStart(JobSchedulerStore.java:239)
>        at org.apache.activemq.util.ServiceSupport.start(ServiceSupport.java:53)
>        at org.apache.activemq.broker.scheduler.SchedulerBroker.getStore(SchedulerBroker.java:198)
>        at org.apache.activemq.broker.scheduler.SchedulerBroker.getInternalScheduler(SchedulerBroker.java:185)
>
> any suggestion??
>
>
> --
> Samir
>