IBMMQ linux版命令创建队列管理器、队列、通道、window连接(六)

article/2025/9/27 3:48:24

1. 队列、通道介绍

1.1 本地队列

        本地队列又分为普通本地队列和传输队列,普通本地队列是应用程序通过API对其进行读写操作的队列;传输队列可以理解为存储-转发队列,比如:我们将某个消 息交给MQ系统发送到远程主机,而此时网络发生故障,MQ将把消息放在传输队列中暂存,当网络恢复时,再发往远端目的地。

        一个本地队列是一个物理上位于本地队列管理器中的队列。本地队列实际上存在与本地系统的内存或磁盘存储终。本地队列管理器控制队列的访问。应用程序可以“PUT”消息到本地队列,也可以从本地队列“GET”消息,另外程序还可以查询或修改这些队列的 某些属性。对队列属性的修改需要相应的权限。

        传输队列是临时存储目标为远程队列管理器的消息的队列。队列管理器利用传输队列把消息分阶段地发向远程队列。队列管理器和消息移动程序一起负责把数据传送到远程队列。当队列管理器收到把一条消息发往远程队列的要求后,它把消息发送到一个与目的队列管理器相关联的传输队列,传输队列位于本地队列管理器上。目的队列管理器的名称可能由应用程序提供,也可以从远程队列定义中得到。
        一个传输队列是两个队列管理器之间的连接的一端。所有直接目的地是同一队列管理器的消息都可放在同一个传输队列上,这些消息的最终目的可能不一样。把消息从一个队列管理器传送到另一个队列管理器只需要一个传输队列,然而也有可能在两个队列管理器之间存在着多个连接以提供不同的传输服务,每个连接都带有一个不同的传输队列。
传输队列是由MCA处理的,MCA负责在队列管理器之间可靠地传送消息。MCA实际上是处理传输队列上消息的MQI应用程序。

        本地队列简单点说就是是用于本地服务器接收消息的队列。

        本地传输队列简单点说就是和远程队列搭配远程传输到其他网络的服务器的临时队列。

1.2 远程队列

        远程队列是目的队列在本地的定义,它类似一个地址指针,指向远程主机上的某个目的队列,它仅仅是个定义,不真正占用磁盘存储空间。

        一个远程队列属于一个不与该应用程序直接相连的队列管理器。对这类队列的访问包含有本地队列管理器和远程队列管理器的通信过程。这种通信涉及到通道。 应用程序可对远程队列进行某些操作,比如程序可以向一个远程队列放一条消息,但程序不能从远程队列中去消息。应用程序只能从本地队列读取消息。
        应用程序有两种不同的方法可用来访问远程队列。第一种是当程序打开一个远程队列时同时提供队列管理器名和队列名两个参数。这要求程序知道目的队列属于哪个队列管理器。第二种方法是在本地队列管理器上存在一个远程队列的定义,这个定义包含有足够的信息让本地队列管理器确定该远程队列所在的队列管理器。远程队列定义中的目的队列不一定是远程队列管理器的本地队列,它也可以是一个远程队列定义。(这就话和之后的网关队列管理器的创建有关系)
应用程序放一条消息到Q1,Q1是本地队列管理器QM1上的一个远程队列定义:Q2at QM2。QM2是远程队列管理器。Q2是QM2上的一个远程队列定义Q3 at QM3。Q3是QM3的一个本地队列,经过两次传送,消息最终到达Q3这个QM3的本地队列。
        有多种原因使这种多跳(Multihop)传送变得有意义。在一个TCP/IP网络内部,所有机器都有IP地址,IP协议本身处理节点间的路由选择。但假设消息需要穿过不同类型的网络,这就需要中间件参加路由选择。在图中,QM2位于一台连接TCP/IP网和SNA网的机器上,只需在QM2上提供一个远程队列定义Q2:Q3 at QM3,就可以实现消息的跨网络传输。
        因为对远程队列的访问总是涉及到队列管理器之间的通信,因而我们需要定义其他一些资源,比如通道、传输队列(Transmission queue)。

1.3 别名队列

        别名队列实际上是本地队列、远程队列定义或队列名表的另外一个名字。它是一种简单的名字到名字的映射,它允许应用程序用另外一个名字来访问队列。WebSphere MQ已经为应用程序屏蔽了许多底层系统细节,特别是网络通信的细节,而别名队列允许在不修改应用程序的条件下访问其他名字的队列。

