JMS 消息选择器

消息选择器使 JMS 使用者可以更有选择地从特定主题或队列接收消息。

消息选择器在条件表达式中使用消息属性和头作为条件。这些表达式使用布尔逻辑来声明应该将哪些消息传递给客户机,如 JMSInput 节点。

下表说明了消息选择器的构造。它包含一个标识,如 JMSPriority 头,或由应用程序控制的属性 myProperty1。选择器字符串必须指定一个跟有文字的运算符。

元素 有效值
标识
  • 属性或头字段引用(如 JMSPrioritymyProperty1
  • 不能使用以下各值:NULL、TRUE、FALSE、NOT、AND、OR、BETWEEN、LIKE、IN 和 IS
运算符

AND、OR、LIKE、BETWEEN、=、<>、<、>、<=、>=、IS NULL 和 IS NOT NULL

文字
  • 两个布尔文字 TRUE 和 FALSE
  • 没有小数点的精确数字字面值;例如 +25、-399 和 40
  • 近似数字字面值。这些可以使用科学记数法或小数;例如 -21.4E4、5E2 和 +34.4928

JMSInput 节点提供自由格式字符串 PropertySelector 来指定过滤或包含应用程序属性的选择器。该节点所具有的属性还可以针对特定头属性,其中标识是隐含的,由节点生成。对于头选择器,必须指定字符串的运算符和文字部分。

如果指定了多个选择器,则节点生成组合选择器字符串,其中将单个选择器字符串以 AND 运算符连接在一起,且每个选择器字符串部分都以圆括号括起。

以下是每个选择器属性的示例:
选择器属性 描述
属性选择器 OrderValue > 100.00

此字符串按所显示的样子直接使用。

时间戳记 BETWEEN 1057576423231 AND 10575788993265

只将在这两个 Java 时间(其中 Java 时间是自 1970 年 1 月 1 日以来的毫秒数)之间放入的消息传递到 JMSInput 节点。在此例中,所生成的字符串以标识 JMSTimestamp 为前缀。

传递方式 PERSISTENT

这表示只有被发送方标记为 PERSISTENT 的消息应该传递到 JMSInput 节点。在此例中,所生成的字符串以标识 JMSDeliveryMode 为前缀。

优先级 >= 5 AND <= 8

这表示只有被发送方标记为具有优先级 5678 的消息应该传递到 JMSInput 节点。在此例中,所生成的字符串以标识 JMSPriority 为前缀。

消息标识 > WMBRK123456

这将返回消息标识大于指定值的消息。在此例中,所生成的字符串以标识 JMSMessageID 为前缀。

重新传递 FALSE

这表示节点应该接收未重新传递的消息。在此例中,所生成的字符串以标识 JMSRedlivered 为前缀。

相关标识 = WMBRKABCDEFG

这将返回相关标识等于值 WMBRKBABCDEFG 的消息。在此例中,所生成的字符串以标识 JMSCorrelationID 为前缀。

相关概念
JMS 事务性
相关参考
用于应用程序通信模型的 JMS 属性
JMS 消息域属性
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
ac24876_