ibmMQ基础教程


目录	2
前言	9
本书范围	9
本书读者	9
进一步参考资料	10
第一部分 Websphere MQ原理和体系结构	11
第一章Websphere MQ原理	11
目标	11
1.1中间件	11
1.1.1中间件的优点	11
1.1.2中间件的分类	12
1.2三种通信技术的比较	13
1.3 WebSphere MQ的原理	15
1.4 WebSphere MQ的重要特点	16
1.4.1统一接口	16
1.4.2处理不依赖时间的限制	16
1.4.3给分布式处理提供的强健的中间件	16
1.5本章小节	17
1.6本章练习	17
第二章Websphere MQ体系结构	18
目标	18
2.1基本概念	18
2.1.1 WebSphere MQ对象(objects)	18
2.1.2 消息	19
2.1.3 队列	20
2.1.4队列管理器	24
2.1.4通道	25
2.1.5进程	29
2.1.6群集	29
2.1.7名称列表	29
2.1.8认证信息对象	30
2.1.9系统缺省对象	30
2.1.10 MQI(message queue interface)	30
2.2体系结构	30
2.2.1 WebSphere MQ和消息排队	31
2.2.2 队列管理器的进程	32
2.3客户机和服务器	33
客户机-服务器环境中的 WebSphere MQ 应用程序	33
2.4触发机制	33
2.4.1触发的概念	33
2.4.2触发类型	34
2.4.3触发的工作原理	35
2.5 队列管理器群集	36
2.5.1 群集的概念	36
2.5.2 群集的优点	37
2.5.3 群集的组件	38
2.5.4 创建群集	38
2.5.5 实现负载均衡	39
2.5.6 群集管理	40
2.6本章小结	41
2.7本章练习	41
第二部分 Websphere MQ系统管理	43
第三章WebSphere MQ系统安装	43
目标	43
3.1 规划安装	43
3.1.1 硬件要求	43
3.1.2 软件要求	44
3.2 安装 WebSphere MQ	46
3.2.1 WebSphere MQ 文档	46
3.2.2 WebSphere MQ安装	47
3.3 验证安装	49
3.3.1安装验证	49
3.3.2测试对象	49
3.4 本章小结	50
3.5本章练习	50
第四章WebSphere MQ 的管理	51
目标	51
4.1 本地和远程管理	51
4.2 使用命令管理 WebSphere MQ	51
4.2.1控制命令	52
4.2.2WebSphere MQ 脚本(MQSC)命令	52
4.2.3PCF 命令	54
4.3 WebSphere MQ 配置	56
4.3.1在 Windows 系统上更改配置信息	56
4.3.2 在 UNIX 系统上更改配置信息	57
4.4 WebSphere MQ 安全性	60
管理 WebSphere MQ 的权限	60
使用WebSphere MQ 对象的权限	61
4.5 WebSphere MQ 事务性支持	61
4.6 WebSphere MQ 死信队列处理程序	62
4.7本章小结	62
4.8本章练习	63
第五章WebSphere MQ 控制命令	64
目标	64
5.1 如何使用控制命令	64
WebSphere MQ 对象的名称	64
5.2 控制命令	65
控制命令集	65
控制命令举例	66
5.3 本章小结	66
5.4本章练习	66
第六章WebSphere MQ 互连通信	68
目标	68
6.1基本概念	68
6.1.1 什么是互连通信	68
6.1.2 分布式队列组件	72
6.1.3 死信队列	75
6.1.4怎样到达远程队列管理器	75
6.2 实现应用程序通信	77
6.2.1发送消息到远程队列管理器	77
6.2.2触发通道	79
6.2.3消息的安全性	80
6.2.4 WebSphere MQ对象配置实例	81
6.3通道的维护	83
6.3.1通道的状态	83
6.3.2通道维护命令	84
6.3.3设置MaxChannels和MaxActiveChannels属性	88
6.4配置侦听程序	88
6.4.1 Windows 平台	88
6.4.2 unix 平台	88
6.5本章小结	89
6.6本章练习	89
第七章 WebSphere MQ 恢复和重新启动	90
目标	90
7.1 WebSphere MQ的数据日志	91
7.1.1日志的概念	91
7.1.2日志控制文件	91
7.1.3日志类型	92
7.1.4计算日志的大小	92
7.2 使用数据日志进行恢复	93
7.2.1从掉电或通信故障中恢复	94
7.2.2恢复受损对象	94
7.3保护 WebSphere MQ 日志文件	96
7.4备份和恢复 WebSphere MQ	96
7.4.1备份 WebSphere MQ	96
7.4.2恢复 WebSphere MQ	96
7.5恢复方案	97
7.5.1磁盘故障	97
7.5.2受损的队列管理器对象	98
7.5.3受损的单个对象	98
7.5.4自动媒体恢复故障	98
7.6使用 dmpmqlog 命令转储日志	98
7.7本章小结	101
7.8本章练习	102
第八章 WebSphere MQ 问题诊断	102
目标	102
8.1错误日志	102
8.1.1日志文件	103
8.1.2忽略WebSphere MQ for Windows的错误代码	104
8.1.3操作信息	104
8.2死信队列	104
8.3配置文件和问题确定	104
8.4跟踪	104
8.4.1WebSphere MQ Windows的跟踪	104
8.4.2WebSphere MQ AIX的跟踪	106
8.5首次故障支持技术(FFST)	109
8.5.1FFST: WebSphere MQ Windows 版	109
8.5.2FFST: WebSphere MQ UNIX 系统版	110
8.6本章小结	112
8.7本章练习	112
第三部分 Websphere MQ 应用开发	113
第九章 设计Websphere MQ应用程序	113
目标	113
9.1介绍应用设计	113
9.1.1 规划设计	113
9.1.2 WebSphere MQ 对象	113
9.1.3 设计消息	114
9.1.4 WebSphere MQ 技术	114
9.1.5应用编程	115
9.1.6 测试应用程序	116
9.2 WebSphere MQ消息	116
9.2.1消息描述符	116
9.2.2消息种类	116
9.2.3消息控制信息和消息数据的格式	117
9.2.4消息优先级	117
9.2.5消息组	118
9.2.6消息持久性	118
9.2.7检索消息	119
9.2.8交付失败的消息	119
9.3本章小结	119
9.4本章练习	119
第十章 用MQI编程	119
目标	119
10.1概述	119
10.2 平台和语言	120
10.3 库和存根模块程序	121
10.4 体系结构模型	122
10.5 用MQI编程	124
10.5.1 基本API概念	125
10.5.2 连接到队列管理器	126
10.5.3 打开WebSphere MQ对象	127
10.5.4 关闭WebSphere MQ对象	130
10.5.5 断开与队列管理器的连接	130
10.5.6 将消息放入队列	131
10.5.7 从队列获取消息	133
10.5.8 从队列浏览消息	135
10.5.9查询对象属性	136
10.5.10设置对象属性	138
10.5.11 MQI中的事务处理	139
10.5.12 MQI中的消息分组	140
10.6本章小结	142
10.7本章练习	142
第十一章 用 C++ API编程	143
目标	143
11.1 概述	143
11.2 平台和语言	144
11.3库	144
11.4体系结构模型	145
11.5用C++ API编程	146
11.5.1连接到队列管理器	147
11.5.2打开WebSphere MQ对象	147
11.5.3 关闭WebSphere MQ对象	148
11.5.4 断开与队列管理器的连接	148
11.5.5 消息放入队列	148
11.5.6从队列获取消息	150
11.5.7浏览队列上的消息	153
11.5.8查询并设置对象属性	153
11.5.9事务处理管理	155
11.5.10消息分组	155
11.6本章小结	157
11.7本章练习	157
第十二章 用Java编程	158
目标	158
12.1 概述	158
12.2 平台	158
12.2.1 获得软件包	158
12.2.2 WebSphere MQ for Java的运行环境	159
12.3 使用WebSphere MQ for Java	161
12.3.1客户机连接模式	161
12.3.2绑定模式	162
12.3.3 类库	162
12.4用WebSphere MQ Java API开展工作	164
12.4.1 设置连接	164
12.4.2 打开队列	165
12.4.3 处理WebSphere MQ消息	166
12.5应用程序开发	167
12.5.1简单的消息发送器应用程序	168
12.5.2简单的消息接收应用程序	170
12.5.3请求/回复	172
12.5.4回复应用程序	175
12.5.5消息分组	177
12.5.6简单的组接收应用程序	180
12.6本章小结	183
12.7本章练习	183
第十三章 用ActiveX编程	183
目标	183
13.1 概述	183
13.2 平台和语言	184
13.3 库	185
13.4 架构模型	185
13.5 用WebSphere MQ automatin classes for ActiveX编程	186
13.5.1 连接到队列管理器	186
13.5.2 打开WebSphere MQ对象	187
13.5.3 基本操作	189
13.5.4 关闭对象	191
13.5.5 关闭连接	192
13.6 事务处理管理	192
13.7 分组	195
13.8 本章小结	195
13.9本章练习	195
第十四章 用AMI编程	195
目标	195
14.1 概述	196
14.2 平台和语言	198
14.3 库和包	199
14.4 体系结构模型	201
14.5 用AMI编程	202
14.5.1 连接到队列管理器	202
14.5.2 打开WebSphere MQ对象	204
14.5.3 基本操作	208
14.5.4 删除会话并关闭连接	212
14.6 AMI和MQI的比较	213
14.7 事务处理管理	213
14.8 分组	215
14.9本章小结	215
14.10本章练习	215
附录一 WebSphere MQ的缺省系统对象	215

