[
https://issues.apache.org/jira/browse/ARTEMIS-745?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15530285#comment-15530285
]
Ruben Cala commented on ARTEMIS-745:
------------------------------------
-- Create a java org.apache.activemq.artemis.api.core.client.ClientProducer
that sends messages to address "jms.topic.testaddress" continuously (1 per sec)
-- Create a java org.apache.activemq.artemis.api.core.client.ClientConsumer
that creates a non-durable temporary queue on address "jms.topic.testaddress":
ServerLocator serverLocator =
ActiveMQClient.createServerLocator("tcp://localhost:61616");
ClientSessionFactory sf = serverLocator.createSessionFactory();
ClientSession session = sf.createSession(true,true,0);
String qname = "testaddressQueue";
session.createTemporaryQueue(qname, "jms.topic.testaddress");
ClientConsumer consumer = createConsumer(qname);
session.start();
while (true) {
ClientMessage message = consumer.receive();
// don't ack the message on purpose
System.out.println("Received message: "+
message.getBodyBuffer().readString());
}
-- Create a STOMP client that listens to subscribes to messages on address
"jms.topic.testaddress" that doesn't acknowledge the messages by sending the
following SUBSCRIBE message:
String SUBSCRIBE_FRAME =
"SUBSCRIBE\n"+
"id:0001\n"+
"destination:jms.topic.testaddress\n"+
"ack:client-individual\n"+
"\n"+
"\u0000";
// loop continuously to receive messages without sending the ACK message back
to the broker.
> Messages sent to a jms topic address are not expiring in temporary queue
> created via core API
> ---------------------------------------------------------------------------------------------
>
> Key: ARTEMIS-745
> URL: https://issues.apache.org/jira/browse/ARTEMIS-745
> Project: ActiveMQ Artemis
> Issue Type: Bug
> Components: Broker
> Affects Versions: 1.1.0
> Environment: Redhat Linux 6.2
> Reporter: Ruben Cala
> Assignee: Justin Bertram
>
> I am publishing messages to a topic address (jms.topic.<address>). I set the
> message expiration to be 2 seconds (publishing via core api). I have two
> consumers, one using core api, one using generic stomp protocol. The core
> api creates a temporary queue to receive the messages from the address. The
> stomp consumer relies on the auto-generated temporary queue mechanism
> provided by the broker. To investigate slow consumer scenarios, both
> consumers are not acknowledging the messages.
> In JConsole for the stomp consumer, its queue MessagesAcknowledged attribute
> count rises, while the MessageCount stays constant with the MessagesAdded
> count (low number around 5 usually).
> For the core api consumer, however, its queue MessagesAcknowledged attribute
> count stays at 0, while its MessageCount attribute increases with the
> MessagesAdded number. This eventually causes the broker to run out of memory.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)