Santosh
Santosh

Reputation: 61

ActiveMQ 5.13.2 messages missing after restart

I am new to active MQ. Installed activemq 5.13.2. I am losing all my messages(including durable topic) after activeMQ server restart. Please find the below console screen shots before and after active MQ server restart.

before activeMQ restart

After ActiveMQ restart

This is my activemq.xml configuration:

<beans 
  xmlns="http://www.springframework.org/schema/beans"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">


    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <value>file:${activemq.conf}/credentials.properties</value>
        </property>
    </bean>


    <bean id="logQuery" class="io.fabric8.insight.log.log4j.Log4jLogQuery" 
          lazy-init="false" scope="singleton" 
          init-method="start" destroy-method="stop">
    </bean>

    <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.data}" persistent="true" useShutdownHook="false">

        <destinationPolicy>
            <policyMap>
              <policyEntries>
                <policyEntry topic=">" > 

                  <pendingMessageLimitStrategy>
                    <constantPendingMessageLimitStrategy limit="1000"/>
                  </pendingMessageLimitStrategy>
                </policyEntry>
              </policyEntries>
            </policyMap>
        </destinationPolicy>



        <managementContext>
            <managementContext createConnector="false"/>
        </managementContext>


        <persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb" journalMaxFileLength="32mb"/>
        </persistenceAdapter>




          <systemUsage>
            <systemUsage>
                <memoryUsage>
                    <memoryUsage percentOfJvmHeap="70" />
                </memoryUsage>
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
            </systemUsage>
        </systemUsage>


        <transportConnectors>

            <transportConnector name="openwire" uri="tcp://0.0.0.0:61616?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="amqp" uri="amqp://0.0.0.0:5672?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="mqtt" uri="mqtt://0.0.0.0:1883?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
            <transportConnector name="ws" uri="ws://0.0.0.0:61614?maximumConnections=1000&amp;wireFormat.maxFrameSize=104857600"/>
        </transportConnectors>

        <destinations>
               <queue physicalName="testQueue">
               </queue>
               <topic physicalName="testTopic" />
         </destinations>

        <shutdownHooks>
            <bean xmlns="http://www.springframework.org/schema/beans" class="org.apache.activemq.hooks.SpringContextHook" />
        </shutdownHooks>


    </broker>


    <import resource="jetty.xml"/>

</beans>

Upvotes: 6

Views: 2933

Answers (3)

learner
learner

Reputation: 950

  1. Queues persist Messages even after restarts.
  2. Durable topics persist messages but the problem is console won't be showing those. Your durable subscribers will receive it once you restart the activemq.

Upvotes: 0

codebrane
codebrane

Reputation: 4630

If you need messages persisted across restarts the producer has to set them as persistent or the broker won't persist them. If you're routing using camel, the routes have to be marked as transacted or they will disappear too. So the broker can be told about durable consumers but the messages won't persist unless the producer (client) marks them as persistent before sending them.

Upvotes: 0

Albert Hendriks
Albert Hendriks

Reputation: 2145

The real problem seems to be the activemq console after a restart. The messages did not disappear, the console seems just to be showing something wrong.

activemq console screenshot

Upvotes: 1

Related Questions