Interstage Application Server J2EE ユーザーズガイド |
目次 索引 |
第5部 JMS編 | > 第21章 JMSアプリケーションの開発 | > 21.2 作成方法 | > 21.2.10 メッセージセレクタ機能 |
条件式はSQL文のWHERE句で使用されるSQL-92の条件式に準拠しています。
例
color = 'blue' |
上記の条件式の左辺のcolorは識別子といい、フィルタリング時にはJMS Messagesのプロパティ名と比較されます。
右辺の'blue'はリテラルといい、フィルタリング時にはJMS Messagesのプロパティ値と比較されます。
リテラルには文字列型リテラルと完全数値リテラルと近似数値リテラルがあります。
文字列型リテラルはシングルクォートで囲む必要があります。
完全数値リテラルは57、-957、+62のように小数点なしの数値です。
近似数値リテラルは7E3、-57.9E2のように指数表記された数値、または7.、-95.7、+6.2のように小数点を含む数値です。
なお、条件式の文法の詳細については、Javadoc集の“パッケージ javax.jms”の“インタフェース Message”を参照してください。
以下に条件式の例を示します。
例:プロパティ名NAMEのプロパティ値が"FUJITSU"のJMS Messagesを受信する場合
NAME = 'FUJITSU' |
例:プロパティ名NUMBERのプロパティ値が1000以上のJMS Messagesを受信する場合
NUMBER >= 1000 |
例:プロパティ名NUMBERのプロパティ値が230以下のJMS Messagesを受信する場合
NUMBER <= 10 * 20 + 30 |
このように、算術演算子(+,-,*,/)を使用することができます。
例:プロパティ名NUMBERのプロパティ値が100以上かつ1000以下のJMS Messagesを受信する場合
NUMBER BETWEEN 100 AND 1000 |
例:プロパティ名NUMBERのプロパティ値が100未満または1000より大きいJMS Messagesを受信する場合
NUMBER NOT BETWEEN 100 AND 1000 |
例:プロパティ名PROPERTYのプロパティ値が"任意の文字+C"のJMS Messagesを受信場合
PROPERTY LIKE '%C' |
プロパティ値がABCやCCCやCの場合は受信できますが、ABの場合は受信できません。
例:プロパティ名PROPERTYのプロパティ値が"任意の文字+C"以外のJMS Messagesを受信する場合
PROPERTY NOT LIKE '%C' |
プロパティ値が"AB"の場合は受信できますが、"ABC"や"CCC"や"C"の場合は受信できません。
例:プロパティ名PROPERTYのプロパティ値が"任意の1文字+C"のJMS Messagesを受信する場合
PROPERTY LIKE '_C' |
プロパティ値が"AC"や"CC"の受信できますが、"ABC"や"C"の場合は受信できません。
例:プロパティ名PROPERTYのプロパティ値が"任意の1文字+本"のJMS Messagesを受信する場合
PROPERTY LIKE '__本' |
プロパティ値が"日本"の受信はできますが、"本"は受信できません。
なお、日本語は2バイトなので、1文字に付き'_'が2個必要です。
例:プロパティ名PROPERTYのプロパティ値が"任意の文字+%+C"のJMS Messagesを受信する場合
PROPERTY LIKE '%#%C' ESCAPE '#' |
プロパティ値が"A%C"の受信はできますが、"AAC"の場合は受信できません。
例:プロパティ名PROPERTYのプロパティが存在しないJMS Messagesを受信する場合
PROPERTY IS NULL |
例:プロパティ名PROPERTYのプロパティが存在するJMS Messagesを受信する場合
PROPERTY IS NOT NULL |
例:プロパティ名PROPERTYのプロパティ値が"AAA"または"BBB"または"CCC"ならばJMS Messagesを受信する場合
PROPERTY IN ('AAA','BBB','CCC') |
例:プロパティ名PROPERTYのプロパティ値が"AAA"または"BBB"または"CCC"以外の場合にJMS Messagesを受信する場合
PROPERTY NOT IN ('AAA','BBB','CCC') |
例:プロパティ名NUMBERのプロパティ値が100以上かつ1000以下、またはプロパティ名PROPERTYのプロパティ値が"任意の文字+C"の場合にJMS Messagesを受信する場合
(NUMBER BETWEEN 100 AND 1000) OR (PROPERTY LIKE '%C') |
例:プロパティ名NUMBERのプロパティ値が100以上かつ1000以下、かつプロパティ名PROPERTYのプロパティ値が"任意の文字+C"の場合にJMS Messagesを受信
(NUMBER BETWEEN 100 AND 1000) AND (PROPERTY LIKE '%C') |
例:プロパティ名NUMBERのプロパティ値が100以上かつ1000以下以外、またはプロパティ名PROPERTYのプロパティ値が"任意の文字+C"以外の場合にJMS Messagesを受信する場合
NOT ((NUMBER BETWEEN 100 AND 1000) AND (PROPERTY LIKE '%C')) |
目次 索引 |