1.4 动态队列和模板队列

        除了有固定定义的队列之外,WebSphere MQ还为程序在它们执行时提供了动态地创建队列的能力。例如,一个应用程序作为某种服务的客户,它可能创建一个动态队列,并通知服务器把对服务要求的响应发送到该动态队列。当然,这种情况也可以使用具有永久定义的队列。为了简化在创建动态队列时所必需设置的许多参数,动态队列总是基于模板队列被创建的,模板队列定义了动态队列的所有属性。当应用程序试图打开一个模板队列时,WebSphere MQ就创建一个动态队列。WebSphere MQ为应用提供了系统模板队列。
        动态队列也可以分成两种,它们的生存周期和故障恢复特性不同。在创建临时动态队列(Temorary dynamic queue)的应用程序关闭时,这些队列将被删除,队列上的消息将丢失。这类动态队列不支持消息的持久性。如果队列管理器发生故障重新启动,临时动态队列也不会被恢复。另一种动态队列是持久动态队列(Permanent dynamic queue)。只有当一个应用程序关闭持久动态队列时定义删除选项,持久动态队列才会被删除。删除持久动态队列的程序不一定是创建持久动态队列的程序,持久动态队列在队列管理器重启后会被恢复,并且支持具有持久性的消息。

1.5 通道

        通道是MQ系统中队列管理器之间传递消息的管道,它是建立在物理的网络连接之上的一个逻辑概念,也是MQ产品的精华。在 MQ中,主要有三大类通道类型,即消息通道,MQI通道和Cluster通道。消息通道是用于在MQ的服务器和服务器之间传输消息的,需要强调指出的是, 该通道是单向的,它又有发送(sender), 接收(receive), 请求者(requestor), 服务者(server)等不同类型,供用户在不同情况下使用。MQI通道是MQ Client和MQ Server之间通讯和传输消息用的,与消息通道不同,它的传输是双向的。群集(Cluster)通道是位于同一个MQ 群集内部的队列管理器之间通讯使用的。

2. 命令创建队列管理器,队列和通道

2.1 创建队列管理器

用命令crtmqm -q 队列管理器名称

crtmqm -q QM16

 2.2 查看队列管理器

用命令dspmq

dspmq

 2.3 启动队列管理器

用命令strmqm

strmqm QM16

2.4 进入队列管理器

用命令runmqsc

2.4.1 定义一个名为QUEUE_Q1的队列

def ql(QUEUE_Q1) replace

2.4.2 发送消息

写完消息回车两次。如果命令amqsput提示不存在就执行以下 PATH=$PATH:/opt/mqm/samp/bin

 2.4.3 接收消息

3. window远程链接队列

   3.1  修改用户标识符

alter qmgr ccsid(1381)

修改用户标识符后需要重启队列管理器方能生效;不然会报如下错误提示;

3.2 定义连接通道

def chl(SERVER_QM16) chltype(SVRCONN) trptype(tcp) mcauser('mqm') replace

3.3 定义监听端口

def listener(TCP) trptype(tcp) port(1414)

3.4 启动监听

start listener(TCP)


3.5 关闭认证记录

alter qmgr chlauth(disabled)

 

3.7 修改参数

我这里的版本是9.1.0.0修改了如下参数,根据版本不一样有可能修改的不一样,根据自己版本去寻找。

alter qmgr CONNAUTH('')
refresh security type(CONNAUTH)

 这一步如果不修改,直接就报没有权限连接;

3.8 重启队列管理器

首先用end命令退出队列管理器,endmqm QM16停止队列管理器,strmqm启动队列管理器即可;

 3.6 用window连接

 

 

 其他都不用管直接完成;

 

 此时,linux上的MQ就连接到了window可视化界面的操作了;


http://chatgpt.dhexx.cn/article/6dBvNX3Y.shtml

相关文章

IBM MQ 通道

一,定义 通道是分布式队列管理器在IBM MQ MQI 客户端和IBM MQ服务器之间或两个IBM MQ服务器之间使用的逻辑通信链接。 通道是提供从一个队列管理器到另一个队列管理器的通信路径的对象。通道在分布式队列中用于将消息从一个队列管理器移动到另一个队列管理器&#x…

MQ135