第一部分 Websphere MQ原理和体系结构
第一章Websphere MQ原理
目标
1,	了解什么是中间件,以及中间件的特点。
2,	介绍WebSphere MQ的原理。
3,	介绍WebSphere MQ的特性和优点。
1.1中间件
中间件处于应用软件和系统软件之间,是一种以自己的复杂换取企业应用简单化的可复用的基础软件。在中间件产生以前,应用软件直接使用操作系统、网络协议和数据库等开发,开发者不得不面临许多很棘手的问题,如操作系统的多样性,繁杂的网络程序设计和管理,复杂多变的网络环境,数据分散处理带来的不一致性,性能和效率、安全问题等等。这些问题与用户的业务没有直接关系,但又必须解决,耗费了大量有限的时间和精力。于是,有人提出将应用软件所要面临的共性问题进行提炼、抽象,在操作系统之上再形成一个可复用的部分,供成千上万的应用软件重复使用。这一技术思想最终形成为了中间件产品。

从技术上讲,中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。 

1.1.1中间件的优点
  1应用开发:The Standish Group分析了一百个关键应用系统中的业务逻辑程序、应用逻辑程序及基础程序所占的比例,发现了一个有趣的平均百分比,其中,业务逻辑程序、应用逻辑程序仅占总程序量的30%,而基础程序却占了70%!若是以新一代的中间件系列产品来组合应用,同时配合以可复用的商务对象构件,则应用开发费用可节省至80%。 

  2系统运行:没有使用中间件的应用系统,其初期投入的资金及运行费用要比同规模的使用中间件的应用系统多一倍。 

  3开发周期:时间限制是所有应用系统开发项目的天敌,而基础软件的开发又是一件极耗时的工作,若使用标准商业中间件则可缩短开发周期50-75%。 

  4减少项目开发风险:The Standish Group对项目失败的定义是:项目中途夭折、费用远远超过预算、无法准时完成项目和偏离既定的目标。研究表明,没有使用标准商业中间件的关键应用系统开发项目的失败率高于90%。而且,企业自己开发内置的基础(中间件)软件是得不偿失的,项目总的开支至少要翻一倍,甚至会十几倍。 

  5合理运用资金:借助标准的商业中间件,企业可以很容易地在现有或遗留系统之上或之外增加新的功能模块,并将它们与原有系统无缝集合。 

  6应用集合:依靠标准的中间件可以将现有的应用、新的应用和购买的商务构件融合在一起。 

  7系统维护:每年维护自我开发的基础(中间件)软件的开支是当初开发费用的15%至25%,每年应用程序的维护开支也还需要当初项目总费用的10%至20%。 

  8质量:基于企业自我建造的基础(中间件)软件平台上的应用系统,每增加一个新的模块,就要相应地在基础(中间件)软件之上进行改进。The Standish Group在调研过程中,曾在某个企业中的一个应用系统里,发现了有多达1万7千多个模块接口,而标准的中间件在接口方面都是清晰和规范的,可以有效地保证应用系统质量及减少新旧系统维护开支。 

  9技术革新:企业对自我建造的基础(中间件)软件平台的频繁革新是不容易实现的,也是不实际的,而购买标准的商业中间件,则对技术的发展与变化可以极大地增强其适应性。 

  10增加产品吸引力:不同的商业中间件提供有不同的功能模型,合理地使用,可以让用户的应用更容易增添新的表现形式与新的服务项目,从而使得企业的应用系统更完善、更出众。   
