Hey all,
I've been messing around writing a soak test for the JavaScript port of
Messenger and came across another difference in behaviour between the
C++ and Java Brokers.
I've attached the code I've written, it's relatively simple in precis
its behaviour is
1. Subscribe to amqp://guest:guest@localhost:5673/#
2. When the subscription address is available send a Message to
amqp://guest:guest@localhost:5673/<subscriptionQueue> where
<subscriptionQueue> has been extracted from the subscription Address.
3. get and accept the Message.
4. send a new Message then repeat from 3.
With the C++ Broker I stand up a WebSocket->TCP Socket proxy that
listens on WS port 5673 and forwards to TCP port 5672, with the Java
Broker I'm using its WebSocket transport listening on WS port 5673.
With the C++ broker the code seems to behave as I'd expect, it basically
just runs "forever" and I've had it send and receive a couple of million
messages and everything is looking OK. On the C++ Broker I can see
msgTotalEnqueues and msgTotalDequeues both increasing as I'd expect.
With the Java Broker it's weirder. I'm seeing 100 Messages received (my
console goes up to "Content: Message Number 99") but then it stops,
what's even odder is that I see msgTotalEnqueues = 100, msgTotalDequeues
= 0 and msgDepth = 100. That seems really weird to me, my application
has clearly received the Messages, but yet the Broker is not registering
any Dequeues.
Does anyone have any thoughts on this? It's possible that I've done
something wrong, but the C++ Broker seems to be behaving exactly as I'd
intuitively expect and after a couple of million messages my application
was still going strong and didn't look like it was leaking anything.
Cheers,
Frase
|