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