1.1.2中间件的分类
表1 中间件的产品分类情况
种类	作用	典型产品 
消息中间件	适用于任何需要进行网络通信的系统,负责建立网络通信的通道,进行数据或文件发送。消息中间件的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供服务。	IBM webSphere MQ
交易中间件	适用于联机交易处理系统,主要功能是管理分布于不同计算机上的数据的一致性,保障系统处理能力的效率与均衡负载。交易中间件所遵循的主要标准是x/open DTP模型。	IBM CICS,Bea tuxedo
对象中间件	基于corba标准的构件框架,相当于软总线,能使不同厂家的软件交互访问,为软件用户及开发者提供一种即插即用的互操作性,就像现在使用集成块和扩展板装配计算机一样。	IBM componentbroker, iona orbix,borland visibroker
应用服务器	用来构造internet/intranet应用和其它分布式构件应用,是企业实施电子商务的基础设施。应用服务器一般是基于j2ee工业标准的。	IBM Websphere,
Bea weblogic
安全中间件	以公钥基础设施(pki)为核心的、建立在一系列相关国际安全标准之上的一个开放式应用开发平台,向上为应用系统提供开发接口,向下提供统一的密码算法接口及各种ic卡、安全芯片等设备的驱动接口。	entrust entrust
应用集成服务器	把工作流和应用开发技术如消息及分布式构件结合在一起,使处理能方便自动地和构件、script 
应用、工作流行为结合在一起,同时集成文档和电子邮件。	lss flowman
ibm flowmark
vitria businessagiliti


