[prev in list] [next in list] [prev in thread] [next in thread]
List: activemq-dev
Subject: [jira] [Commented] (AMQ-3746) Non Durable Topic subscription with prefetch=0, MessageConsumer.receiv
From: "Pat Fox (Commented) (JIRA)" <jira () apache ! org>
Date: 2012-02-29 20:25:58
Message-ID: 975926966.4560.1330547158722.JavaMail.tomcat () hel ! zones ! apache ! org
[Download RAW message or body]
[ https://issues.apache.org/jira/browse/AMQ-3746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13219507#comment-13219507 \
]
Pat Fox commented on AMQ-3746:
------------------------------
After applying "APotentialFixForAMQ-3746.patch" I noticed a change in exception \
behavior around the "MessageListener" case. Before applying the patch \
ActiveMQMessageConsumer.setMessageListener() throws the JMSException below when \
prefetch=0.
before patch:
{code}
javax.jms.JMSException: Illegal prefetch size of zero. This setting is not supported \
for asynchronous consumers please set a value of at least 1 at \
org.apache.activemq.ActiveMQMessageConsumer.setMessageListener(ActiveMQMessageConsumer.java:417)
...
{code}
after applying the patch the following exception is thrown when creating the \
ActiveMQMessageConsumer before ActiveMQMessageConsumer.setMessageListener() can be \
called.
{code}
javax.jms.JMSException: Cannot have a prefetch size of zero for a Non Durable Topic \
Subscriber at org.apache.activemq.ActiveMQMessageConsumer.<init>(ActiveMQMessageConsumer.java:245)
at org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1134)
at org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:1078)
at org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:991)
at org.apache.activemq.ActiveMQSession.createConsumer(ActiveMQSession.java:964)
...
{code}
Although it results in the same overall outcome, it does change the existing \
(correct) exception behavior.
Hence not sure if "Fail Fast" in "APotentialFixForAMQ-3746.patch" is the best \
approach.
> Non Durable Topic subscription with prefetch=0, MessageConsumer.receivenowait() (or \
> MessageConsumer.receive(timeout) hangs indefinitely
> ---------------------------------------------------------------------------------------------------------------------------------------
>
> Key: AMQ-3746
> URL: https://issues.apache.org/jira/browse/AMQ-3746
> Project: ActiveMQ
> Issue Type: Bug
> Components: Broker
> Affects Versions: 5.5.1
> Reporter: Pat Fox
> Attachments: APotentialFixForAMQ-3746.patch, \
> TopicSubscriptionZeroPrefetchTest.patch
>
> Non Durable Topic subscription with prefetch=0, MessageConsumer.receivenowait() (or \
> MessageConsumer.receive(timeout) hangs indefinitely. I get the following thread \
> dump {code}
> "main" prio=5 tid=7f996d000000 nid=0x105bc3000 in Object.wait() [105bc1000]
> java.lang.Thread.State: WAITING (on object monitor)
> at java.lang.Object.wait(Native Method)
> - waiting on <7f39f1b30> (a java.lang.Object)
> at java.lang.Object.wait(Object.java:485)
> at org.apache.activemq.SimplePriorityMessageDispatchChannel.dequeue(SimplePriorityMessageDispatchChannel.java:87)
>
> - locked <7f39f1b30> (a java.lang.Object)
> at org.apache.activemq.ActiveMQMessageConsumer.dequeue(ActiveMQMessageConsumer.java:468)
> at org.apache.activemq.ActiveMQMessageConsumer.receiveNoWait(ActiveMQMessageConsumer.java:621)
> at org.apache.activemq.usecases.TopicSubscriptionZeroPrefetchTest.testTopicConsumerPrefetchZero(TopicSubscriptionZeroPrefetchTest.java:71)
> {code}
> It seems the TopicSubscription does not support "pullMessage".
> This only appears to impact Non Durable Topic Subscriptions. Durable Topic \
> Subscriptions with prefetch=0 do *NOT* exhibit this behavior.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: \
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more \
information on JIRA, see: http://www.atlassian.com/software/jira
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic