当前位置: 首页 > news >正文

DeepSeek补全IBM MQ 9.4 REST API 执行命令的PPT

DeepSeek补全了我在网上找到的PPT的一页内容,帮了大忙了。

人机协同,人工智能可以协助人更好的做事。

下面的内容是讲解IBM MQ REST API 执行IBM MQ命令的PPT: MQSC for REST Tailored RESTful support for individual MQ objects and actions are in the works… However, to speed up full MQ admin support over REST we will be adding the ability to submit arbitrary MQSC commands over REST Gives complete MQSC coverage quickly Simple to convert existing scripts Does not benefit from improved usability HTTPS POST: https://host:port/ibmmq/v1/admin/action/qmgr/QMGR1/mqsc { “type”: “runCommand”, “parameters”: { “command”: “STOP CHANNEL(CHANNEL.TEST)” } } { “commandResponse”: [{ “completionCode”: 0, “reasonCode”: 0, “text”: [“AMQ8019: Stop IBM MQ channel accepted.”] }], “overallCompletionCode” : 0, “overallReasonCode” : 0 } Stopping a channel 但是我不知道完成的可执行的命令,如下所示: curl -k "https://localhost:9443/ibmmq/rest/v1/admin/qmgr/QM1/channel/TO.QM2" \ -X GET \ -u mqadmin:tgb5YHN6 请把上面的PPT改为可执行的命令

根据您提供的PPT内容,IBM MQ REST API 支持通过 MQSC 命令执行管理操作。以下是可执行的命令和详细说明:

通过 REST API 执行 MQSC 命令的完整语法

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "DISPLAY CHSTATUS(CHAN1) TYPE(SVRCONN)"}}'

命令解析

  1. HTTP 方法POST (不是 GET)

  2. URL 结构

    text

    https://<host>:<port>/ibmmq/rest/v1/admin/action/qmgr/<QMGR_NAME>/mqsc
  3. 认证

    bash

    -u "mqadmin:tgb5YHN6"  # 用户名:密码
  4. 请求头

    bash

    -H "Content-Type: application/json"  # 必须指定 JSON 内容类型
  5. 请求体

    json

    {"type": "runCommand","parameters": {"command": "MQSC_COMMAND_HERE"}
    }

查询通道状态的具体实现

1. 查询单个通道状态

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "DISPLAY CHSTATUS(CHAN1) TYPE(SVRCONN)"}}'
2. 查询所有通道状态

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "DISPLAY CHSTATUS(*) TYPE(SVRCONN)"}}'

响应解析示例

成功响应:

json

{"commandResponse": [{"completionCode": 0,"reasonCode": 0,"text": ["AMQ8417: Display Channel Status details.","   CHANNEL(CHAN1)                             TYPE(SVRCONN)","   STATUS(RUNNING)                            SUBSTATE(RECEIVE)","   ..."]}],"overallCompletionCode": 0,"overallReasonCode": 0
}

其他常用 MQSC 命令示例

1. 启动通道

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "START CHANNEL(CHAN1)"}}'
2. 停止通道

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "STOP CHANNEL(CHAN1)"}}'
3. 重置通道

bash

curl -k -X POST "https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc" \-u "mqadmin:tgb5YHN6" \-H "Content-Type: application/json" \-d '{"type": "runCommand","parameters": {"command": "RESET CHANNEL(CHAN1)"}}'

权限配置要求

在执行命令前,确保用户有足够权限:

bash

# 授予 MQSC 命令执行权限
setmqaut -m QM1 -t qmgr -p mqadmin +connect +inq +ctrl
setmqaut -m QM1 -n SYSTEM.ADMIN.COMMAND.QUEUE -t queue -p mqadmin +put

错误处理

1. 401 未授权错误

json

{"error": [{"msgId": "MQWB0105E", "reason": "2035"}]}

解决方案:检查用户权限并刷新安全设置

bash

refresh security type(ssl)
2. 404 接口未找到

json

{"error": [{"msgId": "MQWB0116E"}]}

解决方案

  1. 确认使用正确的 URL 路径:/ibmmq/rest/v1/admin/action/qmgr/QM1/mqsc

  2. 检查 MQ Web 服务器配置:

    xml

    <!-- mqwebuser.xml -->
    <feature>restAdmin-1.0</feature>
