We’re trying to set up to test the relative performance of XA transactions vs. local transactions on our technology stack. We have a producer and a consumer .war running on separate servers; an Oracle server; and an ActiveMQ server. We’re running a LoadTest from soapUI, barraging the producer with web service calls telling it to send a message to the queue — and then the consumer gets the message and writes a record to the database.
The problem was, after only a few minutes, the producer and consumer would just seem to hang — the producer would not accept any more messages from soapUI, and the consumer would not receive any more messages from the queue (even though there were plenty there for it to receive!) From that point on, the producer would place about one message in the queue per minute, but the consumer would never pick up any more messages. Huh!
We changed our conf/activemq.xml to add producerFlowControl=”false”:
<destinationPolicy> <policyMap> <policyEntries> <policyEntry queue=">" producerFlowControl="false" ...
This time both producer and consumer kept going.