Not certain where to begin. apache-activemq-5.3.2 using non-persistent queues using openwire jms connections
Problem described: Normal operation has about 30 clients connected receiving between 300 and 500 messages per minute. Problem occurs if a single client configures a large amount of data. This can get a single client to receive up to 10,000 messages per minute. The message size is small, generally at or under 1K. Initially producerFlowControl was set to true, but this shut the producer down for everyone. ProducerFlowControl is now set to false. The client queue size continues to fill (NotificationQueueSizeExceeded). This happens primarily on slower networks and client computers. Faster networks and client computers can often handle this data rate. What I currently do, is trap this situation, and log the client off since their client cannot keep up with the data rate. The problem specifically is that sometimes, when a client is bringing in large amounts of data, activemq sometimes simply runs out of memory and shuts the producer down and all of the clients. Currently, the only way I have been able to recover from this is to restart activemq and the producer. I am looking for what needs to be done to keep activemq from running out of memory if these large data rates happen when I am not using producerflowcontrol. Additionally, how can I recover if this situation happens. I have attempted to increase the prefetch size, to increase throughput, to no avail. I was using vmQueueCursor, but am currently attempting fileQueueCursor. Any suggestions or ideas would be of great help. Greg