Hi Jarek,
some similar behaviour is expressed by issue
AMQ-2149<https://issues.apache.org/activemq/browse/AMQ-2149>.
One aspect of the problem is related to the persistent index used by the
Kaha store. You could try using a VM (in memory) index to see if it helps in
your case.
To configure set the setPersistentIndex attribute to false as follows:
broker = ....
AMQPersistenceAdapterFactory persistenceFactory = new
AMQPersistenceAdapterFactory();
persistenceFactory.setDataDirectory(dataDirFile);
persistenceFactory.setPersistentIndex(false);
broker.setPersistenceFactory(persistenceFactory);
hope this helps,
Gary.
2009/3/26 Jarosław Pałka <[email protected]>
> Sorry I forgot to copy embedded broker configuration:
>
> public abstract class UMMClientConfiguration extends ConfigurationSupport{
>
> private static final String OUTGOING_LOCAL_TOPIC = "OUTGOING";
> private static final String INCOMING_LOCAL_TOPIC = "INCOMING";
>
> @Bean
> public BrokerService brokerService() throws Exception {
> XBeanBrokerService broker = new XBeanBrokerService();
> broker.setUseJmx(false);
> broker.setPersistent(true);
> //broker.
> broker.addJmsConnector(incomingTopicConnector());
> broker.addJmsConnector(outgoingTopicConnector());
> broker.addConnector("vm://localhost");
> broker.start();
> return broker;
> }
>
> @Bean
> public JmsTopicConnector outgoingTopicConnector()
> throws UnknownHostException, URISyntaxException {
> JmsTopicConnector topicConnector = new JmsTopicConnector();
> topicConnector
>
> .setOutboundTopicConnectionFactory(outboundTopicConnectionFactory());
> topicConnector.setLocalClientId("local");
> topicConnector
> .setOutboundTopicBridges(new OutboundTopicBridge[] {
> outboundTopicBridge() });
> return topicConnector;
> }
>
> @Bean
> public TopicConnectionFactory outboundTopicConnectionFactory()
> throws UnknownHostException, URISyntaxException {
> ActiveMQConnectionFactory activeMQConnectionFactory = new
> ActiveMQConnectionFactory(
> getAMQBrokerURL());
> activeMQConnectionFactory.setClientID(getClientID());
> return activeMQConnectionFactory;
> }
>
> @Bean
> public OutboundTopicBridge outboundTopicBridge() throws
> URISyntaxException {
> OutboundTopicBridge topicBridge = new OutboundTopicBridge();
> topicBridge.setLocalTopicName(OUTGOING_LOCAL_TOPIC);
> topicBridge.setOutboundTopicName(getOutboundTopicName());
> topicBridge.setConsumerName(getConsumerName());
> return topicBridge;
> }
>
> @Bean
> public JmsTemplate jmsTemplate() throws UnknownHostException,
> URISyntaxException {
> JmsTemplate jmsTemplate = new JmsTemplate(
> localOutgoingTopicConnectionFactory());
> jmsTemplate.setDefaultDestinationName(OUTGOING_LOCAL_TOPIC);
> jmsTemplate.setDeliveryPersistent(true);
> jmsTemplate.setPubSubDomain(true);
> return jmsTemplate;
> }
>
> @Bean(dependsOn = "brokerService")
> public TopicConnectionFactory localOutgoingTopicConnectionFactory()
> throws UnknownHostException, URISyntaxException {
> ActiveMQConnectionFactory activeMQConnectionFactory = new
> ActiveMQConnectionFactory(
> "vm://localhost");
> activeMQConnectionFactory.setClientID(getLocalOutgoingClientID());
> return activeMQConnectionFactory;
> }
> }
>
> Regards,
> Jarek
>
> W dniu 26 marca 2009 10:01 użytkownik Jarosław Pałka <[email protected]
> >napisał:
>
> > Hi,
> >
> > I have strange behavior of embedded ActiveMQ 5.2 broker.
> >
> > I have an web application running under Jetty 1.6.14 (with Spring 2.5.6).
> I
> > have embedded broker that is connected to ActiveMQ server through JMS
> > connector.I have to topics INCOMING and OUTGOING that retrieve and
> forward
> > messages to ActiveMQ server.
> > I use XBeanBrokerService to configure embedded broker. The configuration
> of
> > embedded broker is in attachment.
> >
> > Everything runs great until restart of Jetty, once restarted web
> > application is able to receive messages but it doesn't send messages. I
> got
> > following exception logged in ActiveMQ server:
> >
> > ERROR RecoveryListenerAdapter - Message id
> > ID:ubot2-48486-1237589773318-0:0:2291:1:1 could not be recovered from the
> > data store - already dispatched
> > ERROR Service - Async error occurred:
> > javax.jms.JMSException: Could not correlate acknowledgment with
> dispatched
> > message: MessageAck {commandId = 8, responseRequired = false, ackType =
> 0,
> > consumerId = ID:ubot2-45498-1238055651187-2:0:2:1, firstMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, lastMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, destination = topic://IN.ltbl,
> > transactionId = null, messageCount = 0}
> > javax.jms.JMSException: Could not correlate acknowledgment with
> dispatched
> > message: MessageAck {commandId = 8, responseRequired = false, ackType =
> 0,
> > consumerId = ID:ubot2-45498-1238055651187-2:0:2:1, firstMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, lastMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, destination = topic://IN.ltbl,
> > transactionId = null, messageCount = 0}
> > at
> >
> org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:304)
> > at
> >
> org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373)
> > at
> >
> org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462)
> > at
> >
> org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
> > at
> > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
> > at
> > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
> > at
> >
> org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
> > at
> >
> org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
> > at
> > org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
> > at
> >
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
> > at
> >
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> > at
> >
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> > at
> >
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
> > at
> >
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
> > at
> >
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> > at
> >
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
> > at
> > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
> > at java.lang.Thread.run(Thread.java:619)
> >
> > and similar message at web application side during shutdown:
> >
> > 2009-03-26 09:23:10.975::INFO: Shutdown hook executing
> > 2009-03-26 09:23:10.975::INFO: Graceful shutdown
> > [email protected]:8981
> > 140421 [ActiveMQ ShutdownHook] INFO
> > org.apache.activemq.broker.BrokerService - ActiveMQ Message Broker
> > (localhost, ID:ubot2-45498-1238055651187-0:0) is shutting down
> > 140421 [ActiveMQ ShutdownHook] DEBUG
> > org.apache.activemq.broker.BrokerService - Caught exception, must be
> > shutting down: java.lang.IllegalStateException: Shutdown in progress
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@173831b
> > {/test-jndi,/home/jpalka/jetty-6.1.14/contexts/test-jndi.d}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@1abab88
> > {/,/home/jpalka/jetty-6.1.14/webapps/test}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.handler.contexthand...@b1b4c3
> > {/javadoc,file:/home/jpalka/jetty-6.1.14/javadoc/}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@5e5f92
> >
> {/umm-gateway,jar:file:/home/jpalka/jetty-6.1.14/webapps/umm-gateway.war!/}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@1d4ab0e
> > {/lottoblog,jar:file:/home/jpalka/jetty-6.1.14/webapps/lottoblog.war!/}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@12a585c
> > {/test-jaas,file:/home/jpalka/jetty-6.1.14/webapps/test-jaas/}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@10f3801
> > {/umm-portal,jar:file:/home/jpalka/jetty-6.1.14/webapps/umm-portal.war!/}
> > 2009-03-26 09:23:10.987::INFO: Graceful shutdown
> > org.mortbay.jetty.webapp.webappcont...@2606b8
> > {/cometd,jar:file:/home/jpalka/jetty-6.1.14/webapps/cometd.war!/}
> > 140444 [ActiveMQ ShutdownHook] INFO
> > org.apache.activemq.network.jms.JmsConnector - JMS Connector Connector:0
> > Stopped
> > 140447 [ActiveMQ ShutdownHook] INFO
> > org.apache.activemq.network.jms.JmsConnector - JMS Connector Connector:1
> > Stopped
> > 140449 [ActiveMQ Transport Stopper: vm://localhost#0] DEBUG
> > org.apache.activemq.broker.TransportConnection - Stopping connection:
> > vm://localhost#0
> > 140452 [VMTransport] DEBUG org.apache.activemq.store.amq.AMQMessageStore
> -
> > flush starting ...
> > 140450 [ActiveMQ Connection Worker: tcp://localhost:61616] DEBUG
> > org.apache.activemq.ActiveMQConnection - Async exception with no
> exception
> > listener: javax.jms.JMSException: Could not correlate acknowledgment with
> > dispatched message: MessageAck {commandId = 8, responseRequired = false,
> > ackType = 0, consumerId = ID:ubot2-45498-1238055651187-2:0:2:1,
> > firstMessageId = ID:ubot2-52020-1238055648089-0:0:2:1:1, lastMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, destination = topic://IN.ltbl,
> > transactionId = null, messageCount = 0}
> > javax.jms.JMSException: Could not correlate acknowledgment with
> dispatched
> > message: MessageAck {commandId = 8, responseRequired = false, ackType =
> 0,
> > consumerId = ID:ubot2-45498-1238055651187-2:0:2:1, firstMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, lastMessageId =
> > ID:ubot2-52020-1238055648089-0:0:2:1:1, destination = topic://IN.ltbl,
> > transactionId = null, messageCount = 0}
> > at
> >
> org.apache.activemq.broker.region.PrefetchSubscription.acknowledge(PrefetchSubscription.java:304)
> > at
> >
> org.apache.activemq.broker.region.AbstractRegion.acknowledge(AbstractRegion.java:373)
> > at
> >
> org.apache.activemq.broker.region.RegionBroker.acknowledge(RegionBroker.java:462)
> > at
> >
> org.apache.activemq.broker.TransactionBroker.acknowledge(TransactionBroker.java:194)
> > at
> > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
> > at
> > org.apache.activemq.broker.BrokerFilter.acknowledge(BrokerFilter.java:74)
> > at
> >
> org.apache.activemq.broker.MutableBrokerFilter.acknowledge(MutableBrokerFilter.java:85)
> > at
> >
> org.apache.activemq.broker.TransportConnection.processMessageAck(TransportConnection.java:456)
> > at
> > org.apache.activemq.command.MessageAck.visit(MessageAck.java:205)
> > at
> >
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:305)
> > at
> >
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:179)
> > at
> >
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> > at
> >
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:143)
> > at
> >
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:206)
> > at
> >
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> > at
> >
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
> > at
> > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
> > at java.lang.Thread.run(Thread.java:619)
> > 140465 [VMTransport] DEBUG org.apache.activemq.ActiveMQConnection -
> Async
> > exception with no exception listener:
> > org.apache.activemq.transport.TransportDisposedIOException: Peer
> > (vm://localhost#1) disposed.
> > org.apache.activemq.transport.TransportDisposedIOException: Peer
> > (vm://localhost#1) disposed.
> > at
> >
> org.apache.activemq.transport.vm.VMTransport.iterate(VMTransport.java:203)
> > at
> >
> org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
> > at
> >
> org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
> > at
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
> > at java.lang.Thread.run(Thread.java:619)
> >
> >
> > The only workaround I found is to remove activemq-data directory at web
> > application site before starting Jetty again.
> >
> > Can you tell me what I'm doing wrong? I have not seen such behavior with
> > ActiveMQ 5.1.
> >
> > Regards,
> > Jarek
> >
> >
> >
>
--
http://blog.garytully.com
Open Source SOA
http://FUSESource.com