或者当被接收到的消息是当前事务的一部分或者还没有在会话中确认时,删除一个永久订阅
是错误的。
6。12 恢复和重发
非永久订阅者的未确认消息应当能够在非永久订阅者生存时被恢复。当非永久订阅者终
止时,等待它的消息很可能被丢弃而不管是否被确认。
只有永久订阅可以可靠地恢复未确认消息。
向转发模式是PERSISTNET 的主题发送消息不会改变恢复和重发的模式。为了保证转发,
TopicSubscriber 应当设置一个永久订阅。
6。13 管理订阅
理想情况下,发布者和订阅者都是在它们被创建时由提供商动态注册。从客户端视角来
看,总是这样的。从管理员的角度看,可能需要其他任务来支持发布者和订阅者的创建。
为消息存储分配的资源的数量和资源过量的结果在JMS 中没有定义。
6。14 TopicRequestor
JMS 提供了TopicRequestor 帮助类来简化服务请求。
TopicRequestor 构造器需要传入 TopicSession 和目的地主题。它为响应创建了一个
TemporaryTopic ,并提供了发送请求消息的request()方法然后等待回复。
这是最基本的请求/ 响应抽象,它可以满足大多数的用途。JMS 提供者和客户端可以自
由地创建多种专业版本。
6。15 可靠性
当主题的所有消息必须被接收时,应当使用永久订阅。JMS 保证在永久订阅者不活动时
48 / 66
…………………………………………………………Page 49……………………………………………………………
保留发布的消息,并在订阅者活动后将消息转发给它。
非永久订阅者只应当用于可以接受丢失的情况。
表6? Pub/Sub 可靠性
如何发布 非永久订阅 永久订阅
NON_PERSISTENT 最多一次(如果不活动则丢 最多一次
失)
PERSISTENT 一次只有一个(如果不活动则 一次只有一个
丢失)
7 JMS 异常
7。1 概述
本章对JMS 异常处理做了概述并定义了标准的JMS 异常。
7。2 JMSException
JMS 定义了JMSException 作为JMS 方法抛出的异常的根类。JMSException 是一个受检查
异常,捕捉它就可以处理所有JMS 相关的异常。JMSException 提供了下面的信息:
z 提供商特有的描述错误的字符串——这个字符串是标准的 java 异常消息,可用
getMessage()获得这个消息。
z 提供商特有的字符串型错误代码。
z 对另一个异常的引用——一个 JMS 异常通常是由底层问题引起。如果合适,底层
异常可以被关联到JMS 异常。
JMS 方法在它们的标识符中只包含JMSException 。JMS 方法可以抛出任意的标准JMS 异
常,以及JMS 供应商特有的异常。JMS 方法的javadoc 只给出了必需的异常情况。
7。3 标准异常
除了JMSException 外,JMS 定义了几个其他异常,它们标准化了基本错误原因的报告。
只有几种情况必须抛出指定的JMS 异常。这些情况在异常描述中用单词“必须”标出。
这些情况都是唯一的,在这些情况下客户端逻辑应当根据特定的问题抛出特定的JMS 异常。
在其他情况下,强烈建议JMS 提供商尽可能使用标准的异常。JMS 提供商如果需要也可
以从这些异常中提取供应商特有的异常。
JMS 定义了下面的标准异常:
z IllegalStateException:当在不合法或不合适的时间,或提供商没有处于处理请求操
作的合适状态,则抛出这个异常。例如,如果 Session。mit()在非事务会话中被
调用,则必须抛出这个异常。当调用与域不匹配的方法时,例如调用
TopicSession。CreateQueueBrowser() ,必须抛出这个异常。
z JMSSecurityException :当提供商拒绝客户端提交的用户名/密码时必须抛出这个异
49 / 66
…………………………………………………………Page 50……………………………………………………………
常。它也可以用于安全限制阻止方法完成的情况。
z InvalidClientException:当客户端企图设置连接的客户端标识,但提供商拒绝了这个
标识的值时,就必须抛出这个异常。
z InvalidDestinationException:当提供商不能识别给定的目的地或目的地不再有效时,
必须抛出这个异常。
z InvalidSelectorException:当 JMS 客户端企图用无效的语法向提供商提供消息选择
器时,必须抛出这个异常。
z MessageEOFException:当正在读取StreamMessage 或ByteMessage 时到达了不期望
的流结尾,则必须抛出这个异常。
z MessageRormatException:当JMS 客户端企图使用消息不支持的数据类型或企图将
消息的数据读作错误的类型时,必须抛出这个异常。当消息属性值发生同样的类型
错误时也必须抛出这个异常。例如,如果 StreamMessage。writeObject()被给了不支
持的类或如果 StreamMessage。readShort()用于读取布尔值,则必须抛出这个异常。
如果提供商被给了不能接受的类型,则也必须抛出这个异常。注意,一个特殊的情
况是当企图读取不正确格式的 String 数据作为数值型值时,必须抛出
java。lang。NumberFormatException 。
z MessageNotReadableException:当JMS 客户端企图读一个只可写的消息时必须抛出
这个异常。
z MessageNotWriteableException:当JMS 客户端企图写一个只可读的消息时必须抛
出这个异常。
z ResourceAllocationException:当提供商不能定位方法请求的资源时必须抛出这个异
常。例如,当由于JMS 提供商资源缺失而导致调用createTopicConnection 失败时应
当抛出这个异常。
z TransactionProgressException :当由于事务处于处理中而导致操作无效时抛出这个
异常。例如,当会话时分布式事务的一部分时调用 Session。mit()应当抛出这个
异常。
z TransactionRolledBackException :当调用Session。mit 导致当前事务回滚时必须抛
出这个异常。
8 JMS 应用服务器工具
8。1 概述
本章描述用于并发处理订阅消息的JMS 工具。也定义了JMS 提供商如何支持JTS 可感知
的会话。这些工具主要由JMS 提供商使用。
如果JMS 客户端使用JTS 可感知工具来进行客户端编程,则它可能是不可移植的,因为
不要求JMS 提供商支持这些接口。
在本章中描述的工具是JMS 的一个特殊类别。它们是可选的,可能只有部分JMS 提供
商对它们提供支持。
50 / 66
…………………………………………………………Page 51……………………………………………………………
8。2 并发处理订阅的消息
JMS 提供了一个特殊的工具用于创建Mes
小说推荐
- 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章