ActiveMQ中的队列已损坏

时间:2011-11-21 18:25:48

标签: activemq

我通常会在activemq5.4.2中看到已损坏的队列,这意味着队列格式不正确,我不得不删除kahaDB文件并退回代理以解决此问题。存储在队列中的所有消息都会丢失。如何防止这个损坏的队列而不丢失数据?

以下是经纪人的日志, 错误|无法重置批处理| org.apache.activemq.store.kahadb.KahaDBStore | ActiveMQ Broker [AMQBROKER-TEST]调度程序 java.lang.IllegalStateException:未加载PageFile         在org.apache.kahadb.page.PageFile.assertLoaded(PageFile.java:715)         在org.apache.kahadb.page.PageFile.tx(PageFile.java:239)         在org.apache.activemq.store.kahadb.KahaDBStore $ KahaDBMessageStore.resetBatching(KahaDBStore.java:510)         在org.apache.activemq.store.ProxyMessageStore.resetBatching(ProxyMessageStore.java:93)         在org.apache.activemq.broker.region.cursors.QueueStorePrefetch.resetBatch(QueueStorePrefetch.java:85)         在org.apache.activemq.broker.region.cursors.AbstractStoreCursor.fillBatch(AbstractStoreCursor.java:254)         在org.apache.activemq.broker.region.cursors.AbstractStoreCursor.reset(AbstractStoreCursor.java:108)         在org.apache.activemq.broker.region.cursors.StoreQueueCursor.reset(StoreQueueCursor.java:157)         在org.apache.activemq.broker.region.Queue.doBrowse(Queue.java:1026)         在org.apache.activemq.broker.region.Queue.expireMessages(Queue.java:783)         在org.apache.activemq.broker.region.Queue.access $ 100(Queue.java:83)         在org.apache.activemq.broker.region.Queue $ 2.run(Queue.java:123)         at org.apache.activemq.thread.SchedulerTimerTask.run(SchedulerTimerTask.java:33)         在java.util.TimerThread.mainLoop(Timer.java:512)         在java.util.TimerThread.run(Timer.java:462) 信息|传输失败:java.net.SocketException:管道损坏| org.apache.activemq.broker.TransportConnection.Transport |异步异常处理程序

警告|无法注册MBean:org.apache.activemq:BrokerName = AMQBROKER-TEST,Type = Queue,Destination = _ onEvent& X171249188Y1Z  信息|传输失败:java.net.SocketException:管道损坏  信息|传输失败:java.net.SocketException:连接重置  信息|传输失败:java.io.EOFException

0 个答案:

没有答案