Our server that hosts Mingle had an abrupt power failure that pulled the plug - no clean shutdown. After rebooting, Mingle refuses to start. The error log contians errors about active-mq (at end of post).
To "fix" this, we installed a new mingle installation, and copied its activemq-data folder over the one containing our "real" mingle installation. Mingle now starts, and everything appears to be working ok, but I'm a little nervous about our "solution".
What are the implications of what we have done, and is there a better way to fix this problem?
We are using mingle version 2.3.1
Stack Trace
[2010-03-02 12:25:08,380] [Thread-0] [org.apache.activemq.kaha.impl.container.MapContainerImpl] Failed to load container queue://mingle.history_changes_generation.cards
java.io.EOFException
at java.io.RandomAccessFile.readFully(Unknown Source)
at java.io.RandomAccessFile.readFully(Unknown Source)
at org.apache.activemq.kaha.impl.data.SyncDataFileReader.readItem(SyncDataFileReader.java:71)
at org.apache.activemq.kaha.impl.data.DataManagerImpl.readItem(DataManagerImpl.java:141)
at org.apache.activemq.kaha.impl.container.MapContainerImpl.load(MapContainerImpl.java:112)
at org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter.getMapContainer(KahaPersistenceAdapter.java:211)
at org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter.createQueueMessageStore(KahaPersistenceAdapter.java:106)
at org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFactoryImpl.java:80)
at org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:434)
at org.apache.activemq.broker.region.AbstractRegion.addDestination(AbstractRegion.java:120)
at org.apache.activemq.broker.region.RegionBroker.addDestination(RegionBroker.java:261)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
at org.apache.activemq.advisory.AdvisoryBroker.addDestination(AdvisoryBroker.java:147)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
at org.apache.activemq.broker.BrokerFilter.addDestination(BrokerFilter.java:142)
at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:149)
at org.apache.activemq.broker.region.AbstractRegion.start(AbstractRegion.java:94)
at org.apache.activemq.broker.region.RegionBroker.start(RegionBroker.java:176)
at org.apache.activemq.broker.TransactionBroker.start(TransactionBroker.java:112)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
at org.apache.activemq.broker.BrokerFilter.start(BrokerFilter.java:154)
at org.apache.activemq.broker.MutableBrokerFilter.start(MutableBrokerFilter.java:161)
at org.apache.activemq.broker.BrokerService.start(BrokerService.java:468)
at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBeanBrokerService.java:52)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1257)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:438)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:383)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:353)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:245)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:169)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:242)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:400)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:736)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:369)
at org.apache.xbean.spring.context.ResourceXmlApplicationContext.(ResourceXmlApplicationContext.java:64)
at org.apache.xbean.spring.context.ResourceXmlApplicationContext.(ResourceXmlApplicationContext.java:52)
at org.apache.activemq.xbean.XBeanBrokerFactory.createApplicationContext(XBeanBrokerFactory.java:96)
at org.apache.activemq.xbean.XBeanBrokerFactory.createBroker(XBeanBrokerFactory.java:52)
at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:71)
at org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:98)
at com.thoughtworks.mingle.ActiveMQServlet.init(Unknown Source)
at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433)
at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:256)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:612)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:139)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1218)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:500)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:448)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:147)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:117)
at org.mortbay.jetty.Server.doStart(Server.java:217)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:40)
at com.thoughtworks.mingle.Server$1.run(Unknown Source)
Comments
1 comment
Hey davisn
I would not recommend working with data from an activemq data directory that is not consistent. It looks like there might have been data corruption on the activemq data directory from the previous box.
My suggestion would be do the following.
Please sign in to leave a comment.