《JMS简明教程(PDF格式)》第13章


z arithmetic〆xp1 'NOT' BETWEEN arithmetic〆xp2 AND arithmetic〆xp3(比较操作)
“age BETWEEN 15 AND 19”等价于”age 》= 15 AND age 2500”
26 / 66
…………………………………………………………Page 27……………………………………………………………
3。8。1。2 Null 值
如上所述,头字段和属性值都可以是NULL。包含NULL 值的选择器表达式的计算由SQL
92 NULL 语义定义。这里提供了这些语义的简要描述。
SQL 认为NULL 值是未知值。用未知值比较或运算仍然是未知的。
IS NULL 和IS NOT NULL 操作符将未知的头或属性值分别转换成TRUE 或FALSE 值。
布尔操作符使用下表定义的三值逻辑:
表3? AND 操作符的定义
AND T F U
T T F U
F F F F
U U F U
表3? OR 操作的定义
OR T F U
T T T T
F T F U
U T U U
表3? NOT 操作的定义
NOT
T F
F T
U U
3。8。1。3 特别注意
当在消息选择器中使用 JMSDeliveryMode 时,它被看作值是’PERSISTENT’ 
和’NON_PERSISTENT’ 。
日期和时间值应当使用标准的Java long 毫秒值。当消息选择器中包含日期或时间文法 
时,它的值应当是整型的。产生毫秒值得标准方式是使用java。util。Calendar 。
尽管 SQL 支持固定小数比较和算术运算,但JMS 消息选择器不支持。这是因为精确数 
值是不能有小数的(而且,带小数的数值的加法是作为近似数值的备选呈现方式)。
不支持SQL 注释。
3。9 访问已发送的消息
在发送消息后,客户端可以保留和更改这个消息,但不影响已发送的消息。同一个消息 
对象可以被多次发送。
在发送方法执行时,消息不能被客户端修改。如果修改了,则没有定义发送的结果是什 
么。
27 / 66
…………………………………………………………Page 28……………………………………………………………
3。10 改变收到的消息的值
当接收到消息时,可以改变消息的头字段;但是他的属性和消息体是只读的,正如本章 
所述。
限制只读是因为为了给 JMS 提供商在如何实现管理接收到的消息方面更多的自由。例 
如,它们可以返回一个消息对象,这个对象引用位于内部消息缓冲区的属性条目和消息体的 
值,而不需要返回一个拷贝。
在调研 clearBody 或clearProperties 方法使得消息体或属性可写后,消费者可以修改接 
收到的消息。如果消费者更改了接收到的消息,且消息随后被转发,那么转发的消息必须是 
原始的没有被改变的消息(除了被 JMS 提供商为转发而更改的头和属性外,例如 
JMSRedilvered 头和JMSXDeliveryCount 属性)。
3。11 JMS 消息体
JMS 提供了五种形式的消息体。每种形式都由一个消息接口来定义:
z StreamMessage——消息体包含的是java 原始值流。它连续的填充和读。
z MapMessage——消息体包含一系列名字┲刀远渲忻质荢tring,值是Java 原 
始类型。条目可以被枚举器连续获取也可以按名字随机获取。条目的顺序没有定义。
z TextMessage——消息体
小说推荐
返回首页返回目录