Важная информация, которую вы ищете, вероятно, находится на этой странице:
http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqzaw.doc%2Fja11160_.htm
Основная проблема, с которой вы столкнетесь, заключается в том, что объект MQQueueManager (который вы либо передаете, либо создается для вас) не может действительно выполнять 2 действия одновременно на одном соединении.
Так что если у вас есть один агент, сидящий в ожидании ответа на большой запрос (например, получение полной информации о тысячах очередей), с этим соединением ничего нельзя сделать, пока ответ не вернется.
Подключение / отключение - это самые большие издержки при общении с MQ, поэтому, если вам нужен многопоточный доступ, я бы выбрал вариант 1, в противном случае вы заплатите большой штраф за производительность, ожидая подключения каждый раз.