gpt4 book ai didi

ibm-mq - 如何获取有关从队列中检索的消息的信息

转载 作者:行者123 更新时间:2023-12-02 11:36:51 30 4
gpt4 key购买 nike

我是 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 函数中获得的消息的信息。我想知道的是,即使我在“Q2”中读取 getMessage,它也来自“Q1”。

最佳答案

BaseQueueName将指向别名队列引用的真实队列。在这种情况下,打开以获取队列的队列是真正的队列本身。因此BaseQueueName不会指向任何东西。

使用 MQC.MQCA_BASE_Q_NAME 是不对的打开队列时,因为它不是队列打开选项。所有队列打开选项均以 MQOO_ 开头.

您可以使用 PCF 类来查询别名队列并查找其基本队列名称。但目前我不知道是否有办法找到基本队列的别名。

编辑:

Alias queue并不是真正的像 Local queue 这样的队列。顾名思义,它是本地队列的另一个名称。它不会保存任何消息。当应用程序打开别名队列时,队列管理器会将其解析为实际队列。

别名有帮助

1) 隐藏它指向的队列/主题。这样应用程序就不会受到队列/主题的任何更改的影响。

2) 为应用程序提供不同级别的权限。同一个队列中,一个应用程序可以放入但不能获取,而另一个应用程序可以获取但不能放入。

关于ibm-mq - 如何获取有关从队列中检索的消息的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30759278/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com