activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Anirudha Khanna <aniru...@yahoo-inc.com>
Subject Message persistence for Topics
Date Mon, 08 Nov 2010 23:00:55 GMT
Hi,

I am a developer working for Yahoo! Inc. and we are currently evaluating ActiveMQ for using
it as streaming solution for Yahoo serving applications. We have a requirement for the streaming
platform to be able to persist messages on a topic, till the set message expiry is up, even
though there isn't a durable subscriber for that Topic. Is it sufficient for the Producer
to do a Producer.setDeliveryMode(DeliveryMode.PERSISTENT) to get this behaviour? When reading
source I did notice this section in org.apache.activemq.broker.region.Topic.java

if (topicStore != null && message.isPersistent() && !canOptimizeOutPersistence())
{
            if (systemUsage.getStoreUsage().isFull()) {
                final String logMessage = "Usage Manager Store is Full. Stopping producer
(" + message.getProducerId() + ") to prevent flooding " + getActiveMQDestination().getQualifiedName()
+ "."
                        + " See http://activemq.apache.org/producer-flow-control.html for
more info";
                if (systemUsage.isSendFailIfNoSpace()) {
                    throw new javax.jms.ResourceAllocationException(logMessage);
                }

                waitForSpace(context, systemUsage.getStoreUsage(), logMessage);
            }
            topicStore.addMessage(context, message);
}

private boolean canOptimizeOutPersistence() {
        return durableSubcribers.size() == 0;
}



ActiveMQ version 5.3.2
JAVA version 1.6_0.22
OS - RHEL 4 Update 8

Thanks,
Anirudha

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message