这里写自定义目录标题 以MQ135为例 原文链接 首先声明,公式不是官方给定的,而且有很多的局限性。 这篇文章是个人对MQ系列传感器电压与浓度转换的公式进行一个探索。 以MQ135为例 在氨气曲线上采点,得 x(ppm)[10,2…

MQ简介以及架构图

一、什么是MQ Message Query(MQ),消息队列中间件,很多初学者认为,MQ通过消息的发送和接受来实现程序的异步和解耦,mq主要用于异步操作,这个不是mq的真正目的,只不过是mq的应用&…

IBMMQ java远程访问(四)

当应用程序和MQ不在同一台主机上的时候,我们将要通过通道去访问; 1.创建队列管理器时勾选创建服务器链接通道; 2.创建一个本地队列 命名为Q1 3.创建通道 右击通道->新建->服务器链接通道 命名为SERVERQM2 4.代码示例调用 package com.i…

MQ理论介绍与主流MQ对比

1、什么是MQ? MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然…

什么是MQ

MQ概述 MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进 行通信。 分布式系统之间进行通信: 远程调用:各系统间直接通过远程调用的方式; 借助第三方完成系统…

MQ的概念和RabbitMQ知识点(无代码)

目录 1. MQ的基本概念 1.1 MQ概述 1.2 MQ的优势 1. 应用解耦 2. 异步提速 3. 削峰填谷 1.3 MQ的劣势以及可能引发的问题 1.4 常见的MQ产品 2. RabbitMQ的知识点 2.1 RabbitMQ的工作模式 1. 简单模式 2. 工作队列模式 Work Queue 3. 发布订阅模式 Publish/subscri…

MQ简介

一、何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通…

【MQ基本概念 MQ的工作原理】

一、 MQ 基本概念 1 、 MQ 概述 MQ 全称 Message Queue (消息队列),是在消息的传输过程中保存 消息的容器。多用于分布式系统之间进 行通信。 小结 MQ ,消息 队列,存储消息的中间件 分布式系统通信两种方式&…

mq的基本介绍和基本用法

一 、什么是MQ,有什么用 MQ 是message queue ,消息队列,也叫消息中间件,遵守JMS(java message service)规范的一种软件。(同时还有另一个叫AMQP的应用层协议,语言无关性不受产品 语言等限制,r…

MQ(Message Queue)简介

一、何为MQ? MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通…

MQ消息队列详解、四大MQ的优缺点分析

MQ消息队列详解、四大MQ的优缺点分析 前言面试题切入面试官心理分析面试题剖析①为什么要使用MQ系统解耦异步调用流量削峰消息队列的优缺点四大主流MQ(kafka、ActiveMQ、RabbitMQ、RocketMQ)各自的优缺点 前言 近期有了想跳槽的打算,所以自己…

file和filestream

在C#编程环境中,当我们对电脑文件进行读写、移动、复制、删除等这些操作时,这些都可以在system.IO名称空间下,所以当我们想要通过C#编程语言对其进行操作时,需要添加该名称空间,它内部包含对数据流和文件进行同步或异步…

java filestream_java FileStream文件流操作

直接上代码,函数使用说明详见Java API文档 import java.io.*; public class StreamDemo { public static void main(String[] args) { File fnew File("F:\\workspace\\JavaPrj\\test.txt"); FileOutputStream outnull; try { outnew FileOutputStream(f)…

c#FileStream文件读写

//C#文件流写文件,默认追加FileMode.Append string msg "okffffffffffffffff"; byte[] myByte System.Text.Encoding.UTF8.GetBytes(msg); using (FileStream fsWrite new FileStream("D:\1.txt", FileMode.Append)) {fsWrite.Write(myByte, 0, myByte.…

FileStream类

FileStream类的官方介绍请见&#xff1a; https://msdn.microsoft.com/zh-cn/library/system.io.filestream.aspx 一、使用FileStream来读取文本文件 <pre name"code" class"csharp"> string path "E:\TEMP\TestFileStream\the ol…

猿创征文|【.Net实用方法总结】 整理并总结System.IO中FileStream类及其方法介绍

&#x1f40b;作者简介&#xff1a;博主是一位.Net开发者&#xff0c;同时也是RPA和低代码平台的践行者。 &#x1f42c;个人主页&#xff1a;会敲键盘的肘子 &#x1f430;系列专栏&#xff1a;.Net实用方法总结 &#x1f980;专栏简介&#xff1a;博主针对.Net开发和C站问答过…

FileStream的使用

FileStream的使用 一.基本介绍&#xff1a; 二.FileStream读写文件实例&#xff1a; string path1 "d\test\test1.txt";string path2 "d\test\test2.txt";byte[] buffered new byte[1024];using (FileStream fsr new FileStream(path1, FileMode.Ope…

C#中File和FileStream的用法

在近期的工作过程中发现自己的基础比较薄弱&#xff0c;所以最近在恶补基础知识。下面就对我所学习的File类和FileStream进行简单的总结。1.首先先介绍File类和FileStream文件流 1.1 File类&#xff0c;是一个静态类&#xff0c;支持对文件的基本操作&#xff0c;包括创建&am…

FileStream 总结

FileStream 如何去理解FileStream? 我们磁盘的中任何文件都是通过2进制组成&#xff0c;最为直观的便是记事本了&#xff0c;当我们新建一个记事本时&#xff0c;它的大小是0KB, 我们每次输入一个数字或 字母时文件便会自动增大4kb,可见随着我们输入的内容越来越多&#xff…