MQ知识介绍

来源:互联网 发布:带网络功能的电视 编辑:程序博客网 时间:2024/05/07 00:29

 最近在学MQ,资料是英文版的,看得速度比较慢,后来发现了一本陈宇翔的,但是也是只有半本,先把系统连通之前的内容发上来,做概要了解用的。备忘。。

 

MQ的message由header和application message组成。MQ信息没有什么限制,只是一个物理消息的大小是0-100m。不过通常的最大信息长度是4M,也可以设置成100兆。头信息里包含:信息放到哪个队列中,信息的标识符(回复的信息中也会包含相关请求信息的一个标识符)。


安全性
队列的管理,访问都需要进行权限控制。信息在传递前,可以被加密,发送到目的地,到了目的地在解密。

 

常用方法:

MQCONN:连接一个MQ server;
MQOPEN:打开一个MQseries 对象;
MQPUT:放到队列中一条信息;
MQGET;从队列中获得一条信息;
MQCLOSE:关闭一个队列;
MQDISC:从队列服务断开连接

 

不太常用的:
MQPUT1:MQput和MQput1的区别,MQput只是put,适用于多个message的情况。MQput1是只放一个message,放完了以后,就close这个队列,

java class不使用这个方法。
MQINQ:查看一个队列的属性
MQset:设置队列的特殊属性
MQCONNX:使用一些选项连接到队列管理器
MQBEGIN:通过队列管理器的下,并列的开始一个工作单元。
MQCMIT:最后一个同步点,同步所有的put和get操作。
MQBACK:从最后一个同步点,回滚所有的put和get操作

 

websphere MQ for z/os,iSeries,windows,unix,compaq nonstop kenel,这些系统都可以用mqconn mqi来连接,mqdisc mqi来断开连接。
CICS transaction server for z/os CICS for MVS/ESA应用,不需要连接到队列管理器,因为CICS系统自己本身就是连接的。在不是cics环境的,可以使用上述两个命令连接。

 

CICS transaction for z/os应用系统上,除非使用了mqconnx,否则,MQDISC这个命令就是可用可不用的。在iseries上,当你从os/400系统注销时,隐含调用了MQdisc命令。在VSE/ESA上,如果应用系统没有显示调用MQdisc,那内部处理程序就会例行调用MQDISC。

 

mqconn与mqconnx相比,mqconnx命令在调用时,除了包含队列信息,还包含连接选项,它在连接的时候,会绑定一个最短路径,连接到队列管理服务器,它可以创建一个共享连接,供进程的多个线程访问。在返回时,结果是相同的,都是由连接handle,完成状态,reason code。

 

只有本地的队列(包括动态队列)才可以存储信息。在本地定义个一个远程队列,就是这个本地对象的属性包含队列管理器的附加信息,可以定位到应用要发送到的那个目的队列,本地的这个定义,只不过是个指针。我们往远程队列中存储信息的时候,是要通过在本地的一个远程队列的定义来往里面写存储信息的,远程的队列只能在本地定义,引用,而这个本地定义属于远程队列管理器。然后,再由MCA传送给远程的MQ管理器

 

websphere MQ 5.3支持队列大小在2G-2T。最小的队列在内存中减少到250k-64k,这可以使得更多队列打开。

 

在AIX,HP-UX,SUN Solaris上,你需要设置要使用的队列最大值。在创建前必须设置。

 

模版队列
模版队列就是定义了大小的队列,当管理员定义了一个模版队列,这个定义就是个模版。当使用这个模版队列的名字做mqopen的时候,就会创建一个队列,这个队列的属性和定义的模版队列是一样的,模版本身就没有其它作用了,定义好的新队列和本地队列一样。


临时动态队列:只能在创建它的程序执行过程中存在,或者当创建它的程序把它关闭。除此之外,临时队列就不存在了,所以,临时队列不能保存永久数据。

 

永久动态队列:创建方式是一样的,但是它们不能自动删除,必须显示的通过close的备选项或者delete命令删除。一旦创建了,

websphere mq不会跟踪动态创建的这个永久动态队列。动态队列的类型是在应用程序设计的时候,作为选项选择的。

 

MQ中,有队列管理器,命令服务器。命令服务器是队列管理器的一个组件,用来对外来的命令消息进行解释和执行。在远程管理和编程管理的应用中,需要启动命令服务器,一个队列最多只有命令服务器,缺省情况下在创建队列管理器时由系统一并创建。

 

 

MQ配置信息
在Unix下,websphere MQ的配置文件有两种,一种为mqs.ini,针对整个MQ运行环境的,一台机器只有一个这样的文件,另一个是qm.ini它是针对某个队列管理器配置的,每个队列管理器有一个这样的文件。管理员可以编辑这些文件修改配置。


远程队列之前的通信,如何做?
1、在发送方建远程队列,指向目标的本地队列。
2、在发送方建传输队列
3、创建发送方通道
4、创建接受方通道

对MQ的配置,可以利用注册表来设置其中的一些信息,比如默认队列管理器,默认配置等等。因为5.3上的说的服务中的管理,我已经找不到了,呵呵。。。

原创粉丝点击