With prefetch=0, the client polls the server then, right? Is polling frequency a settable value? (Though as I write this, I'm assuming if so, it would be set on the client-side.)
On Fri, Nov 15, 2013 at 4:55 AM, Gary Tully <gary.tu...@gmail.com> wrote: > prefetch=0 will do it, so long as you don't use a messagelistener > directly. via spring the listener does a receive(...) under the hood > so it will be ok with prefetch=0 > > On 14 November 2013 16:14, Ned Wolpert <ned.wolp...@imemories.com> wrote: > > After I say you wrote 'prefetchExtension=false' I looked it up and found > > this bug sounds exactly like what I'm hitting: > > https://issues.apache.org/jira/browse/AMQ-2651 which led me to you > talking > > on > > > http://grokbase.com/t/activemq/users/103bdh5cgx/prefetchextension-off-by-1-for-transacted-consumers-with-prefetchsize-0 > > > > So... right now I have prefetch=1.... and I'm using 5.3.0. WIth the > grails > > jms (spring) plugin, its auto-ack for messages, and they are in a > > transaction. So it sounds like I'm hitting this. Does > > prefetchExtension=false exist in 5.3? (Looks like it was fixed in 5.4) > > Should I really be using prefetch=0? In this one queue, I have 16 > > listeners now, and messages are usually in groups < 10 but take a long > time > > to process. (hours) > > > > > > On Wed, Nov 13, 2013 at 4:27 PM, Gary Tully <gary.tu...@gmail.com> > wrote: > > > >> can you try a different ack mode, like clientack or using transactions > >> - the prefetch will be deferred till the ack which will be later than > >> in the auto ack case. Also, in the transacted case, use the > >> destination policy prefetchExtension=false > >> > >> On 13 November 2013 14:54, Ned Wolpert <ned.wolp...@imemories.com> > wrote: > >> > Did anyone have an idea into what I could do different to route > messages > >> to > >> > idle consumers? Just came into the same situation this morning where > a > >> > queue has 1 message processing on one consumer, one message waiting, > and > >> 15 > >> > idle consumers. (See notes below for my current configs) > >> > > >> > > >> > On Wed, Nov 6, 2013 at 9:40 AM, Ned Wolpert < > ned.wolp...@imemories.com > >> >wrote: > >> > > >> >> Forgot to add, broker url only has one query param.... > >> >> > >> >> jms.prefetchPolicy.queuePrefetch=1 > >> >> > >> >> which, as I mentioned above, does seem to work. > >> >> > >> >> > >> >> On Tue, Nov 5, 2013 at 10:56 AM, Ned Wolpert < > ned.wolp...@imemories.com > >> >wrote: > >> >> > >> >>> I can see the preFetch values being set in the console, and they are > >> all > >> >>> one. I've not set priorities. > >> >>> > >> >>> These are 'java' processes, using groovy/grails. The same executable > >> on 4 > >> >>> boxes, each executable with 4 listeners, treaded. Using the grails > jms > >> >>> plugin, which wraps the Spring jms template configuration. > >> >>> (concurrentConsumers is set to 4 per instance) > >> >>> > >> >>> When I have 1000's of messages pending, all instances are working. > This > >> >>> issue is only really viewable when there is 10 messages working. > >> >>> > >> >>> The following is the (redacted) activemq.xml. I'm assuming this > config > >> >>> could be better. I should mention typical usage of our JMS server > has > >> a > >> >>> few consumers and tons of producers. Thirty queues. Most queues > process > >> >>> quickly and do not fill up. Two queues are for slow producers. The > >> goal is > >> >>> for the producers to send a message and break away, so we don't want > >> slow > >> >>> producers at all. Producers are very spiky.... from 10m/min to > bursts > >> of > >> >>> 100's/min. We have growth concern as that number is increasing > >> steadily. > >> >>> > >> >>> <beans > >> >>> xmlns="http://www.springframework.org/schema/beans" > >> >>> xmlns:amq="http://activemq.apache.org/schema/core" > >> >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> >>> xsi:schemaLocation="http://www.springframework.org/schema/beans > >> >>> http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > >> >>> http://activemq.apache.org/schema/core > >> >>> http://activemq.apache.org/schema/core/activemq-core.xsd"> > >> >>> > >> >>> <bean > >> >>> > >> > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> > >> >>> <property name="locations"> > >> >>> > <value>file:${activemq.base}/conf/credentials.properties</value> > >> >>> </property> > >> >>> </bean> > >> >>> > >> >>> <broker xmlns="http://activemq.apache.org/schema/core" > >> >>> brokerName="stagingMQ" > >> >>> useJmx="true" > >> >>> enableStatistics="true" > >> >>> useLocalHostBrokerName="false" > >> >>> useLoggingForShutdownErrors="true" > >> >>> dataDirectory="XXXXX"> > >> >>> > >> >>> <managementContext> > >> >>> <managementContext createConnector="true" > >> >>> connectorPort="XXXXX"/> > >> >>> </managementContext> > >> >>> > >> >>> <persistenceAdapter> > >> >>> <journaledJDBC journalLogFiles="5" > >> >>> journalLogFileSize="20 Mb" > >> >>> dataDirectory="XXXXXX" > >> >>> createTablesOnStartup="false" > >> >>> useDatabaseLock="false" > >> >>> dataSource="#XXXXX"> > >> >>> </journaledJDBC> > >> >>> </persistenceAdapter> > >> >>> > >> >>> <destinationPolicy> > >> >>> <policyMap> > >> >>> <policyEntries> > >> >>> <policyEntry topic=">" producerFlowControl="true" > >> >>> memoryLimit="1mb"> > >> >>> <pendingSubscriberPolicy> > >> >>> <vmCursor /> > >> >>> </pendingSubscriberPolicy> > >> >>> </policyEntry> > >> >>> <policyEntry queue=">" producerFlowControl="true" > memoryLimit="30mb"> > >> >>> <pendingQueuePolicy> > >> >>> <vmQueueCursor/> > >> >>> </pendingQueuePolicy> > >> >>> </policyEntry> > >> >>> </policyEntries> > >> >>> </policyMap> > >> >>> </destinationPolicy> > >> >>> > >> >>> <transportConnectors> > >> >>> <transportConnector name="openwire" uri="XXXX"/> > >> >>> <transportConnector name="stomp" uri="XXXXX"/> > >> >>> </transportConnectors> > >> >>> > >> >>> </broker> > >> >>> > >> >>> <import resource="jetty.xml"/> > >> >>> <import resource="databaseconfig.xml"/> > >> >>> </beans> > >> >>> > >> >>> > >> >>> > >> >>> > >> >>> On Tue, Nov 5, 2013 at 9:27 AM, Paul Gale <paul.n.g...@gmail.com> > >> wrote: > >> >>> > >> >>>> Have you verified via broker logging that the prefetch values > you've > >> >>>> configured are being honored by the broker? Are consumer > priorities in > >> >>>> use? Are your consumers instances of the same executable or are > they > >> >>>> implemented individually? > >> >>>> > >> >>>> Can you post your broker configuration: activemq.xml? > >> >>>> > >> >>>> How are your clients implemented, e.g., technology: Ruby or Java > etc, > >> >>>> choice of client libraries? Just wondering. > >> >>>> > >> >>>> > >> >>>> Thanks, > >> >>>> Paul > >> >>>> > >> >>>> On Tue, Nov 5, 2013 at 10:28 AM, Ned Wolpert < > >> ned.wolp...@imemories.com> > >> >>>> wrote: > >> >>>> > Thanks for the response... > >> >>>> > > >> >>>> > Any idea on the round-robin not working? I have a queue with 16 > >> >>>> consumers, > >> >>>> > all have pre-fetch set to 1. Five consumers are actively > processing > >> >>>> > requests and 3 requests are pending.... the 11 other consumers > are > >> >>>> idle. > >> >>>> > History has shown that a new request may go to one of the 11 idle > >> >>>> works, > >> >>>> > but its like those 3 requests are reserved for some of the > working > >> >>>> ones. I > >> >>>> > can't figure out what setting would help this, or if this just > was a > >> >>>> bug > >> >>>> > with 5.3.... > >> >>>> > > >> >>>> > > >> >>>> > On Mon, Nov 4, 2013 at 4:37 PM, Christian Posta > >> >>>> > <christian.po...@gmail.com>wrote: > >> >>>> > > >> >>>> >> The clients should negotiate the correct open-wire (protocol > >> version) > >> >>>> >> so in theory the broker will be backward compatible with older > >> >>>> >> clients. Just make sure the activemq-openwire-legacy jar is on > the > >> >>>> >> classpath (should be by default). > >> >>>> >> > >> >>>> >> Of course I would test this out to make sure :) > >> >>>> >> > >> >>>> >> On Mon, Nov 4, 2013 at 10:20 AM, Ned Wolpert < > >> >>>> ned.wolp...@imemories.com> > >> >>>> >> wrote: > >> >>>> >> > Folks- > >> >>>> >> > > >> >>>> >> > I have a 5.3 installation that we're using, and I have 2 > >> >>>> questions for > >> >>>> >> it: > >> >>>> >> > > >> >>>> >> > 1) We have prefetch set to 1 for all of the message consumers > on > >> one > >> >>>> >> queue, > >> >>>> >> > where message handling is slow. But it still seems like > messages > >> >>>> aren't > >> >>>> >> > really 'round robin' to the next available message consumer. > I'll > >> >>>> see a > >> >>>> >> few > >> >>>> >> > consumers are free but messages are waiting around. Is there a > >> >>>> >> > configuration that can help? (I should note that the server > has > >> >>>> been > >> >>>> >> > running consistently for 9 months and it seems to be getting > >> >>>> worse.... > >> >>>> >> > would a restart help?) > >> >>>> >> > > >> >>>> >> > 2) We are looking to upgrade to 5.9. I haven't started the > >> process > >> >>>> of > >> >>>> >> > testing, but I wanted to see if this is a case where the 5.3 > >> >>>> clients need > >> >>>> >> > to be upgraded at the same time as the server, or if the > clients > >> >>>> can be > >> >>>> >> > rolled over a few weeks to 5.9 after the server gets updated? > >> >>>> >> > > >> >>>> >> > Thanks! > >> >>>> >> > > >> >>>> >> > -- > >> >>>> >> > Virtually, Ned Wolpert > >> >>>> >> > > >> >>>> >> > "Settle thy studies, Faustus, and begin..." --Marlowe > >> >>>> >> > >> >>>> >> > >> >>>> >> > >> >>>> >> -- > >> >>>> >> Christian Posta > >> >>>> >> http://www.christianposta.com/blog > >> >>>> >> twitter: @christianposta > >> >>>> >> > >> >>>> > > >> >>>> > > >> >>>> > > >> >>>> > -- > >> >>>> > Virtually, Ned Wolpert > >> >>>> > > >> >>>> > "Settle thy studies, Faustus, and begin..." --Marlowe > >> >>>> > >> >>> > >> >>> > >> >>> > >> >>> -- > >> >>> Virtually, Ned Wolpert > >> >>> > >> >>> "Settle thy studies, Faustus, and begin..." --Marlowe > >> >>> > >> >> > >> >> > >> >> > >> >> -- > >> >> Virtually, Ned Wolpert > >> >> > >> >> "Settle thy studies, Faustus, and begin..." --Marlowe > >> >> > >> > > >> > > >> > > >> > -- > >> > Virtually, Ned Wolpert > >> > > >> > "Settle thy studies, Faustus, and begin..." --Marlowe > >> > >> > >> > >> -- > >> http://redhat.com > >> http://blog.garytully.com > >> > > > > > > > > -- > > Virtually, Ned Wolpert > > > > "Settle thy studies, Faustus, and begin..." --Marlowe > > > > -- > http://redhat.com > http://blog.garytully.com > -- Virtually, Ned Wolpert "Settle thy studies, Faustus, and begin..." --Marlowe