Я новичок в IBM MQ. Используя следующий код, я могу легко отправить сообщение в очередь и получить это сообщение.Как получить информацию о сообщении, полученном из очереди
public void QueuePut()
{
queue = queueManager.AccessQueue("Q1", MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING);
MQMessage message = new MQMessage();
message.WriteString("stackoverflow");
MQPutMessageOptions putMessageOptions = new MQPutMessageOptions();
putMessageOptions.Options += MQC.MQPMO_ASYNC_RESPONSE;
queue.Put(message, putMessageOptions);
}
public void QueueGet()
{
queue = queueManager.AccessQueue("Q2", MQC.MQOO_INPUT_AS_Q_DEF + MQC.MQOO_FAIL_IF_QUIESCING);
MQMessage gotMessage = new MQMessage();
queue.Get(gotMessage);
string str = message.ReadString(gotMessage.MessageLength);
}
Вы можете легко видеть, что я пишу сообщение для «Q1» и читать его от «Q2», так как Q1 является очереди псевдоним
Теперь, что я хочу, чтобы получить информацию о сообщение, которое я получил в функции QueueGet. Что я хочу знать, так это то, что gotMessage происходит от «Q1», даже если я читаю его в «Q2».
Мне не кажется правильным, как вы можете прочитать сообщение из очереди Q2, если оно было помещено в очередь Q1? – Alioza
@Alioza Q1 - это псевдоним Q2. – Shashi
У вас все еще есть необходимость выяснить, к какому оригинальному имени очереди было добавлено? Я нашел работу, которая позволяет это, указывая очереди псевдонимов на предмет объектов, а затем подписывая очередь назначения на строки темы. Это добавит свойства в MQMD, которые могут указывать исходное имя очереди. Дайте мне знать, хотите ли вы, чтобы я написал подробности в качестве ответа? – JoshMc