On Monday 23 April 2007, Mittler, Nathan wrote: > BTW, has anyone run the same test with a Java client to verify that > it is indeed an OpenWire thing and not an activemq-cpp specific > thing?
I have never timed Java client, but this is general networking issue and how TCP works. On linux, I see roundtrips <0.5ms if TCP_NODELAY is enabled both on activemq-cpp and the broker, otherwise it is 80ms. For some odd reason, I sometimes see <0.5ms and 40ms timings, but rarely. This is pretty similar I have seen with stomp. I have never actually timed sending bunch of messages with openwire. Maybe stomp effectively sends messages asynchronously and openwire waits for ack for each message? (I have never looked what these protocols do). Setting TCP_NODELAY just on activemq-cpp the round-trip drops to 40ms. The broker needs changing too to get consistent <0.5ms round-trip latency. For comparison omniORB, which we also use, sets TCP_NODELAY unconditionally for all sockets. Btw, the delay on Linux for Nagle's algorithm is 40ms. Teemu
