Return-Path: Delivered-To: apmail-activemq-dev-archive@www.apache.org Received: (qmail 66066 invoked from network); 9 Jul 2009 16:29:26 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 9 Jul 2009 16:29:26 -0000 Received: (qmail 96919 invoked by uid 500); 9 Jul 2009 16:29:36 -0000 Delivered-To: apmail-activemq-dev-archive@activemq.apache.org Received: (qmail 96893 invoked by uid 500); 9 Jul 2009 16:29:36 -0000 Mailing-List: contact dev-help@activemq.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@activemq.apache.org Delivered-To: mailing list dev@activemq.apache.org Received: (qmail 96883 invoked by uid 99); 9 Jul 2009 16:29:36 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jul 2009 16:29:36 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 09 Jul 2009 16:29:27 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 1136629A0012 for ; Thu, 9 Jul 2009 09:29:07 -0700 (PDT) Message-ID: <351427621.1247156947068.JavaMail.jira@brutus> Date: Thu, 9 Jul 2009 09:29:07 -0700 (PDT) From: "Gary Tully (JIRA)" To: dev@activemq.apache.org Subject: [jira] Resolved: (AMQ-2322) ClassCastException having relation to recovery of expired messages and vmQueueCursor pendingQueuePolicy In-Reply-To: <2053983917.1247156707008.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: ae95407df07c98740808b2ef9da0087c X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/activemq/browse/AMQ-2322?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Gary Tully resolved AMQ-2322. ----------------------------- Resolution: Fixed resolved in r792598 expired messages are now recovered and expired correctly > ClassCastException having relation to recovery of expired messages and vmQueueCursor pendingQueuePolicy > ------------------------------------------------------------------------------------------------------- > > Key: AMQ-2322 > URL: https://issues.apache.org/activemq/browse/AMQ-2322 > Project: ActiveMQ > Issue Type: Bug > Components: Broker > Affects Versions: 5.2.0 > Environment: all > Reporter: Gary Tully > Assignee: Gary Tully > Fix For: 5.3.0 > > > from: http://www.nabble.com/ClassCastException-having-relation-to-expired-messages-tp24287023p24287023.html > While testing ActiveMQ5.2.0, I have a question about expired message. > Note that testing messages are Persistent and using a queue, set message > expiration time to 10 seconds. configurations are same except destination > policy(using a vm queue cursor) as below > > > > > > > > > > > > > > > > > > Additionally, it turns out that the activemq broker actually does not > proactively purge expired messages from queues. so we set > a thread that periodically cleared my queues of expired messages by help of > this forum's advisor. > We suppose that a server is stopped unexpectedly when expired message leaves > on queue without disposed by the thread > After recovering a server, we will expect that remained messages including > both normal and expired message are loaded normally > However server stopped abnormally and some error occured while starting > ActiveMQ. Errors are like that > {code} > 2009-07-01 17:13:45,125 [main ] INFO BrokerService > - For help or more information please see: http://activemq.apache.org/ > 2009-07-01 17:13:45,421 [main ] INFO KahaStore > - Kaha Store using data directory > D:\apache\apache-activemq-5.2.0\binary\bin\..\data\kr-store\data > 2009-07-01 17:13:45,796 [main ] ERROR BrokerService > - Failed to start ActiveMQ JMS Message Broker. Reason: > java.lang.ClassCastException: > org.apache.activemq.command.ActiveMQObjectMessage > java.lang.ClassCastException: > org.apache.activemq.command.ActiveMQObjectMessage > at org.apache.activemq.broker.region.Queue.messageExpired(Queue.java:1114) > at org.apache.activemq.broker.region.Queue.messageExpired(Queue.java:1106) > at org.apache.activemq.broker.region.Queue$5.recoverMessage(Queue.java:173) > at > org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessage(RecoveryListenerAdapter.java:45) > at > org.apache.activemq.store.amq.RecoveryListenerAdapter.recoverMessageReference(RecoveryListenerAdapter.java:56) > at > org.apache.activemq.store.kahadaptor.KahaReferenceStore.recoverReference(KahaReferenceStore.java:82) > at > org.apache.activemq.store.kahadaptor.KahaReferenceStore.recover(KahaReferenceStore.java:93) > at > org.apache.activemq.store.amq.AMQMessageStore.recover(AMQMessageStore.java:481) > at org.apache.activemq.broker.region.Queue.initialize(Queue.java:167) > at > org.apache.activemq.broker.region.DestinationFactoryImpl.createDestination(DestinationFactoryImpl.java:83) > at > org.apache.activemq.broker.region.AbstractRegion.createDestination(AbstractRegion.java:434) > at > org.apache.activemq.broker.jmx.ManagedQueueRegion.createDestination(ManagedQueueRegion.java:56) > 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.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.jmx.ManagedRegionBroker.start(ManagedRegionBroker.java:103) > 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.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:1368) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1334) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:473) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409) > at java.security.AccessController.doPrivileged(Native Method) > at > org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380) > at > org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264) > at > org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:221) > at > org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185) > at > org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164) > at > org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429) > at > org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:729) > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:381) > 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:54) > at > org.apache.activemq.console.command.StartCommand.startBroker(StartCommand.java:115) > at > org.apache.activemq.console.command.StartCommand.runTask(StartCommand.java:74) > at > org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) > at > org.apache.activemq.console.command.ShellCommand.runTask(ShellCommand.java:129) > at > org.apache.activemq.console.command.AbstractCommand.execute(AbstractCommand.java:57) > at > org.apache.activemq.console.command.ShellCommand.main(ShellCommand.java:79) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:585) > at org.apache.activemq.console.Main.runTaskClass(Main.java:225) > at org.apache.activemq.console.Main.main(Main.java:106) > 2009-07-01 17:13:45,812 [main ] INFO BrokerService > - ActiveMQ Message Broker (localhost, null) is shutting down > 2009-07-01 17:13:45,828 [main ] INFO NetworkConnector > - Network Connector default-nc Stopped > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.