1.2三种通信技术的比较
	
(1)	CPI-C
CPI-C是一个同步的对话通信模式。参加通信的某一程序发起一次对话,并控制信息的流动,如图,1.2。发起者可随后向对方发送数据,而对方可接收数据,数据也可反向流动。
 
图1.2 使用CPI-C基于连接的同步通信

参加通信的程序必须跟踪对话的状态,以备故障发生时作恢复连接用。在对话过程中两个程序都必须同时参加对话。如果由于某种原因造成连接断开,由连接建立者重建并恢复这次对话。这给应用程序增加了连接的负担。通信双方也可处于对等地位,在程序开始时确定了谁是对话的发起者,并保存下去,也可改变这种关系,但必须在该对话完成之后。这意味着CPI-C既支持客户——服务器环境也支持对等通信方式。
	前面提到,CPI-C是一种同步通信模型,但在某些事务处理环境的支持下,CPI-C可以实现一定程度的异步,在CICS环境中这种支持是通过“临时数据队列”这种技术实现的。
	在这以前,只有SNA协议支持CPI-C,现在TCP/IP和SNA都支持CPI-C。
	由于应用程序必须参与对错误的处理和恢复,所以CPI-C的编程接口相当复杂。
(2)RPC
	(RPC)远程过程调用也是一种同步的、对话方式的模型,如图1.3。一个调用程序向服务器提出申请,该调用被一个负责通信的转接器发向远端系统。调用者和被调用者关系是固定的,很难实现对等通信。和CPI-C一样,由应用程序处理错误,并且在申请的服务得到响应之前,服务申请者被阻塞。
 
