Those messages are being delivered. The only way to make them available to redelivery is if you remove the consumers by a management call.
You could also disable buffering on the clients if your consumers are doing slow processing.
Unacknowledged in delivery messages will get returned to the queue immediately if the sessions that have them are closed.
Two questions then, regarding Clebert's response. wouldn't removing the consumer cause the messages to be lost since the consumer has (had) a durable subscription?
Tim, How do I identify which session belongs to the specific queue in order to close it from a management call?
No, the whole point of a durable subscription is it is durable.
The consumer can close than "reattach" at some later date to consume the messages. That's what distinguishes a durable from a non durable subscription.
I apologize, I understand that the consumer being durable is what allows it to reconnect at a later time. I guess I was just thinking in terms of management calls that the only one I have seen for disconnecting a consumer was 1) to disconnect all connections from an address (which is what I do right now) which doesn't seem to close the session, hence the problem with still having messages in the buffer, and 2) the call on the topic to drop the durable subscription, which, as it says, drops the durable subscription.
It seems the key is closing the session, which leads back to my previous question. Is there a management call for closing a specific session? All I've noticed is one for listing the sessions, though you need to know which connection_id's they are associated with.