使用 MQ Explorer 和 runmqsc 命令行来管理队列管理器
本指南说明如何使用 MQ Explorer 应用程序和 runmqsc 命令行界面来管理 IBM MQ on Cloud 队列管理器。
MQ Explorer:
MQ 资源管理器是一个基于 Eclipse 的工具,用于管理在所选计算机上安装的 IBM MQ,可使用客户机连接远程连接到一个或多个队列管理器。 有适用于 Windows 和 Linux 64 位环境的本机安装程序,并且可以通过 Docker 容器在 Mac OS 上运行 MQ 资源管理器,如以下先决条件中所述。
在 Mac OS 上, MQ 资源管理器的 Eclipse 插件在编写时不支持 TLS 连接。 MQ on Cloud 队列管理器版本高于 V9.2.1 修订版 1 的管理通道将启用 TLS。 这些应该从 Linux 或 Windows 进行管理。
runmqsc
runqmsc 是“MQ 客户机”捆绑软件的一部分,这是一个命令行界面 (CLI) 工具,允许您通过在命令行或脚本文件中执行一系列预定义的步骤来自动配置 MQ 队列管理器。 许多操作系统(包括 Windows 和 Linux)上都支持此工具(但目前 Mac OS 上不支持)。
您可以使用 MQ Explorer 或 MQ 客户机中的 runmqsc 来执行许多操作。 您可以执行以下操作:
- 连接到队列管理器
- 创建新队列
- 将消息放入队列
- 删除队列
除此之外,在 MQ Explorer 上,您可以 browse a queue to view messages
在 runmqsc 命令行中,还可以 get messages from a queue
准备工作
- 已存在队列管理器(有关指示信息,请遵循创建队列管理器指南)。
- 您有权访问 IBM MQ 服务实例中的队列管理器(有关指示信息,请遵循配置对队列管理器的管理员访问权指南)。
- 根据您的管理方法,可以执行以下操作:
- IBM MQ Explorer 的现有安装。 适用于 Windows 和 Linux 的下载和安装指示信息可从此处获取,而适用于 Mac OS 的指示信息可从此处获取。 或者
- 在您自己的计算机上已安装 IBM MQ 客户机。
- 从此处下载客户机。
- 单击 CD 客户机的最新可用版本旁边的 HTTP 链接将转至 Fix Central。 您可以在其中搜索并选择适用于您操作系统平台的相应 Redist(可再分发)客户机捆绑软件。 这将包括样本应用程序和 runmqsc。
- 下载后,将捆绑软件解包到所选位置。
- 记下
bin
目录的完整路径,该目录的位置将取决于您选择用于解包捆绑软件的位置。 对于此任务的其余部分,此路径将被引用为<PATH_TO_BIN_DIR>
。 - 记下包含样本应用程序的目录的完整路径。 对于此任务的其余部分,此路径将被引用为
<PATH_TO_SAMPLE_BIN_DIR>
。- 对于 Windows,这将是上一步中解包的
bin
目录,其位置将取决于您选择用于解包捆绑软件的位置。 - 对于 Linux,这将是上一步中解包的
samp/bin
目录,其位置将取决于您选择用于解包捆绑软件的位置。
- 对于 Windows,这将是上一步中解包的
收集必需的连接详细信息
-
登录到 IBM Cloud 控制台。
-
单击“汉堡菜单”。
-
单击仪表板。
- 确保资源组设置为所有资源。
-
在“服务”标题下找到并单击 IBM MQ 服务实例。
-
在队列管理器列表中,单击要管理的队列管理器。
-
记下队列管理器名称、主机名和端口值,以供后续步骤使用。
-
如果已经知道 MQ 用户名和 IBM Cloud API 密钥,那么可以跳至此任务的下一部分。 否则,请单击管理选项卡。
-
记下您的 MQ 用户名以供未来使用。
- 请注意,您可以随时通过遵循编辑或除去现有用户或应用程序的 MQ 用户名指南来编辑您的 MQ 用户名。
-
如果您还没有现有的 IBM Cloud API 密钥,请执行以下操作:
- 单击创建 IBM Cloud API 密钥。
- 单击显示以显示要复制的 API 密钥,然后将其保存以供日后使用,或者单击下载以将 API 密钥存储在文件中。
- 请注意,这些步骤中生成的 API 密钥用于以创建该密钥的用户身份向 IBM Cloud 进行认证。 因此,该 API 密钥不应与其他任何用户共享,并且应该安全地存储。
- 通过 IBM MQ 服务创建的 API 密钥可以在队列管理器的管理选项卡中重置。
- 单击关闭。
连接到队列管理器
使用 MQ Explorer:
-
启动 IBM MQ Explorer。
-
在“MQ 资源管理器 - 导航器”面板中,展开 IBM MQ。
-
右键单击队列管理器。
-
单击添加远程队列管理器...。
-
输入要管理的队列管理器的名称。
-
单击下一步。
-
输入在步骤 2 中记下的主机名。
-
使用步骤 2 中记下的相应值覆盖端口号。
-
使用 CLOUD.ADMIN.SVRCONN 覆盖服务器连接通道名称。
-
单击下一步。
-
单击下一步。
-
勾选“启用用户标识”复选框。
-
取消勾选“用户标识兼容性方式”复选框。
-
输入您的 MQ 用户名作为用户标识。
- 单击完成。
- 将平台 API 密钥粘贴到“密码”文本框中。
- 单击确定。
现在,队列管理器连接会显示在“MQ 资源管理器 - 导航器”面板的队列管理器文件夹下。
使用 runmqsc
- 打开要在后续步骤中使用的命令 shell。
- 导出“MQSERVER”变量:
- Linux:
export MQSERVER="CLOUD.ADMIN.SVRCONN/TCP/<Hostname>(<Port>)"
- Windows (命令提示符):
set MQSERVER=CLOUD.ADMIN.SVRCONN/TCP/<Hostname>(<Port>)
- Windows (PowerShell):
$env:MQSERVER="CLOUD.ADMIN.SVRCONN/TCP/<Hostname>(<Port>)"
- Linux:
- run
<PATH_TO_BIN_DIR>/runmqsc -c -u <your MQ username> -w60 <QUEUE_MANAGER_NAME>
- 系统提示输入密码时,输入平台 API 密钥。
创建名为“DEV.TEST.1”的新测试队列
使用 MQ Explorer:
在“MQ 资源管理器 - 导航器 > IBM MQ > 队列管理器”视图中:
- 展开队列管理器的条目。
- 右键单击队列。
- 选择 "新建"> "本地队列 ..."。
- 在“名称”文本框中,输入“DEV.TEST.1”。
- 单击完成。
- 单击确定。
新的队列会显示在队列列表中。
使用 runmqsc
队列名称应以 DEV.* (示例 :DEV.myQueue) 开头,因为已配置应用程序用户仅具有对此前缀的访问权。
在先前步骤中使用的同一 shell 中:
- run
DEFINE QLOCAL(DEV.TEST.1)
- run
DISPLAY QLOCAL(DEV.TEST.1)
- 这将显示“DEV.TEST.1”队列的详细信息。
- run
end
- 这将关闭 runmqsc 会话。
- 保留提示符以在后续步骤中使用。
将消息放入测试队列
使用 MQ Explorer:
- 右键单击“DEV.TEST.1”队列。
- 单击 "放置测试消息 ..."。
- 在“消息数据”文本框中,输入测试消息。
- 单击放入消息。
- 单击关闭。
- 单击“队列”面板中的刷新。
您可以看到“DEV.TEST.1”的“当前队列深度”现在为 1。
使用 runmqsc:
我们将使用样本程序 amqsputc
来帮助将消息放入测试队列。 在先前步骤中使用的同一 shell 中:
- 导出“MQSAMP_USER_ID”变量:
- Linux:
export MQSAMP_USER_ID="<your MQ username>"
- Windows (命令提示符):
set MQSAMP_USER_ID=<your MQ username>
- Windows (PowerShell):
$env:MQSAMP_USER_ID="<your MQ username>"
- Linux:
- run
<PATH_TO_SAMPLE_BIN_DIR>/amqsputc DEV.TEST.1 <your QMGR name>
- 系统提示输入密码时,输入平台 API 密钥。
- 输入测试消息。
- 点击
Enter
键两次以退出 amqsputc 样本。
浏览测试队列上的消息
此步骤是 MQ Explorer 所独有的,无法使用命令行来实现。
- 右键单击“DEV.TEST.1”队列。
- 单击 "浏览消息 ..."。
- 确认您可以看到测试消息,然后单击关闭。
使用 amqsgetc 样本程序取出消息
此步骤对于 runmqsc 是唯一的,无法在 MQ Explorer 上实现。
在先前步骤中使用的同一 shell 中:
- run
<PATH_TO_SAMPLE_BIN_DIR>/amqsgetc DEV.TEST.1 <your QMGR name>
- 系统提示输入密码时,输入平台 API 密钥。
这将显示测试消息。
经过很短的一段时间,amqsputc 样本程序找不到更多消息后应该会结束。
删除测试队列
使用 MQ 资源管理器
- 右键单击“DEV.TEST.1”队列。
- 单击“删除”。
- 单击“删除”。
- 选中“清除队列中的所有消息”框。
- 单击删除。
- 单击确定。
您可以看到“DEV.TEST.1”队列已从队列列表中除去。
使用 runmqsc
在先前步骤中使用的同一 shell 中:
- run
<PATH_TO_BIN_DIR>/runmqsc -c -u <your MQ username> -w60 <QUEUE_MANAGER_NAME>
- 系统提示输入密码时,输入平台 API 密钥。
- run
DELETE QLOCAL(DEV.TEST.1)
- 您会收到一条消息,指出该队列已删除。
- 运行
DISPLAY QLOCAL(DEV.TEST.1)
以证明该队列确实已删除。- 您会收到一条消息,指出找不到该队列。
- run
end
- 这将关闭 runmqsc 会话。
结论
您成功完成了以下操作:
- 已使用 MQ Explorer 或
runmqsc
连接到队列管理器,并且已创建新的测试队列 - 将测试消息放入测试队列
- 已浏览测试队列以查看测试消息,或使用
amqsgetc
来查看测试消息 - 清空并删除了要清除的测试队列
后续步骤
现在,您已成功学习如何使用 MQ 资源管理器和 runmqsc 来管理队列管理器,请尝试以下操作: