Hi Richard,
I am not completely clear whether your difficulty is how to use both the ReplyToQ and ReplyToQMgr fields, or how to use an MQPUT1. It is not necessary to use MQPUT1 to send a reply back to ReplyToQ and ReplyToQMgr, it is just likely more efficient to do so.
Given that you say that sending your reply using the Reply to information is not working, I suspect that you are not making use of both parts of the Reply to information.
To open a queue using C# .NET where you provide both the queue name and the queue manager name, you need to look to the constructor that allows you to provide both. i.e. instead of using:
public MQQueue MQQueueManager.AccessQueue(string queueName, int openOptions);
use this one:
public MQQueue MQQueueManager.AccessQueue(string queueName, int openOptions, string queueManagerName, string dynamicQueueName, string alternateUserId);
which allows you to supply the ReplyToQMgr field you got from the message as the queue manager name where the ReplyToQ lives.
So, hopefully making this change, if you weren't already using it, will allow your put using the Reply to information to succeed. If I've guessed wrong about your problem, perhaps you can show us some of your code?
And finally, if you want to use MQPUT1, the MQQueue class documentation says: -
"For simplicity and performance, if you want to put a single message to a queue, use MQQueueManager.Put object. You should have an MQQueue object for this."
I'm not exactly sure why it mentions having an MQQueue object since there seems to be this method on the MQQueueManager class:
public void Put(string queueName, string queueManagerName, MQMessage message);
Anyway, hope some of that helps. I'm no .NET expert, but I do know a little but about MQ, so hopefully the .NET bits are meaningful to you. Someone else with more .NET know-how will hopefully jump in if I've pointed you in the wrong direction.
Cheers,
Morag