和常见的邮件箱一样,队列可以包含混合消息。但类似于实际的邮件箱,创建和维护每
个队列的成本都是很高的。大多数队列都由管理员创建,并被客户端看作是静态资源。
JMS PTP 模型定义了客户端如何和队列工作;如何找到队列,客户端如何将消息发送给
它们,以及如何从队列中接收消息。
本章描述了PTP 模型的语义。支持PTP 模型的JMS 提供商必须实现这里描述的语义。
不管JMS 客户端程序是否使用PTP 域的接口,还是在第4 章“JMS 公共工具”中描述的
公共接口,客户端程序必须被保证有相同的行为。
表5? 展示了 PTP 域特有的接口和JMS 的公共接口。公共接口是创建JMS 应用程序的
最佳方式,因为它们是独立于域的。
表5? PTP 域接口和JMS 公共接口
PTP 域接口 JMS 最佳的公共接口
QueueConnectionFactory ConnectionFactory
QueueConnection Connection
Queue Destination
QueueSession Session
QueueSender MessageProducer
QueueReceiver MessageConsumer
5。2 队列管理
JMS 没有定义创建、管理或删除长生命队列的工具(没有为TemporaryQueue 提供这样
的机制)。由于大多数客户的使用静态定义的队列,因此这不是问题。
5。3 Queue
Queue 对象封装了提供商特有的队列名称。这个名称是客户端为 JMS 方法指定队列标
识的途径。
JMS 没有定义消息被队列持有的真正时间长度和资源溢出的后果。
参见节4。2 “受管理的对象”了解关于JMS Destination 对象的更多信息。
5。4 TemporaryQueue
TemporaryQueue 是唯一的Queue 对象,它为Connection 或QueueConnection 的永久性
而创建。它是系统定义的队列,只能被创建它的Connection 或QueueConnection 来消费。
参见节4。4。3 “创建临时目的地”了解更详细的信息。
5。5 QueueConnectionFactory
客户端使用QueueConnectionFactory 来创建具有JMS PTP 提供商的QueueConnection 。
参见节4。2 “受管理对象”了解关于JMS QueueConnectionFactory 对象更多的信息。
43 / 66
…………………………………………………………Page 44……………………………………………………………
5。6 QueueConnection
QueueConnection 是一个对JMS PTP 提供商的活动连接。客户端使用QueueConnection
来创建一到多个用于生产和消费消息的QueueSession 。
参见节4。3 “Connection ”了解更详细的信息。
5。7 QueueSession
QueueSession 提供了创建 QueueReceiver 、 QueueSender 、 QueueBrowser 和
TemporaryQueue 的方法。
如果在 QueueSession 终止时还有已被接收但还没被确认的消息,那么这些消息必须被
保留,且在消费者下一次访问队列时被重发。
参见节4。4 “Session ”了解更详细的信息。
5。8 QueueReceiver
客户端使用QueueReceiver 来接收已被转发到队列的消息。
尽管里两个会话可以有连接到同一个队列的 QueueReceiver ,但 JMS 没有定义在
QueueReceiver 间如何分发消息。
如果QueueReceiver 指定了消息选择器,那么没被选中的消息仍然在队列中。根据定义,
消息选择器可以让QueueReceiver 跳过消息。这意味着当跳过的消息最终被读时,总的读排
序不保留由每个消息生产者定义的部分排序。只有没有消息选择器的QueueReceiver 才按照
消息生产者指定的顺序读消息。
参见4。5 “MessageConsumer”了解更详细的信息。如果MessageConsumer 正在从Queue
中消费消息,那么它的行为必须和节5。8 “QueueReceiver”中描述的一样。
客户端使用MessageProducer 或QueueSender 来向Queue 发送消息。
参见节4。6 “MessageProducer”了解更详细的信息。
5。9 QueueBrowser
客户端使用QueueBrowser 来查看队列中的消息,但不删除它们。QueueBrowser 可以从
Session 或QueueSession 来创建。
浏览方法返回java。util。Enumeration ,它用于遍历队列中的消息。它可以是队列的全部内
容,或它只包含批评消息选择器的消息。
当在浏览消息时,消息可以到达和到期。JMS 不要求枚举的内容是对列内容的静态快照。
这些变化是否可见依赖于JMS 提供商。
5。10 QueueRequestor
JMS 提供了一个QueueRequestor 帮助类来简化服务请求。
QueueRequestor 构造器需要一个 QueueSession 和目的地队列。它为响应创建
44 / 66
…………………………………………………………Page 45……………………………………………………………
TemporaryQueue ,并提供了一个request 方法来发送请求信息和等待回复。
5。11 可靠性
队列通常由管理员创建,并长时间存在。它总是持有发送到它的消息,不管消费消息的
客户端是否是活动的。因此,客户端不必担心它会错过消息。
6 JMS 发布/订阅模型
6。1 概述
JMS Pub/Sub 模型定义了JMS 客户端如何发布消息到基于内容层次的众所周知的节点和
如何从节点订阅消息。JMS 将这些节点称为主题(topic )。
在这一节,术语publish 和subscribe 用于替代前面更常用的术语produce 和consume 。
注意可以被看作是一个小的消息代理,它收集和分发定位到它的消息。通过依靠主题作
为中介,消息发布者和订阅者保持独立。主题随着发布者和订阅者的变化而自动适配。
当代表它们的Java 对象存在时,发布者和订阅者是活动的。JMS 也支持可选的永久订
阅者,这些订阅者在不活动时也会被记住是存在的。
本章描述 Pub/Sub 模型的语义。支持 Pub/Sub 模型的JMS 提供商必须支持这里描述的
语义。
不管JMS 客户端程序使用Pub/Sub 域特有的接口还是使用在第4 章“JMS 公共工具”中
描述的公共接口,客户端程序必须被保证有相同的行为。
表6? 展示了Pub/Sub 域特有的接口和JMS 的公共接口。公共接口是创建JMS 应用程序
的最佳方式,因为它们是独立于域的。
表6? Pub/Sub 域接口和JMS 公共接口
Pub/Sub 域接口 JMS 最佳的公共接口
TopicConnectionFactory ConnectionFactory
TopicConnection Connection
Topic Destination
TopicSession Session
TopicPublisher MessageProduce
小说推荐
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- JSP入门教程(DOC格式)
- -Page 1-jsp 入门教程0.0.1版权(c 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。QQ:475784337QQ 群:51239192MSN:lingirl6@hotmail.EMAIL:lingirl6@hotmail.2008-02-28 20:05:061
- 最新章:第37章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章