在COBOL或汇编程序中是否存在打开所有队列的方法?我想做一个查询,只想浏览队列管理器上的所有本地队列。我在object字段中传递了一个星号,没有结果(就像在屏幕上所做的那样)。我希望返回一个列表或指向所有匹配“*”的队列的指针,这样我就可以进行查询了。我试着在各个输入字段中传递一个星号,然后修改其他输入字段,但没有成功。
发布于 2021-12-08 00:40:25
您不能通过MQOPEN和MQINQ来实现这一点。相反,您必须向命令服务器发送一条消息,请求它提供所有队列名。
您可以通过两种方式来做到这一点,要么只要求一个队列名称的列表,要么通过询问所有带有它们的一些/全部属性的队列。如果你只需要名字,那么前者更有效率。
这是通过命令完成的。您将在您提供的带有内容的回复队列上获得一条响应消息,如Inquire Queue Names (Response)中所述。
我将查看是否可以找到一个z/OS或390汇编程序示例/示例来添加这个答案,但是上面的链接将帮助您开始工作。
编辑:找不到一个样本。如果您在这方面需要帮助,请告诉我,我可以拼凑出一些东西,但是帮助您编写代码要比从头开始容易得多。下面的一些psuedo代码会让你开始。
MQCONN
MQOPEN(ReplyQ)
MQOPEN(SYSTEM.ADMIN.COMMAND.QUEUE)
Build PCF Message buffer to describe command
MQPUT(SYSTEM.ADMIN.COMMAND.QUEUE, Buffer, MQMD.ReplyToQ=name of ReplyQ)
MQGET(ReplyQ) for response messages
Walk through response to get all queue names out of response message发布于 2021-12-09 09:20:17
另外两种想法:
https://stackoverflow.com/questions/70267149
复制相似问题