I'm seeing that draining queues takes a long time (I've seen 10+ secs even with a relatively short queue). This means if you trigger it via the management service it is very likely to time out (default timeout 250ms).
Would it be possible to provide a non-JMX API for doing this?
Another oddity I've seen is that once you drain a queue, NumMessagesAcknowledged and NumMessagesReceived on the topic get out of step such that (NumMessagesReceived - NumMessagesAcknowledged) which we use to indicate topic queue length becomes permanently negative. Perhaps there could be another counter for messages discarded?