If both messages and acknowledgements are being sent to the same queue, then how does each side separate them out so that it only receives messages *or* acknowledgments? How does the service side, the side that's receiving the messages, know not to pick up acknowledgements as well? How does the client side, the side that's receiving acknowledgments, know not to pick up messages as well? The two sides can't just be listening to the same queue without any filtering because they will end up receiving messages meant for the other side. My question is: how exactly is each side doing its filtering?
What is a request number? Is this something that appears in the bodies of the message and acknowledgement? You cannot do filtering based on something in the body of a message, it has to be in the message properties. And in IBM MQ Native's case, only a few message properties.
Maybe we should start with an easy question: Are we talking about IBM MQ Native Mode or IBM MQ JMS Mode? JMS Mode has more functionally as far as filtering (but it still can;t filter based on something in the body of the message).