On Mon, Mar 23, 2009 at 1:53 PM, Ron Reynolds <tequila...@ymail.com> wrote: > i know it's a vague subject line and i'm almost certain it's been asked > before but i'm under a tight deadline on a near-production system and i need > help. the situation is this: > > - single broker (5.2) with only 4 queues (not topics) > - default broker config with prefetchPolicy.queuePrefetch=0 added to broker's > connection pool brokerURL attribute > - single client using failover URL (in anticipation of a second broker once > the system is stable) > - client using Spring-JMS. > - client-ack, small messages, 7-second retry on the client, using > PooledConnectionFactory wrapped around ActiveMQConnectionFactory > - no transaction management added. > - both client and server are Linux (CentOS 5.x i think) w/ Sun JVM 1.5.0_11. > > the situation is that the system, after running well for an hour or more > (typically not more than 24) it will suddenly stop sending notification to > the client of new messages in one of the queues (need for it to repro to test > if it happens for other queues). a QueueBrowser shows the messages just > fine, but a receiveMessages() with null selection criteria times out before > any messages are returned. i'm able to insert new messages into the queue > but the client still gets no notification. > > another developer is currently looking at OpenMQ or other JMS implementations > to avoid this issue but it has to be a config issue, yes?
In the conf/activemq.xml file, what is the memoryUsage limit set at currently? If it's still at the default of 20mb, I suggest raising it to a more appropriate limit. This is the memory limit for the entire broker and should be big enough to hold all messages in memory at any given point in time. Remember that this needs to remain in accordance with the JVM memory settings ( the java -Xmx setting). Also, when the broker is not dispatching messages to clients, grab a thread dump to see where exactly it's hanging. A thread dump can be triggered using a kill -QUIT <pid> on Unix or a ctrl-break on Windows or the jstack utility. There's also an open issue for something similar to this in AMQ-2009: http://issues.apache.org/activemq/browse/AMQ-2009 Even so, I still highly suggest getting a thread dump to see where it's hanging. Bruce -- perl -e 'print unpack("u30","D0G)u8...@4vyy9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*" );' Apache ActiveMQ - http://activemq.apache.org/ Apache Camel - http://camel.apache.org/ Apache ServiceMix - http://servicemix.apache.org/ Blog: http://bruceblog.org/