3. 500 命令执行错误

json

{"commandResponse": [{"completionCode": 2,"reasonCode": 2085,"text": ["AMQ8147: Web request for MQSC command ended with reason code 2085."]}]
}

解决方案:检查命令语法是否正确

自动化脚本示例

bash

#!/bin/bashQMGR="QM1"
CHANNEL="CHAN1"
USER="mqadmin"
PASS="tgb5YHN6"
URL="https://localhost:9443/ibmmq/rest/v1/admin/action/qmgr/$QMGR/mqsc"# 查询通道状态
response=$(curl -s -k -X POST "$URL" \-u "$USER:$PASS" \-H "Content-Type: application/json" \-d "{\"type\":\"runCommand\",\"parameters\":{\"command\":\"DISPLAY CHSTATUS($CHANNEL) TYPE(SVRCONN)\"}}")# 检查状态码
overall_code=$(echo "$response" | jq -r '.overallCompletionCode')
if [ "$overall_code" != "0" ]; thenecho "错误:命令执行失败"echo "$response" | jq .exit 1
fi# 提取状态信息
status=$(echo "$response" | grep -oP 'STATUS\(\K[^)]+' | head -1)# 检查通道状态
if [[ "$status" == "STOPPED" || "$status" == "RETRYING" ]]; thenecho "警报:通道 $CHANNEL 状态异常 ($status)"# 发送警报邮件...
fi

注意事项

  1. 版本兼容性

    • REST API v1 适用于 IBM MQ 9.1.4+

    • 确保使用 v1 而不是 v3 路径

  2. 命令限制

    • 不支持交互式命令

    • 命令长度限制为 4096 字符

    • 每个请求只能执行一个命令

  3. 性能考虑

    • 频繁调用可能影响性能

    • 复杂操作建议使用原生 MQSC

  4. 安全建议

    bash

    # 使用更安全的证书认证
    curl --cert client.pem --key client.key -X POST ...

通过这种 REST API 方式,您可以完全控制 IBM MQ 管理操作,同时保持与现代应用程序的集成能力。

http://www.dtcms.com/a/331125.html

相关文章:

  • Mac chrome浏览器下载DevEco Studio 6.0.0 Beta2失败
  • 分布式锁—Redisson的公平锁
  • 线上故障定位:从报警到根因的实战指南
  • Eureka故障处理大汇总
  • 使用 Git Submodules 管理前后端分离项目
  • scikit-learn/sklearn学习|广义线性回归 Logistic regression的三种成本函数
  • Docker 核心技术:Namespace
  • Java毕业设计选题推荐 |基于SpringBoot的健身爱好线上互动与打卡社交平台系统 互动打卡小程序系统
  • 2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
  • [激光原理与应用-274]:理论 - 波动光学 - 光是电磁波,无线电磁波可以通过天线接收和发送,为什么可见光不可以?
  • Visual Studio2019/2022离线安装完整教程(含闪退解决方法)
  • 无人机双目视觉设计要点概述!
  • SOD-YOLO:基于YOLO的无人机图像小目标检测增强方法
  • 值传递+move 优化数据传递
  • torchvision中数据集的使用与DataLoader 小土堆pytorch记录
  • Autoppt-AI驱动的演示文稿生成工具
  • 深入理解 RAG:检索增强生成技术详解
  • 通过机器学习框架实现Android手写识别输入功能
  • 【开源工具】基于硬件指纹的“一机一码”软件授权系统全实现(附完整源码)
  • MapReduce系统架构,颠覆了互联网分层架构的本质?
  • xiaozhi-esp32 仓库分析文档
  • 树莓派 4B 上部署 Minecraft PaperMC 1.20.x 的一键部署脚本
  • [论文阅读] 人工智能 + 软件工程 | 代码变更转自然语言生成中的幻觉问题研究解析
  • 智能家居主控板:智慧家庭的核心大脑
  • 华为实验 链路聚合
  • 实测对比:飞算JavaAI vs 人工编码,谁在效率与质量上更胜一筹?
  • C#WPF实战出真汁03--登录功能实现
  • 本文详细讲解QJson 的用法
  • 带root权限_贝尔RG020ET-CA融合终端S905L处理器当贝纯净版刷机教程
  • Android init.rc详解2