One question would be what version of ActiveMQ-CPP are you using? The newest release has several performance tweaks added that should help. Depending on the version you may also be seeing the naggle algorith causing some delay, the newest version sets TCP_NODELAY on by default.
The other thing to note is that the performance numbers on the website are speaking of Java clients only not the C++ client, and they are using the openwire protocol not stomp, so there are several factors int there that are going to affect your performance. Regards Tim On Tue, 2007-08-07 at 06:49 -0700, j0llyr0g3r wrote: > Hi folks, > > i am a little bit surprised about the performance of my broker-network. > > The AMQ-Website says: > > When running the server on one box and a single producer and consumer thread > in separate VMs on the other box, using a single topic we got around > 21-22,000 messages/second using 1-2K messages. > > I have almost exactly the same setup: > > - one single broker on one machine > - consumer and producer on another > > I don't use anything time-consuming, meaning message delivery is set to be: > > - non-persistent > - no transactions > - 1k-messages max > - asynchrous > - no failover > - stomp as protocol > > Even so my sample-network only achieves a message throughput of approx. 1000 > messages per second. > > What could be the reason for this? > > Here is my broker-config.xml: > > <beans> > > <!-- Allows us to use system properties as variables in this configuration > file --> > <bean > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> > > <broker brokerName="singleBroker" useJmx="true" > xmlns="http://activemq.org/config/1.0"> > > <!-- Use the following to configure how ActiveMQ is exposed in JMX --> > <managementContext> > <managementContext connectorPort="4444" > jmxDomainName="org.apache.activemq"/> > </managementContext> > > > <!-- In ActiveMQ 4, you can setup destination policies --> > <destinationPolicy> > <policyMap><policyEntries> > > <policyEntry topic="ice"> > <dispatchPolicy> > <strictOrderDispatchPolicy /> > </dispatchPolicy> > <subscriptionRecoveryPolicy> > <lastImageSubscriptionRecoveryPolicy /> > </subscriptionRecoveryPolicy> > </policyEntry> > > </policyEntries></policyMap> > </destinationPolicy> > > <transportConnectors> > <transportConnector name="openwire" uri="tcp://localhost:61616" > discoveryUri="multicast://default"/> > <transportConnector name="stomp" uri="stomp://localhost:61613" > discoveryUri="multicast://default" /> > </transportConnectors> > > </broker> > > > </beans> > > My producer and consumer are based on the activemq-cpp example. > > tcp://172.18.117.126:61613?wireFormat=stomp&transport.useAsyncSend=true > > would be an example URI. > > Any ideas? >