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

时间:2015-05-13 08:09:27

标签: ibm-mq

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

  

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

服务已成功创建,现在我想启动此服务,因此我键入了:

  

START SERVICE(myService)

但我收到了这个错误:

  

AMQ8734-命令失败 - 程序无法启动

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

有错误的组合...

  1. 您的SERVTYPE(SERVER)用于开始运行并保持运行的状态(因此监控其运行状况)。 SERVTYPE(COMMAND)用于运行和结束的内容。只能监测SERVTYPE(SERVER)的健康状况,但它应该长时间运行。

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

     DEFINE SERVICE('myService') +  
            STARTCMD('C:\Windows\System32\PING.EXE') +  
            STARTARG('127.0.0.1') +  
            SERVTYPE(COMMAND) +  
            CONTROL(MANUAL)  
    
  3. 当然,您可能希望看到它的输出 - 查看STDOUTSTDERR之类的参数来将输出捕获到文件中。

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