See below for answer to the questions. Here's some more information on
changes made that seem to have gotten things working. The logs showed a
message -

Getting Worried {org.apache.activemq.FreeDiskSpaceLeft: WARNING Store limit
is 33205 mb, whilst the data directory:
/opt/jboss-fuse-pre-patched-6.2.0.redhat-143-p1/instances/dg-amq-1/data/dg-amq-1/kahadb
only has 28337 mb of usable space from
KahaDBPersistenceAdapter[/opt/jboss-fuse-pre-patched-6.2.0.redhat-143-p1/instances/dg-amq-1/data/dg-amq-1/kahadb]
,  }

Other threads indicated this was a problem with the systemUsage parameters
in the activemq.xml. Which I changed -

*Original*
                <storeUsage>
                    <storeUsage limit="100 gb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="50 gb"/>
                </tempUsage>
*Modification*
                <storeUsage>
                    <storeUsage limit="20 mb"/>
                </storeUsage>
                <tempUsage>
                    <tempUsage limit="20 mb"/>
                </tempUsage>

After making these changes, I bounced the server and restarted my processes
and message started flowing again.

<http://activemq.2283324.n4.nabble.com/file/n4703531/activemqtopic_working.png> 

A few things I find puzzling, which makes me think I'm just missing
something :

1) When messages were not being delivered, there were 4 Topics, 3 created by
ActiveMQ and 1 created by the Producer. When messages are being delivered,
there are only 2. Why is that?

2) The warning message indicated the store limit as 33205 mb, whereas
activemq.xml had it specified as 100 gb. I also wasn't able to located any
configuration files containing a "mb" specification. Why the disconnect? 

3) The activemq.xml file I changed was located at $FUSE_HOME/etc. The
documentation indicates this is used as a template when creating new
instances. In $FUSE_HOME/instances/amq-1/etc the file doesn't exist. I would
have expected the template file would have been added to the instance
directory and then the instance could be tweaked independently of other
instances. Does this mean all activemq instances will use the same
activemq.xml?

4) When messages are not delivered, I found nothing in the logs indicating
the failure. There was just the one warning message. I looked in
$FUSE_HOME/data/log and $FUSE_HOME/instances/amq-1/data/log. Are there other
log directories that I may be missing?

------------------------
*Replies to e-mail questions*
Stepping through the code in the debugger show a successful publish of the
message. Also running in Cloud Foundry produced the log entry that the
message was successfully published.


Tim Bain wrote
> Also, do I understand correctly that "2 Consumers with no message Enqueued
> or Dequeued" means no additional messages enqueued/dequeued once the
> problems start, not that the number is actually 0?

This is correct. No message enqueued/dequeue once the issue started.


Tim Bain wrote
> Am I right to assume that if there were any errors in either the broker
> logs or the producer logs, you'd have mentioned them?

Correct. The only log message was the aforementioned warning.

*Java / Spring*

// Same code snippet in Producer and Consumer to create the factory
        ActiveMQConnectionFactory activeMQConnectionFactory = new
ActiveMQConnectionFactory();

       
activeMQConnectionFactory.setBrokerURL(environment.getProperty("jms.host"));
       
activeMQConnectionFactory.setUserName(environment.getProperty("jms.username"));
       
activeMQConnectionFactory.setPassword(environment.getProperty("jms.password"));

*Publisher *

// Publishing snippet
        logger.debug("Topic : " + topicName);
        logger.debug("Queuing message: " + message);

        ObjectMapper mapper = new ObjectMapper();
        mapper.setSerializationInclusion(Include.NON_NULL);

        try
        {
            jmsTemplate.setPubSubDomain(true);
            jmsTemplate.setExplicitQosEnabled(true);
            jmsTemplate.setTimeToLive(MESSAGE_TTL);
            jmsTemplate.convertAndSend(topicName,
mapper.writeValueAsString(message));

            logger.debug("Successfully sent to : " + topicName);

*Consumer* 

// Snippet creating listener/consumer
        DefaultMessageListenerContainer messageListener = new
DefaultMessageListenerContainer();

        messageListener.setSessionTransacted(true);
        messageListener.setDestinationName(destinationName);
        messageListener.setConnectionFactory(jmsFactory);
        messageListener.setMessageListener(listener);
        messageListener.setPubSubDomain(true);
        messageListener.initialize();
        messageListener.start();





--
View this message in context: 
http://activemq.2283324.n4.nabble.com/ActiveMQ-Topic-Messages-Not-Delivered-tp4703502p4703531.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to