有消息服务。
提供商专有属性的目的是为提供商本地客户端提供特殊功能。他们不应当用于JMS 。
23 / 66
…………………………………………………………Page 24……………………………………………………………
3。6 消息确认
当客户端指定JMS 消费者的消息要显式地被确认时,所有的JMS 消息使用acknowledge
方法来确认消息。
如果客户端使用自动确认,那么忽略对确认方法的调用。
参见4。4。11 章节“消息确认”了解更详细的信息。
3。7 Message 接口
Message 接口是所有 JMS 消息的根接口。它定义了 JMS 消息头字段、属性工具和
acknowledge 方法。
3。8 消息选择
许多消息应用需要过滤和分类它们生产的消息。
在消息被发送到单个接收者的情况下,通过将标准放入消息中并在接收客户端丢弃它不
感兴趣的消息来实现。
当消息被广播到许多客户端时,将选择标准放入消息头中是非常有用的,这样 JMS 提
供商就可以知道这些标准。这样提供商就可以处理更多的过滤和路由工作,否则就需要应用
来做这些工作。
JMS 提供了让客户端将消息选择代理给JMS 提供商的功能。这简化了客户端的工作,也
可以让JMS 提供商减少时间和带宽,否则它们将会将客户端不需要的消息发送给客户端。
客户端使用消息属性将应用专有的选择标准附加到消息中。客户端用消息选择器表达式
来指定消息选择标准。
3。8。1 消息选择器
JMS 消息选择器让客户端通过消息头指定它感兴趣的消息。只有头和属性匹配了选择器
的消息才会被转发。“不转发”的语义随着使用的MessageConsumer 的不同而有所不同。参
见5。8 章节“QueueReceiver ”和6。11 章节“TopicSubscriber ”了解更详细的信息。
消息选择器不能引用消息体内的值。
当消息头字段和属性值与它们在选择器中对应的标识符匹配时,如果选择器计算值为
true ,那么消息选择器匹配了一个消息。
3。8。1。1 消息选择器语法
消息选择器是一个String,它的语法是SQL92 条件表达式语法的子集。(注:参见X/Open
CAE 规范数据管理:结构化查询语言(SQL ),版本2,ISBN:1?5912?51? 1996 年3 月)
如果消息选择器的值是空串,那么值被看作是null,表示消息消费者没有消息选择器。
消息选择器的计算顺序是从左到右。圆括号可以改变这个顺序。
预定义的选择器文法和操作符名字用大写字符出现在这里;但是它们是大小写敏感的。
24 / 66
…………………………………………………………Page 25……………………………………………………………
选择器可以包含:
z 文法
字符串用单引号括起来,在字符串内出现的单引号使用两个单引号表示(即用
单引号做转义符);例如’literal’和’literal’’s’ 。类似java 的String 文法,它们使用
Unicode 字符编码。
精确数值文法是没有小数点的数值,例如 57,?57,+62 ;支持Java 的 long
取值范围。精确数值文法使用java 的Integer 文法语法。
近似数值文法是科学计数法,例如7E3 和?7。9E2,或带小数的数值,例如7。,
?5。7 和+6。2 ;支持double 的取值范围。近似数值文法使用java 浮点数文法语
法。
布尔文法是TRUE 和FALSE。
z 标识符
标识符是无限长的字符串,它必须以 java 标识符开始字符开头;下述的所有
字符必须是java 的标识符局部字符(part character )。标识符开头字符可以是
方法Character。isJavaIdentifierStart 返回true 的任何字符。包括’_’和’’ 。标识符
局部字符是方法Character。isJavaIdentifierPart 返回true 的任何字符。
标识符不能是NULL,TRUE 或FALSE。
标识符不能是NOT,AND ,OR,BETWEEN,LIKE,IN,IS 或ESCAPE。
标识符可以是头字段引用或属性引用。消息选择器中的属性值类型与用于设置
属性的类型一致。如果引用了消息中不存在的属性,那么它的值是 NULL。在
选择器重NULL 值的计算在节3。8。1。2 “Null 值”描述。
应用到属性get 方法的转换不应用到那些消息选择器表达式使用的属性。例如,
假 定 你 为 一 个 属 性 设 置 了 字 符 串 值 , 如 下 :
myMessage。setStringProperty(“NumberOfOrders”;”2”);那么下面的在消息选择器
中的表达式计算值将是 false ,因为字符串不能用在数学表达式
中:”NumverOfOrders 》 1”
标识符是大小写敏感的。
消息头字段引用仅限于 JMSDeliveryMode ,JMSPriority ,JMSMessageID ,
JMSTimestamp ,JMSCorrelationID 和JMSType 。JMSMessageID ,JMSCorrelationID
和JMSType 值可以是null,且如果是null 则被看作是NULL 值。
任何以“JMSX ”开头的名字是JMS 定义的属性名。
任何以“JMS_ ”开头的名字是提供商专有的属性名。
任何不以“JMS ”开头的名字是应用专有的属性名。
z 空格和Java 定义的一样:空格,水平tab ,格式填充符(form feed )和行结束符。
z 表达式:
选择器是条件表达式;选择器计算为true 则匹配,计算为false 获未知则不匹
配。
算术表达式由算术表达式,算术运算符,值是数值的标识符和数值文法组成。
条件表达式由条件表达式,比较运算符,逻辑运算符,值是布尔的标识符和布
尔文法组成。
z 用于改变表达式计算的顺序。
z 逻辑运算符的顺序优先级:NOT,AND ,OR
z 比较运算符:=,》,》=,
小说推荐
- 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章