![[MQ 9.3.3 2023 年 6 月]](ng933.gif)
设置要与 messaging REST API 配合使用的远程队列管理器
您可以使用 messaging REST API 来连接到远程队列管理器以进行消息传递。 必须先设置远程队列管理器配置,然后才能连接到远程队列管理器。 然后,可以使用配置信息中定义的唯一名称来连接到远程队列管理器。
开始之前
- 确保已配置 mqweb 服务器以供 administrative REST API, administrative REST API for MFT, messaging REST API或 IBM® MQ Console使用。有关使用基本注册表配置 mqweb 服务器的更多信息,请参阅 mqweb 服务器的基本配置。
- 如果已配置 mqweb 服务器,请确保在 mqweb 服务器的基本配置的步骤 5 中添加了相应的用户以启用消息传递。 messaging REST API 的用户必须是
MQWebUser角色的成员。MQWebAdmin和MQWebAdminRO角色不适用于 messaging REST API。- 如果在 mqweb 服务器配置中将 mqRestMessagingAdoptWebUserContext 设置为
true,那么必须授权MQWebUser角色中的用户通过 OAM 或 RACF®访问用于消息传递的队列和主题。 - 如果 mqRestMessagingAdoptWebUserContext 在 mqweb 服务器配置中设置为
false,那么必须授权用于启动 mqweb 服务器的用户标识通过 OAM 或 RACF访问用于消息传递的队列和主题。
- 如果在 mqweb 服务器配置中将 mqRestMessagingAdoptWebUserContext 设置为
- 确保 messaging REST API 配置为连接到远程队列管理器。 有关更多信息,请参阅 为 messaging REST API配置连接方式。
关于本任务
您可以使用 messaging REST API连接到远程队列管理器。 远程队列管理器可以是另一个系统上的队列管理器,另一个安装中的队列管理器或与 mqweb 服务器相同的安装中的队列管理器。
要连接到远程队列管理器,必须完成以下配置步骤:
- 配置服务器连接通道和侦听器。
- 授予相应用户访问队列管理器的权限。
- 创建包含队列管理器的连接信息的 CCDT 文件。
- 使用 setmqweb remote 命令将连接信息添加到 messaging REST API 。
您还可以将远程队列管理器配置为队列管理器组的一部分。 有关更多信息,请参阅 设置队列管理器组以用于消息传递 REST API。
过程
结果
示例
- 在远程队列管理器 QM1 所在的系统上,将创建服务器连接通道和侦听器。 该侦听器已启动,并且已授权用户
exampleUser连接到队列管理器并访问用于消息传递的队列:runmqsc QM1 #Define the server connection channel that will accept connections from the Console DEFINE CHANNEL(QM1.SVRCONN) CHLTYPE(SVRCONN) TRPTYPE(TCP) # Define the listener to use for the connection from the Console DEFINE LISTENER(REMOTE.LISTENER) TRPTYPE(TCP) PORT(1414) # Start the listener START LISTENER(REMOTE.LISTENER) end #Set mq authorization for exampleUser to access the queue manager and a queue for messaging setmqaut -m QM1 -t qmgr -p exampleUser +connect +inq +setall +dsp setmqaut -m QM1 -t queue -p exampleUser -n EXAMPLEQ +put +get +browse +inq - 在运行 mqweb 服务器的系统上,将使用以下连接信息创建 QM1_ccdt.json 文件:
{ "channel": [{ "name": "QM1.SVRCONN", "clientConnection": { "connection": [{ "host": "example.com", "port": 1414 }], "queueManager": "QM1" }, "type": "clientConnection" }] } - 在运行 mqweb 服务器的系统上,队列管理器 QM1 的连接信息将添加到 mqweb 服务器。
exampleUser的凭证包含在连接信息中:setmqweb remote add -uniqueName "MACHINEAQM1" -qmgrName "QM1" -ccdtURL "c:\myccdts\QM1_ccdt.json" -username "exampleUser" -password "password" - messaging REST API 可以使用队列管理器连接的唯一名称来代替URL队列管理器名称,从而连接到远程QM1 :
curl -k https://localhost:9443/ibmmq/rest/v2/messaging/qmgr/MACHINEAQM1/queue/EXAMPLEQ/message -X POST -u myuser:mypassword -H "ibm-mq-rest-csrf-token: value" -H "Content-Type: text/plain;charset=utf-8" --data "Hello World!"
![[AIX、Linux 和 Windows]](ngalw.gif)
例如,在