我想远程在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-命令失败 - 程序无法启动
有什么想法吗?
答案 0 :(得分:4)
有错误的组合...
您的SERVTYPE(SERVER)
用于开始运行并保持运行的状态(因此监控其运行状况)。 SERVTYPE(COMMAND)
用于运行和结束的内容。只能监测SERVTYPE(SERVER)
的健康状况,但它应该长时间运行。
您的startcmd
需要是要启动的二进制文件 - 只需要二进制文件。 STARTARGS
需要保存命令的参数。
DEFINE SERVICE('myService') +
STARTCMD('C:\Windows\System32\PING.EXE') +
STARTARG('127.0.0.1') +
SERVTYPE(COMMAND) +
CONTROL(MANUAL)
当然,您可能希望看到它的输出 - 查看STDOUT
和STDERR
之类的参数来将输出捕获到文件中。
如果您希望输出返回队列中的远程客户端,则会更复杂一些。您必须捕获输出并通过amqsput
或其他程序将其传送到队列中,然后检索它。队列不能与MO72使用相同的回复队列,因为MO72会阻塞文本,因此您必须使用amqsgetc
或其他程序从队列中获取输出。