Hi,
I'm currently writing a quick performance demo and I wanted to see how QPID
handled producer flow control.
I'm using the C++ broker with the JMS client and the JMS client seems to ignore
flow control.
I have a queue configured using
qpid-config add queue noc-large-fc-queue --durable --max-queue-count=1000
--flow-stop-count=800 --flow-resume-count=100 --limit-policy=flow-to-disk
--file-size=40 --file-count=40
and I use the java spout example to add messages to the queue
java -cp .:lib/* org.apache.qpid.example.Spout -c 50000 --content=teteetetet
noc-large-fc-queue
I also use the java drain example to drain the Q.
However when I run the spout command I eventually get the exception
Exception in thread "main" javax.jms.JMSException: Error closing session:
org.apache.qpid.AMQException: timed out waiting for sync: complete = 0, point =
50001 [error code 541: internal error]
at org.apache.qpid.client.AMQSession.close(AMQSession.java:761)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:723)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:569)
at org.apache.qpid.example.Spout.<init>(Spout.java:104)
at org.apache.qpid.example.Spout.main(Spout.java:147)
Caused by: org.apache.qpid.AMQException: timed out waiting for sync: complete =
0, point = 50001 [error code 541: internal error]
at
org.apache.qpid.client.AMQSession_0_10.setCurrentException(AMQSession_0_10.java:1054)
at
org.apache.qpid.client.AMQSession_0_10.sendClose(AMQSession_0_10.java:406)
at org.apache.qpid.client.AMQSession.close(AMQSession.java:755)
... 4 more
and I notice that the qpid log files contain the lines
2012-06-17 17:24:45 info Threshold event triggered for noc-large-fc-queue,
count=800, size=8000
2012-06-17 17:24:45 info Queue "noc-large-fc-queue": has reached 800 enqueued
messages. Producer flow control activated.
2012-06-17 17:24:45 info Queue message count exceeded policy for
noc-large-fc-queue
At no stage does the JMS spout output pause as if it were limited by flow
control.
However when I try this with the python versions of spout/drain I can see spout
pause when flow control is enabled and I see multiple occurrences of
2012-06-17 17:30:35 info Threshold event triggered for noc-large-fc-queue,
count=800, size=0
2012-06-17 17:30:35 info Threshold event triggered for noc-large-fc-queue,
count=800, size=0
2012-06-17 17:30:35 info Queue "noc-large-fc-queue": has reached 800 enqueued
messages. Producer flow control activated.
2012-06-17 17:30:37 info Queue "noc-large-fc-queue": has drained below the flow
control resume level. Producer flow control deactivated.
Does the JMS client support flow control in 0.16 ? or am I missing some obvious
?
regards
Noel
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]