- 浏览: 274150 次
- 性别:
- 来自: 石家庄
最新评论
-
路小尘:
mark
详解 Java 语言中 float 类型的运算 -
ezerg:
兄弟,你那样写的效果和没写是一样的,因为你没有转换编码。例如从 ...
JDBC 中 DatabaseMetaData 接口的使用 -
yl419440513:
我也用的是这个,可是却被一个问题难住了,就是getString ...
JDBC 中 DatabaseMetaData 接口的使用 -
laijinyan:
我初学请教下不是说 MaxClients 要小于 Server ...
Apache 的 httpd 进程占用大量内存原因及其解决方案 -
ybb896:
,不错
安装和使用 percona 推出的 Xtrabackup 备份 MySQL
通信技术
MQI(Message Queue Interface)
消息队列接口为程序提供了一种异步通信方式。
一个程序以一个队列作为中转与另一个程序相互通信,这个队列相对于该程序而言既可是本地的也可以是远程的。
当程序A需要和程序B通信时,A只需PUT一条消息到一个和B相联系的队列上,程序A然后可以干别的事。它似乎感觉不到通信的发生,通信以及对通信错误的恢复是由队列管理完成的。
WebSphere MQ的原理
Websphere MQ基本由一个消息传输系统和一个应用程序接口组成,其资源是消息和队列(Messaging and Queuing)。
1、消息:消息就是一个信息单元,这个信息单元可以是一个请求(Request message),也可以是一个应答(Reply message),或者是一个报告(Report message)或一份报文(Datagram messge)。
一个消息包含两个因素——消息描述(用于定义诸如消息传输目标等)和数据消息(如应用程序数据或数据库查询等)。程序之间的通信通过传递消息而非直接调用程序。
2、队列:一个安全的存储消息的地方,消息的存储一般是顺序的,队列是消息分阶段地传送和接收。因为消息存放在队列中,所以应用程序可以相互独立的运行,以不同的速度,在不同的时间,在不同的地点。
3、消息传输系统:用于确保队列之间的消息提供,包括网络中不同系统上的远程队列之间的消息提供。并保证网络故障或关闭后的恢复。
4、应用程序接口:应用程序和消息系统之间通过Websphere MQ API实现的接口Websphere MQ API在所有Websphere MQ平台上是一致的。API只有14个调用,2个关键动词:发送(PUT)和接收(GET)。
WebSphere MQ对象(objects)
WebSphere MQ对象是一种由WebSphere MQ管理的具有可恢复能力的资源。在本书中描述的许多任务都和下列对象相关:
队列管理器(Queue managers)
队列(Queues)
名字列表(Namelists)
分发列表(Distribution lists)
进程定义(Process definitions)
通道(Channels)
存储类(Storage classes)
每一个对象都有一个名字,以便通过命令和MQI调用可以引用它。通常在这些对象类型中的每一种对象的名字必须唯一并且对象名是大小写敏感的。
消息是对使用它的应用程序有意义的以字节为单位的字符串。消息可以用来实现在相同或不同平台上应用程序间的通信。
WebSphere MQ定义了四种基本类型的消息。应用程序可以定义其他类型的消息。四种基本类型是:
1、请求消息 Request message
请求消息需要应答。从客户端发往服务器的查询和更新信息往往是一条请求消息。请求消息中应该包含回复消息的路由信息,即回复消息发往什么地方。
1、回复消息 Reply message
回复消息是对请求消息的回应。请求消息中的信息决定了回应消息的目的地。处理请求和回应的应用程序控制着消息间的关联,这种关联和队列管理器没有关系。消息自身带有足够的信息供应用程序实现这种关联。
3、报文消息 Datagram message
数据报消息是不需要回复的消息,报文消息只是一次单向的信息传送。
4、报告消息 Report message。
报告消息用于对一些系统故障的响应。有些报告消息是由应用程序创建的,有些报告消息是由队列管理器创建的。后一种情况是由于远程队列已经满或者远程队列不存在引起消息不能正确发送。最初发送者条消息的应用程序不能检测到这种错误,只有等远程队列管理器创建了这样一条报告消息并发往本地队列管理器之后,应用程序才能作相应的处理。
最大消息长度为 100 MB(其中 1 MB 等于 1 048 576 字节),缺省最大消息长度是 4 MB。
队列是用于存储消息的数据结构,目前WebSphere MQ 版本 5.3 支持超过 2 GB 大小的队列。
1. 本地队列(local queue):
一个本地队列是一个物理上位于本地队列管理器中的队列。本地队列实际上存在与本地系统的内存或磁盘存储终。本地队列管理器控制队列的访问。
应用程序可以“PUT”消息到本地队列,也可以从本地队列“GET”消息,另外程序还可以查询或修改这些队列的某些属性。对队列属性的修改需要相应的权限。
2. 远程队列(remote queue):
一个远程队列属于一个不与该应用程序直接相连的队列管理器。对这类队列的访问包含有本地队列管理器和远程队列管理器的通信过程。这种通信涉及到通道。
应用程序可对远程队列进行某些操作,比如程序可以向一个远程队列放一条消息,但程序不能从远程队列中去消息。应用程序只能从本地队列读取消息。
3. 传输队列(Transmission queue):
传输队列是临时存储目标为远程队列管理器的消息的队列。队列管理器利用传输队列把消息分阶段地发向远程队列。
4. 动态队列和模板队列:
除了有固定定义的队列之外,WebSphere MQ还为程序在它们执行时提供了动态地创建队列的能力。
5. 启动队列
启动队列是在触发中使用的队列。如果队列管理器将使用触发,则必须至少为此队列管理器定义一个启动队列。
6. 群集传输队列
每个在群集中的队列管理器有一个称为 SYSTEM.CLUSTER.TRANSMIT.QUEUE 的群集传输队列。
7. 死信队列 (Dead letter queue)
死信(未传递的消息)队列是存储无法发送到其正确目的地的消息的队列。有时候会出现队列管理器不能把消息发送到目的地的情况,此时消息将被发送到某个死信队列中。
死信队列是WebSphere MQ面对远端系统错误时的一种解决方案。
8. 命令队列
命令队列 SYSTEM.ADMIN.COMMAND.QUEUE 是用来存放由应用管理程序放的具有PCF(program command format)的消息的队列。该队列主要用于编写管理程序时使用。
9. 回复队列
当应用程序发送请求消息时,接收消息的应用程序可以将回复消息发送给发送应用程序。
10. 别名队列
别名队列实际上是本地队列、远程队列定义或队列名表的另外一个名字。
队列管理器负责维护它所拥有的队列,以及将它接收到的所有消息存储到相应的队列。可以由应用程序或队列管理器将消息放入队列,这些是它的正常操作的一部分。
消息通道是一种提供从一个队列管理器到另一个队列管理器的通信路径。
消息通道是一个单向链接。它通过消息通道代理(message channel agents)把两个队列管理器连接起来。
消息通道的定义可以分为以下6种类型:
发送通道(Sender)
接收通道(Receiver)
服务器通道(Server)
请求器通道(Requester)
群集发送通道(Cluster sender)
群集接收通道(Cluster receiver)
如果要在队列管理之间实现消息传输,必须要在两个队列管理器上都要定义相应的通道。发送方和接收方通道的组合形式如下:
发送通道-接收通道(Sender-receiver )
请求器通道-服务器通道(Requester-server)
请求器通道-发送通道(Requester-sender (callback) )
服务器通道-接收通道(Server-receiver )
群集发送通道-群集接收通道(Cluster sender –cluster receiver)
MQI通道是WebSphere MQ 客户端和服务器上的队列管理器的通信的通道。
消息通道与MQI通道之间的区别可以从两方面进行比较:
MQI通道是双向的:一个MQI通道可以被用来发送请求,也可用来接收响应。而消息通道则只能单向数据通信。如果要在两个队列管理器之间实现双向通信,那么需要定义两个消息通道,一个用来实现数据的发送,另一个用来实现数据的接收。
MQI通道的通信是同步的:当一个MQI请求从客户端发送服务器端时,WebSphere MQ的客户端在发送下一个请求之间必须要等待来自服务器端的响应。而消息通道,在通道中传输的消息是与时间无关的。大量的消息可以从一个队列管理器发送到另一个队列管理器,发送队列管理器不必等待来自接收队列管理器的任何响应。
命令名 目的
amqmcert 管理 SSL 证书
amqmdain 配置或控制 WebSphere MQ 服务(仅 Windows 系统)
crtmqcvx 转换数据
crtmqm 创建本地队列管理器
dltmqm 删除队列管理器
dmpmqaut 转储打开对象的权限
dmpmqlog 转储日志
dspmq 显示队列管理器
dspmqaut 显示打开对象的权限
dmpmqcap 显示处理程序容量和处理程序数
dspmqcsv 显示命令服务器状态
dspmqfls 显示文件名
dspmqtrc 显示格式化跟踪输出(HP-UX、Linux 和 Solaris)
dspmqrtn 显示事务的详细信息
endmqcsv 停止队列管理器上的命令服务器
endmqlsr 停止队列管理器上的侦听器进程
endmqm 停止本地队列管理器
endmqtrc 停止对实体的跟踪(不用于 AIX)
rcdmqimg 向日志写对象的映象
rcrmqobj 根据它们在日志中的映象重新创建一个对象
rsvmqtrn 提交或逆序恢复事务
runmqchi 启动通道启动器进程
runmqchl 启动发送方或请求者通道
runmqdlq 启动死信队列处理程序
runmqlsr 启动侦听器进程
runmqsc 向队列管理器发出 MQSC 命令
runmqtmc 调用客户机的触发器监控器(仅 AIX 客户机)
runmqtrm 调用服务器的触发器监控器
setmqaut 更改打开对象的权限
setmqcap 设置处理程序容量
setmqcrl 设置证书撤销列表(CRL)服务器定义
setmqscp 设置服务连接点(仅 Windows 系统)
strmqcsv 启动队列管理器的命令服务器
strmqm 启动本地队列管理器
strmqtrc 启用跟踪(不用于 AIX)
发表评论
-
windows 下配置 nginx + tomcat + memcached 集群
2014-06-11 16:33 1794前几天介绍了一下 memcached-session-filt ... -
让 memcached-session-filter 摆脱 spring 和 Java 序列化接口
2014-06-09 16:03 7152memcached-session-filter 项目是在 j ... -
关于 tomcat 集群中 session 共享的三种方法
2014-05-20 11:01 2322前两种均需要使用 memcached 或 redis 存储 ... -
简洁实用的免费的 FCKEditor 编辑器(2)
2014-04-09 09:18 1288前面已经下载了软件,并对于最基本的使用和支持文件上传讲了一下。 ... -
分布式版本管理 GIT 超酷教程
2014-04-08 09:09 647直接上链接: http://www.liaoxuefeng.c ... -
简洁实用的免费的 FCKEditor 编辑器(1)
2014-04-07 15:39 1769CKEditor 功能越来越强,界面也越来越靓,但收费总是让人 ... -
Eclipse 彻底禁用 JavaScript 验证
2014-04-05 13:34 1420我用的版本: Version: Indigo Service ... -
将旧版本的 eWebEditor 从 ASP 版改造为 JSP 版
2014-04-04 18:40 1772之前一个旧网站项目改版,发布系统的编辑器使用的 eWebEdi ... -
JavaRebel 关于 noverify 和 javaagent 参数的使用
2011-08-15 13:21 9175一般情况下,使用 JavaRebel 时都配置两个 JVM ... -
Eclipse 开发过程中利用 JavaRebel 提高效率
2011-08-13 09:43 1340Eclipse 是 Java 语言开发过程中的利器,相比较 M ... -
Mina 基本使用和常用类的介绍
2011-08-04 09:02 2266Mina 的全称是 Multipurpose ... -
FreeMarker 的两个应用实例
2011-07-18 12:26 2318FreeMarker 是一个 Java ... -
简要说明 Java 中 .class 文件的内部结构
2011-07-12 12:19 1519了解 .class 的文件结构,有助于加深对 Java 语言的 ... -
Java 的静态内部类使用
2011-07-11 11:02 1525Java 的内部类一般情况下很少使用,声明为 static 的 ... -
使用 UltraEdit 复制十六进制代码
2011-07-10 21:34 4366用UltraEdit 编辑文件时,常要用到查找、替换、复制和粘 ... -
深入学习 Lucene 3.0 索引段
2011-07-07 13:07 2015Lucene索引index由若干段(segment)组成,每一 ... -
Java 程序的优化笔记
2011-06-15 08:59 1552系统的优化是一个比较宽泛的话题,涉及到硬件、软件和网络的优化等 ... -
XP 下 Java 本地接口调用 MinGW 编译的动态库
2011-06-13 13:26 1414Java 程序可以“一次编写,到处运行”,原因是它运行在 J ... -
JAVA 类中 serialVersionUID 的作用
2011-06-10 21:25 1374通常在继承 Serializable 接口的类,Eclips ... -
详解 Java 语言中 float 类型的运算
2011-06-08 13:56 5058【注】本文参考了网上的部分资料加上本人水平有限,存在错误在所 ...
相关推荐
【IBM WebSphere MQ安装包详解】 IBM WebSphere MQ,前身为IBM MQSeries,是IBM公司推出的一款企业级的消息中间件产品。它在信息技术领域扮演着至关重要的角色,为跨网络、操作系统和应用程序提供了高效、安全的...
IBM WebSphere MQ入门教程 IBM WebSphere MQ 是一种基于消息队列的中间件,用于实现不同的应用程序之间的异步通信。下面是对 IBM WebSphere MQ 的入门教程的总结,涵盖了 WebSphere MQ 的原理、体系结构、重要特点...
IBM WebSphere MQ 技术白皮书 IBM WebSphere MQ 技术白皮书是 IBM 公司发布的一份技术白皮书,旨在介绍 IBM WebSphere MQ 产品的技术特性、架构和价值。下面是根据白皮书的内容生成的相关知识点。 概述 在概述...
个人收集整理,非常全面的WebsphereMQ的PDF学习资料。Websphere MQ Programming Guide,Websphere MQ Using C++,WebSphere MQ Using Java,WEBSPHERE MQ6.0 JAVA编程,WebSphere MQ基础教程,IBM WEBSPHERE MQ教程...
### WebSphere MQ自学笔记知识点概览 #### 一、MQ6.0安装 **1.1 启动MQ v6.0 安装程序** - **启动安装程序**:通过双击`Setup.exe`文件来启动WebSphere MQ v6.0的安装程序。安装程序界面会展示安装选项和步骤指南...
学习MQ和WebSphere MQ的相关书籍可以帮助我们深入理解以下关键概念: 1. **消息队列模型**:理解消息如何在队列中存储和传递,以及不同类型的队列(如本地队列、远程队列、死信队列等)。 2. **WebSphere MQ架构**...
WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...
Linux 上的 WebSphere MQ 开发快速入门 本文将介绍如何在 Linux 上安装和配置 WebSphere MQ,以及如何使用 Java 应用程序开发 MQ 环境。本文将通过示例应用程序说明如何向队列发送消息和从队列接收消息。 ...
通过阅读提供的“WebSphere MQ入门教程7.doc”,你可以更深入地学习这些概念,并实践如何在实际项目中部署和使用WebSphere MQ。无论你是初学者还是有经验的开发者,这个教程都将为你提供宝贵的指导。
WebSphere MQ 8.0 自带的 JAR 包是一组关键组件,它们构成了 IBM 的消息中间件解决方案,用于在不同应用程序之间可靠地传递数据。这些 JAR 文件位于 `WebSphere MQ\java\lib` 目录下,是开发、配置和运行与 ...
### WebSphere MQ 7.0 .NET API:深入解析与应用指南 #### 一、概述与启动 **WebSphere MQ 7.0 .NET API**是IBM为.NET平台开发的一套高级消息队列接口,旨在简化.NET应用程序与WebSphere MQ(一种高性能的消息...
IBM Websphere MQ入门教程 IBM Websphere MQ是IBM公司开发的一款消息队列中间件,旨在提供一个可靠的异步通信机制,实现不同应用程序之间的数据交换和集成。下面是该教程的知识点总结: 中间件的概念和优点 ...
对于更深入的学习,指南提供了对高级主题的讨论,例如,如何设计高可用性架构、实施负载均衡和容错机制,以及如何集成WebSphere MQ与其他企业应用和服务。这些高级主题有助于读者理解如何将WebSphere MQ应用于复杂的...
IBM WebSphere MQ是一个先进的消息中间件产品,它提供了一个可靠的消息传输系统,用于应用程序、Web服务和Web 2.0技术。它为不同计算平台和操作系统间的消息通信提供了一个统一的解决方案。WebSphere MQ的v7版本特别...
WebSphere MQ,原名MQSeries,是IBM推出的一款企业级的消息中间件产品,它在IT领域扮演着重要的角色,尤其在分布式系统、企业应用程序集成(EAI)以及业务流程自动化中发挥着关键作用。WebSphere MQ V6.0是这个系列...
在第三章,我们将学习如何规划和安装Websphere MQ,包括硬件和软件需求,以及安装、验证过程。安装过程中,了解WebSphere MQ文档和管理工具至关重要。 第四章介绍了Websphere MQ的管理系统,包括本地和远程管理,...
【Websphere MQ入门教程7】是一本专为初学者和WebSphere MQ系统管理员及开发者设计的实用指南。全书涵盖了WebSphere MQ...通过阅读此书,读者可以系统地学习并逐步精通WebSphere MQ,从而在实际项目中发挥其强大功能。
安装中提供的示例程序(如 IVP)可以帮助开发者了解如何使用 WebSphere MQ for Java 进行基本操作,这些示例通常包括创建队列、发送和接收消息等场景,是学习和调试的宝贵资源。 总结,WebSphere MQ for Java 是 ...
《精通WebSphere MQ》一书深入探讨了IBM WebSphere MQ这一强大的消息中间件技术,旨在为读者提供全面、深入的理解和实践经验。以下是基于该书标题、描述、标签以及部分内容提炼的关键知识点: ### 1. 消息中间件...