runmqsc (运行 MQSC 命令)

在队列管理器上运行 IBM® MQ 命令。

用途

使用 runmqsc 命令向队列管理器发出 MQSC 命令。 MQSC 命令使您能够执行管理任务。 例如,可以定义,改变或删除本地队列对象。 MQSC 命令参考中描述了 MQSC 命令及其语法。

必须从与您正在使用的队列管理器相关联的安装中使用 runmqsc 命令。 您可以使用 dspmq -o installation 命令来了解与队列管理器关联的安装。

要停止 runmqsc 命令,请使用 end 命令。 您还可以使用 exitquit 命令。

通过使用 MQPROMPT 环境变量设置您选择的提示,您可以更轻松地看到您处于 MQSC 环境中,并查看当前环境的一些详细信息。 有关更多信息,请参阅 设置 MQSC 命令提示符

Syntax

You can use the -n parameter on its own, or you can use a number of other parameters in combination:
Read syntax diagramSkip visual syntax diagram runmqsc  -n
Read syntax diagramSkip visual syntax diagram runmqsc  -e  -v  -c  -u UserID  -w WaitTime -x -mDefaultQMgrName-mLocalQMgrNameQMgrName-ffilename

描述

您可以通过三种方式启动 runmqsc 命令:
验证命令
验证 MQSC 命令,但不运行这些命令。 将生成一个输出报告,指示每个命令的成功或失败。 此方式仅在本地队列管理器上可用。
直接运行命令
将 MQSC 命令直接发送到本地队列管理器。
间接运行命令
在远程队列管理器上运行 MQSC 命令。 这些命令放在远程队列管理器的命令队列上,并按它们排队的顺序运行。 来自命令的报告将返回到本地队列管理器。

runmqsc 命令从 stdin获取其输入。 处理命令时,会将结果和摘要放入发送到 stdout的报告中。

通过从键盘获取 stdin ,可以以交互方式输入 MQSC 命令。

或者,您可以重定向stdin从文本文件中。 通过从文件重定向输入,可以运行文件中包含的一系列常用命令。 您还可以将输出报告重定向到文件。
注: 如果通过重定向以客户机方式运行 runmqscstdin从文本文件中, IBM MQ 期望输入文件的第一行是密码。

可选参数

-c
修改 runmqsc 命令以使用客户机连接连接到队列管理器。 用于连接到队列管理器的客户机通道定义使用以下环境变量按优先顺序进行定位: MQSERVER MQCHLLIB MQCHLTAB

此选项要求安装客户机。 如果未安装,那么将发出错误消息,报告缺少的客户机库。

-e
阻止将 MQSC 命令的源文本复制到报告中。 当您以交互方式输入命令时,此参数很有用。
-m LocalQMgrName
要用于向远程队列管理器提交命令的本地队列管理器。 如果省略此参数,那么将使用本地缺省队列管理器向远程队列管理器提交命令。 还必须指定 -w 参数。
-n
修改 runmqsc 命令以不连接到队列管理器。 如果指定了此参数,那么必须省略所有其他命令参数,否则将发出错误消息。

此选项要求安装客户机库。 如果未安装它们,那么将发出错误消息。

以此方式输入的 MQSC 命令仅限于管理本地通道定义文件 (通过 MQCHLLIBMQCHLTAB 环境变量) 或缺省值 (如果未定义)。
注: 如果将新条目添加到本地通道定义文件或更改现有条目,那么这些更改不会反映在队列管理器中。 队列管理器未读取本地通道定义文件的内容。 从队列管理器的角度来看, CCDT 文件是一个仅写文件。 队列管理器未读取 CCDT 文件的内容。

仅识别以下 MQSC 命令:


ALTERDEFINEDELETEDISPLAY AUTHINFO (仅类型为 CRLLDAP 或 OCSP)
ALTERDEFINEDELETEDISPLAY CHANNEL (仅类型为 CLNTCONN)

对于 AUTHINFO 管理命令,将使用名称 CRLLDAPnOCSP n (根据类型) 来映射和寻址现有 AUTHINFO 定义的名称,其中 n 是它们在通道定义文件中显示的数字顺序。 新的 AUTHINFO 定义将按顺序追加到客户机通道表中。 例如,发出以下命令:
DEFINE AUTHINFO(XYZ) AUTHTYPE(CRLLDAP) CONNAME('xyz')