如图1.3 使用RPC,基于连接的同步通信
(3)MQI(Message Queue Interface)
	如图1.4消息队列接口为程序提供了一种异步通信方式。一个程序以一个队列作为中转与另一个程序相互通信,这个队列相对于该程序而言既可是本地的也可以是远程的。当程序A需要和程序B通信时,A只需PUT一条消息到一个和B相联系的队列上,程序A然后可以干别的事。它似乎感觉不到通信的发生,通信以及对通信错误的恢复是由队列管理完成的。

 
图1.4 使用MQI,基于队列的异步通信
	通信的方式和使用的传送协议无关。因为应用程序感觉不到通信的发生,因而可以使用各种标准协议,比如TCP/IP,SNA或者其他局域网协议。
	当程序A通过向某一队列PUT一条消息来申请程序B的服务时,程序B不一定必需在运行。而且一个程序可以通过向不同的队列PUT消息来实现与多个程序的通信。


最后,应该把MQI看作是其它通信方式所缺乏的功能的一个必要补充。每种通信方式都有其优点、缺点和适用范围。
1.3 WebSphere MQ的原理
Websphere MQ是IBM的商业通讯中间件(Commercial Messaging Middleware)。Websphere MQ提供一个具有工业标准、安全、可靠的消息传输系统。它的功能是控制和管理一个集成的商业应用,使得组成这个商业应用的多个分支程序(模块)之间通过传递消息完成整个工作流程。Websphere MQ基本由一个消息传输系统和一个应用程序接口组成,其资源是消息和队列(Messaging and Queuing)。
消息:消息就是一个信息单元,这个信息单元可以是一个请求(Request message),也可以是一个应答(Reply message),或者是一个报告(Report message)或一份报文(Datagram   messge)。一个消息包含两个因素——消息描述(用于定义诸如消息传输目标等)和数据消息(如应用程序数据或数据库查询等)。程序之间的通信通过传递消息而非直接调用程序。
队列:一个安全的存储消息的地方,消息的存储一般是顺序的,队列是消息分阶段地传送和接收。因为消息存放在队列中,所以应用程序可以相互独立的运行,以不同的速度,在不同的时间,在不同的地点。
消息传输系统:用于确保队列之间的消息提供,包括网络中不同系统上的远程队列之间的消息提供。并保证网络故障或关闭后的恢复。
应用程序接口:应用程序和消息系统之间通过Websphere MQ API实现的接口Websphere MQ API在所有Websphere MQ平台上是一致的。API只有14个调用,2个关键动词:发送(PUT)和接收(GET)。
	
	 

如图所示:虽然应用程序A和应用程序B运行于同一系统A,它们不需要直接的通讯。应用程序A向队列1发送一条消息,而当应用程序B需要时就可以得到该消息。

如果消息传输的目标改为在系统B上的应用程序C,这种变化不会对应用程序A产生影响,应用程序A向队列Q2发送一条消息,系统A的Websphere MQ发现Q2实际上在系统B,它将消息放到本地的一个特殊队列-传输队列(Transmission Queue)。系统A的Websphere MQ然后建立一条到系统B通讯联接,传递这条消息到系统B,并等待确认。只有Websphere MQ接到系统B成功地收到消息的确认后,才从传输队列中移走消息。如果通讯线路不通,或系统B不在运行,消息会留在传输队列中,直到被成功地传送到目的地。这是Websphere MQ最基本而最重要的技术—可靠消息传输。
事实上,Websphere MQ具有特殊的技术防止消息重复传送,确保消息一次且仅一次(once-and-only-once)传递。

