• IBM MQ 通道


    一,定义

    通道是分布式队列管理器在IBM® MQ MQI 客户端和IBM MQ服务器之间或两个IBM MQ服务器之间使用的逻辑通信链接。

    通道是提供从一个队列管理器到另一个队列管理器的通信路径的对象。通道在分布式队列中用于将消息从一个队列管理器移动到另一个队列管理器,并且它们使应用程序免受底层通信协议的影响。队列管理器可能存在于相同或不同的平台上。

    一个通道有两个定义一个在连接的每一端。要使队列管理器相互通信,您必须在发送消息的队列管理器上定义一个通道对象,并在接收消息的队列管理器上定义另一个互补通道对象。连接的每一端必须使用相同的通道名称,并且使用的通道类型必须兼容。

    IBM MQ中存在三种通道类别,这些类别中具有不同的通道类型:
    • 消息通道是单向的,将消息从一个队列管理器传输到另一个队列管理器。
    • MQI 通道是双向的,将 MQI 调用从IBM MQ MQI 客户端传输到队列管理器,并将响应从队列管理器传输到IBM MQ客户端。
    • AMQP 通道,它是双向的,将 AMQP 客户端连接到服务器机器上的队列管理器。IBM MQ使用 AMQP 通道在 AMQP 应用程序和队列管理器之间传输 AMQP 调用和响应。

    二,消息通道

    消息通道是一种单向链接。它使用消息通道代理(MCA) 连接两个队列管理器。

    消息通道的目的是将消息从一个队列管理器传输到另一个队列管理器。客户端服务器环境不需要消息通道。

    图 1. 两个队列管理器之间的消息通道

    有关详细信息,请参阅通道退出调用和数据结构

    三,MQI通道

    消息队列接口 (MQI) 通道将IBM MQ MQI 客户端连接到服务器机器上的队列管理器,并在您从IBM MQ MQI 客户端应用程序发出MQCONN或MQCONNX调用时建立。

    它是双向链接,仅用于传输 MQI 调用和响应,包括 包含消息数据的MQPUT调用和 导致返回消息数据的MQGET调用。有多种创建和使用通道定义的方法(请参阅定义 MQI 通道)。

    图 2. MQI 通道上的客户端连接和服务器连接

    MQI 通道可用于将客户端连接到单个队列管理器,或连接到属于队列共享组的队列管理器(请参阅将客户端连接到队列共享组)。

    MQI 通道定义有两种通道类型。它们定义双向 MQI 通道。

    客户端连接通道

    此类型用于IBM MQ MQI 客户端。

    客户端连接通道是双向 MQI 通道,用于将 IBM MQ客户端连接到IBM MQ服务器。IBM MQ Explorer还使用客户端连接来连接到远程队列管理器。客户端连接通道是通道的客户端。创建客户端连接通道时,会在托管队列管理器的计算机上创建一个文件。然后,您必须将客户端连接文件复制到IBM MQ 客户端计算机。

    服务器连接通道

    服务器连接    服务器连接通道是双向 MQI 通道,用于将 IBM MQ客户端连接到IBM MQ服务器。服务器连接通道

    此类型用于运行队列管理器的服务器,在IBM MQ MQI 客户端环境中运行的IBM MQ应用程序将与之通信。

    四,通道定义

    有关每种类型的通道的描述,请参阅通道定义

    • 通道定义
      描述IBM MQ使用的不同类型的消息通道和 MQI 通道的表。

    示例1 :(创建消息通道)

    在下图中,在左侧,我们打开QMA并定义了两个通道:

    • 一个名为 的发送方通道QMA.TO.QMB,它使用传输队列QMB.XMITQ并指向 IP 地址为 的远程 WebSphere MQ 系统127.0.0.1,该系统正在侦听端口号1451(为QMB)。

    • 一个名为 的 Receiver Channel QMB.TO.QMA,用于接收消息(QMB在本例中为来自)。

    在 上定义了相应的发送方和接收方通道QMBQMA请注意,两者上的 Sender和Receiver Channel 名称对QMB必须相同,因此 Receiver ChannelQMB必须与 Sender Channel 具有相同的名称QMA.

     示例2 :(创建MQI通道)

    IBM Documentation

    您可以使用 MQSERVER 或在 MQCONNX 调用上使用 MQCNO 结构在客户端工作站上定义客户端连接通道。
    在UNIX 和 Linux®系统上指定一个简单的通道定义 ,如下所示:
    export MQSERVER=ChannelName/TransportType/ConnectionName

    export MQSERVER=CHANNEL1/TCP/'9.20.4.56'
    export MQSERVER=CHANNEL1/LU62/BOX99


    Where:
    -ChannelName必须与服务器上定义的名称相同。它不能包含正斜杠。
    -TransportType可以是以下值之一,具体取决于您的IBM MQ MQI 客户端平台:
      LU62
      TCP
      网络BIOS
      SPX
    注意:在UNIX 和 Linux系统上,TransportType 区分大小写并且必须是大写。如果无法识别 TransportType,则 MQCONN或MQCONNX调用返回 2058
    ConnectionName是通信协议 (TransportType) 定义的服务器名称。
    在IBM MQ MQI 客户端上,所有MQCONN或MQCONNX请求都会尝试使用您定义的通道,除非该通道在从提供给MQCONNX的 MQCNO 结构引用的 MQCD 结构中被覆盖。

  • 相关阅读:
    Python 实例教学_ 08_优先队列(Priority Queue)
    MySQL 数据库设计范式
    Telegram mini app 登录小部件 | 自定义登录按钮 或 静默登录
    Zookeeper应用场景和底层设计
    【使用 Python 实现算法】01 语言特性
    IntelliJ IDEA 的安装、配置与使用
    Python爬虫遇上动态加载
    Docker的基础命令
    银微转债,洁特转债上市价格预测
    C# 手写识别方案整理
  • 原文地址:https://blog.csdn.net/yangkei/article/details/128185805