You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@activemq.apache.org by "Gary Tully (JIRA)" <ji...@apache.org> on 2008/10/15 16:21:52 UTC
[jira] Commented: (AMQ-1979) Temporary queue on slave not removed
in Pure Master/Slave setup
[ https://issues.apache.org/activemq/browse/AMQ-1979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=46476#action_46476 ]
Gary Tully commented on AMQ-1979:
---------------------------------
not sure about the validity of the test case here. I tried to reproduce using an existing test case and I get an exception because the temp destination is in use till the consumer is closed. so it is not possible to delete before the close; can you concur.
I see an exception in your test case also. In the exception case, the temp destination is not deleted at all!
see the simple code mod to TempQueueMemoryTest:
{code}
Index: activemq-core/src/test/java/org/apache/activemq/advisory/TempQueueMemoryTest.java
===================================================================
--- activemq-core/src/test/java/org/apache/activemq/advisory/TempQueueMemoryTest.java (revision 704890)
+++ activemq-core/src/test/java/org/apache/activemq/advisory/TempQueueMemoryTest.java (working copy)
@@ -37,7 +37,7 @@
protected Connection clientConnection;
protected Session clientSession;
protected Destination serverDestination;
- protected static final int COUNT = 2000;
+ protected static final int COUNT = 1; // 2000
public void testLoadRequestReply() throws Exception {
MessageConsumer serverConsumer = serverSession.createConsumer(serverDestination);
@@ -63,8 +63,9 @@
msg.setJMSReplyTo(replyTo);
producer.send(msg);
Message reply = consumer.receive();
+ //consumer.close();
+ replyTo.delete();
consumer.close();
- replyTo.delete();
}
clientSession.close();
{code}
> Temporary queue on slave not removed in Pure Master/Slave setup
> ---------------------------------------------------------------
>
> Key: AMQ-1979
> URL: https://issues.apache.org/activemq/browse/AMQ-1979
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.2.0
> Reporter: Hans Bausewein
> Assignee: Gary Tully
> Attachments: activemqjee-0.0.6-src.tar.gz
>
>
> Maybe not the most logical client code, but it happened here and I guess it will happen somewhere again:
> TemporaryQueue reply = session.createTemporaryQueue();
> MessageConsumer consumer = session.createConsumer(reply);
> Message received = consumer.receive(timeout);
> ...
> reply.delete();
> consumer.close();
> I've removed try/finally blocks to keep it simple.
> See the attached source code.
> It works fine, but set
> JmsMessageHandler.REVERSE_ORDER=true
> and the slave will not be cleaned up properly.
> It means that the number of threads is increasing and at some time it will get an OutOfMemoryError (see AMQ-1849) and the slave dies.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.