运行 OS 带有 MQ 服务对象的命令 - AMQ8734- 命令失败 - 程序无法启动

Run OS Commands with MQ Service object - AMQ8734- Command failed - Program could not be started

我想 运行 在 MQ 服务器 Windows 机器上远程执行测试命令。为此,我使用 SupportPac MO72 并且我可以使用管理员 ID 成功地远程连接到 MQ 服务器。现在我有可用的 MQSC 控制台,我想 运行 一些 OS 命令创建 SERVICE 对象。我将我的服务定义为:

DEFINE SERVICE('myService') STARTCMD('C:\Windows\System32\PING.EXE 127.0.0.1') SERVTYPE(SERVER) CONTROL(MANUAL)

服务创建成功,现在我想启动这个服务,所以输入:

START SERVICE(myService)

但是我得到了这个错误:

AMQ8734- Command failed - Program could not be started

有什么想法吗?

有一些错误的组合...

  1. 你的 SERVTYPE(SERVER) 适用于开始 运行ning 并保持 运行ning 的东西(因此其健康状况受到监控)。 SERVTYPE(COMMAND) 是为了你 运行 的事情而结束。只能监控一个 SERVTYPE(SERVER) 的健康状况,但它应该很长 运行ning.

  2. 您的 startcmd 需要是二进制文件才能启动 - 只是二进制文件。 STARTARGS 需要保存命令的参数。

     DEFINE SERVICE('myService') +  
            STARTCMD('C:\Windows\System32\PING.EXE') +  
            STARTARG('127.0.0.1') +  
            SERVTYPE(COMMAND) +  
            CONTROL(MANUAL)  
    

当然,您可能希望查看其输出 - 查看 STDOUTSTDERR 等参数以将输出捕获到文件中。

如果您希望输出在队列中返回到您的远程客户端,它会变得有点复杂。您必须捕获输出并将其通过 amqsput 或其他一些程序通过管道将其放入队列,然后检索它。该队列不能与您在 MO72 中使用的回复队列相同,因为 MO72 会阻塞文本,因此您必须使用 amqsgetc 或其他一些程序从队列中获取输出。