1.4 WebSphere MQ的重要特点
WebSphere MQ提供给用户许多难得的价值。
1.4.1统一接口
跨越IBM和非IBM平台。简单的PUT和GET动词在WebSphere MQ支持35种IBM和非IBM平台上完全相同。使得WebSphere MQ提供了这样的特性:目标应用程序位置的透明性(targetapplicationlocationtransparency)。对于一个应用程序的开发者,他需要知道的全部只是队列的名字,这个队列与一个特定的服务有关,而与系统的平台或系统在什么地方无关。
使开发人员避开网络的复杂性。因为WebSphere MQ负责处理所有的通讯,开发人员不必编写任何通讯方面的程序。并且编程和调试非常简单和直接,不需要具体的系统和通讯方面的知识。尤其在开发客户机/服务器模式的应用时,开发人员可以集中精力在与业务有关的客户端和服务器端的应用,而不必考虑操作系统和通讯,特别是底层的网络通讯,节省大约50%到75%of通讯编程工作。
1.4.2处理不依赖时间的限制
意思是说在信息创建和发送时,信息的接收方或到接收方的通道不需要激活.不受时间的限制增加了处理的灵活性,允许事务处理在它们想做或有时间做时。彼此通讯程序可以运行在不同的时间。这样程序的运行是独立的,如果逻辑允许,它们不必等待其它程序的应答而继续工作,利用这种异步处理功能,可以更有效的使用资源,更灵活的处理模式,应用处理可以是独立的,并行的,重叠的,从而改进用户服务。
1.4.3给分布式处理提供的强健的中间件
包括逻辑工作单元支持(logicalunitofwork),备份和恢复机制,大信息传递和高性能等特点。其中最重要的是确保信息传输,意思是一旦WebSphere MQ接受一个信息传输的任务,会确保信息被传送到目标平台。信息的传输是一次且仅一次.另外,强健的中间件机制保证业务数据一致性,并可在系统发生故障时,及时恢复,业务不会受到影响。
	
1.5本章小节
WebSphere MQ是基于消息队列(Message Queuing)或消息传送(Message passing)的中间件,主要功能是在应用程序之间传送消息,这些消息可以在不同的网络协议、不同的计算机系统和不同的应用软件之间传递。通过使用WebSphere MQ用户可以简单方便的开发出可靠、高效的分布式应用系统。

总之,WebSphere MQ的技术可实施在广泛的IBM和非IBM平台上,WebSphere MQ提供了一个面向业务的信息技术架构:基于WebSphere MQ的应用程序可以更接近的模拟商业问题,更容易设计,开发和维护。这种技术使得基于WebSphere MQ的应用无结构限制,应用程序之间可以是一对一的关系,也可以是一对多的关系,多对多的关系。应用程序之间的信息传递可以是单向,也可以是双向的。灵活的结构支持平衡工作负荷,并行处理,多路广播以及其它应用程序之间的关系。总之是应用程序可以充分接近业务需求,并且当应用需求改变时,WebSphere MQ的结构可以很容易的跟着改变。

1.6本章练习
1.什么叫中间件?
2.请比较三种通信技术。
3.介绍IBM WebSphere MQ的原理。
4.下列那些是IBM WebSphere MQ的特性?
(1)	不需要TCP/IP。
(2)	要求发送和接收程序同时运行。
(3)	当一个消息到达队列时,可以启动应用程序。
(4)	支持不同平台之间的异步处理。
(5)	是与时间相关的分布式处理。
答案:(3)(4)
5.当一个消息到达队列时自动启动了处理程序,这个特征是:
(1)	触发(triggering)
(2)	激发(firing)
(3)	信号(signaling)
(4)	自动启动(auto-start)
答案:(1)



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值