DEFINE AUTHINFO(ABC) AUTHTYPE(CRLLDAP) CONNAME('abc')
这将导致首先检查 'xyz' LDAP 服务器以查找 CRL ,如果该 CRL 服务器不可用,那么将检查 'abc' 服务器。
使用 DISPLAY AUTHINFO(*) CONNAME 命令将显示以下内容:
AMQ8566: Display authentication information details.
AUTHINFO(CRLLDAP1)
AUTHTYPE(CRLLDAP)            CONNAME(xyz)
AMQ8566: Display authentication information details.
AUTHINFO(CRLLDAP2)
AUTHTYPE(CRLLDAP)            CONNAME(abc)
注: 客户机方式仅支持在客户机通道表末尾插入新条目。 如果要更改 CRL LDAP 服务器的优先顺序,必须从列表中除去现有对象,并在末尾以正确的顺序重新插入这些对象。
-u UserID
如果使用 -u 参数来提供用户标识,那么系统会提示您输入匹配的密码。

如果已使用 CHCKLOCL(REQUIRED)CHCKLOCL(REQDADM)配置 CONNAUTH AUTHINFO 记录,那么必须使用 -u 参数,否则将无法使用 runmqsc管理队列管理器。

如果指定此参数并重定向 stdin,那么将不会显示提示,并且重定向输入的第一行应包含密码。

-v
在不执行操作的情况下验证指定的命令。 此方式仅在本地可用。 如果 -w-x 参数与 -v同时指定,那么将忽略它们。
要点: -v 标志仅检查命令的语法。 设置标志不会检查命令中提到的任何对象是否实际存在。

例如,如果队列管理器中不存在队列 Q1 ,那么以下命令在语法上是正确的,并且不会生成任何语法错误: runmqsc -v Qmgr display ql(Q1)

但是,如果省略 -v 标志,那么将收到错误消息 AMQ8147

-w WaitTime
在另一个队列管理器上运行 MQSC 命令。 必须为此设置必需的通道和传输队列。 有关更多信息,请参阅 配置队列管理器以进行远程管理

如果指定了 -v 参数,那么将忽略此参数。

WaitTime
runmqsc 等待应答的时间 (以秒计)。 在此之后收到的任何应答都将被废弃,但 MQSC 命令仍在运行。 [MQ 9.2.2 2021 年 3 月]等待时间设置为 PCF 命令消息的到期时间,剩余时间由命令服务器在 PCF 应答消息上设置。 指定范围在 1 到 999999 之间的时间。

每个命令都作为 Escape PCF 发送到命令队列 (SYSTEM.ADMIN.COMMAND.QUEUE)。

在队列 SYSTEM.MQSC.REPLY.QUEUE ,结果将添加到报告中。 这可以定义为本地队列或模型队列。

-x
目标队列管理器正在 z/OS®下运行。 此参数仅在间接方式下适用。 还必须指定 -w 参数。 在间接方式下, MQSC 命令以适合 IBM MQ for z/OS 命令队列的格式编写。
QMgrName
要在其上运行 MQSC 命令的目标队列管理器的名称。 如果未指定,那么将使用缺省队列管理器。
[MQ 9.2.0 2020 年 7 月][UNIX、Linux、Windows、IBM i]-f 文件名
从提供的文件名而不是标准输入读取要处理的输入。

返回码

表 1. 返回码标识和描述
返回码 描述
00 已成功处理 MQSC 命令文件
10 MQSC 命令文件已处理,但有错误; 报告包含失败命令的原因
20 错误 ;MQSC 命令文件未运行

示例

  1. 在命令提示符处输入以下命令:
    runmqsc
    
    现在,您可以直接在命令提示符处输入 MQSC 命令。 未指定队列管理器名称,因此将在缺省队列管理器上处理 MQSC 命令。
  2. 使用下列其中一个命令 (在您的环境中适用) 来指定仅验证 MQSC 命令:
    runmqsc -v BANK < "/u/users/commfile.in"
    
    runmqsc -v BANK < "c:\users\commfile.in"
    
    队列管理器名称为 BANK。 此命令将验证文件 commfile.in 中的 MQSC 命令,并在当前窗口中显示输出。
  3. 这些命令针对缺省队列管理器运行 MQSC 命令文件 mqscfile.in
    runmqsc < "/var/mqm/mqsc/mqscfile.in" > "/var/mqm/mqsc/mqscfile.out"
    
    runmqsc < "C:\Program Files\IBM\MQ\mqsc\mqscfile.in" >
            "C:\Program Files\IBM\MQ\mqsc\mqscfile.out"
    
    在此示例中,输出将定向到文件 mqscfile.out
  4. 此命令使用 QMLOCAL 向 QMREMOTE 队列管理器提交命令。
    runmqsc -w 30 -m QMLOCAL QMREMOTE