24 JMS

Oracle Data IntegratorでのJava Message Services (JMS)の使用方法を理解することが重要です。

この章には次の項が含まれます:

概要

Oracle Data Integratorには、JMS宛先を統合するための、単純で透過的な方法が用意されています。この章では、テキスト・ペイロードを使用するJMSメッセージのバッチ・モードでの処理について説明します。XMLペイロードの処理の説明は、「JMS XML」を参照してください。

概念

JMSナレッジ・モジュールは、最も一般的なJMS準拠のミドルウェア(Oracle Service Bus、Sonic MQなど)に適用されます。これらのほとんどのナレッジ・モジュールには、メッセージを確実に配信するためのトランザクション処理が含まれます。

JMSメッセージの構造

この項では、JMS宛先のメッセージの構造を説明します。

JMSメッセージは次の3つのセクションで構成されます。

ヘッダー

ヘッダーのヘッダー・フィールドには、メッセージ関連の標準メタデータが含まれます。標準メタデータには、宛先(JMSDestination)メッセージID (JMSMessageID)メッセージ・タイプ(JMSType)などがあります。

プロパティ

プロパティ・セクションには、メッセージ関連の追加のメタデータが含まれます。これらのメタデータはプロパティであり、次の3つのグループに分けられます。

  • オプションのJMSヘッダーであるJMS定義のプロパティ。名前の先頭にJMSXが付きます(JMSXUserID、JMSXAppIDなど)。

  • プロバイダ固有のプロパティ。ルーター・ベンダー固有のプロパティです。名前の先頭にJMS_<vendor name>が付きます。

  • アプリケーション固有のプロパティ。これらのプロパティは、メッセージを送信するアプリケーションに依存します。メッセージ・ペイロードに含まれないユーザー定義の情報です。

ヘッダー・セクションおよびプロパティ・セクションでは、次のような一連のヘッダー・フィールドおよびプロパティが提供されます。

  • 固有のJavaデータ型(boolean、string、shortなど)が指定されている。

  • アクセスして読取りまたは書込み(もしくはその両方)を行える。

  • JMSセレクタを介してルーター上でフィルタリングするために使用できる。

ペイロード

ペイロード・セクションにはメッセージの内容が含まれます。この内容は、テキスト、XML、バイナリなど、何でも構いません。

JMS宛先の使用

Oracle Data Integratorでは、JMS宛先によって配信されるJMSテキストおよびバイト・メッセージの処理が可能です。各メッセージはデータ行のコンテナとして扱われ、JMSキューまたはJMSトピック・テクノロジを介して処理されます。

JMSキューまたはJMSトピック・テクノロジでは、各JMS宛先がフラット・ファイル・データストアと同様に定義されます。宛先内の各メッセージは、データストアのレコードです。

トポロジでは、単一の物理スキーマを使用して、各JMSルーターがJMSトピックまたはキューのデータ・サーバーとして定義されます。つまり、1つのデータ・サーバーを使用してトピックにアクセスし、別のデータ・サーバーを使用してキューにアクセスするために、JMSルーターは2回定義される可能性があります。

各JMS宛先(トピックまたはキュー)は、リソース名がJMS宛先の名前(ルーターで定義されたキューまたはトピックの名前)と一致する、JMSデータストアとして定義されます。モデルによって、異なるトピックまたはキューに関連するメッセージ構造がグループ化されます。

JMSデータストア構造は、同様にフラット・ファイル(デリミタ付きまたは固定幅)に定義されます。メッセージのプロパティまたはヘッダー・フィールドは、JMS固有のデータ型を使用して、このフラット・ファイル構造内で追加の擬似列として宣言できます。宛先内の各メッセージは、JMSデータストアのレコードとして処理されます。

メッセージの処理

JMS宛先は通常のファイル・データストアとして、また、メッセージはこれらのデータストアの行として処理されます。これらのテクノロジにより、メッセージ・セット全体が生成され、各マッピング内で消費されます。

メッセージのパブリッシュおよび消費には、JMS宛先からのメッセージの削除またはJMS宛先へのメッセージのポストをファイナライズするためのコミットアクションが必要です。コミットは、特に、読取り時に重要です。コミットしない場合、メッセージは読み取られますが、消費されません。JMSトピック/キューに残り、後で再度読み取られます。

メッセージの内容および擬似列はどちらも、マッピング内で通常の(マッピング、フィルタなどの)属性として使用できます。一部の擬似列(MESSAGE_IDプロパティを表す擬似列など)は読取り専用であり、ヘッダー・フィールドの一部のプロパティはナレッジ・モジュール・オプションを介して使用(または設定)されます。

Data Integratorでは、メッセージ・ペイロード(属性)として、またはアプリケーション・プロパティなどのプロパティ(擬似列)を介して、情報を転送できます。

プロパティを使用した情報伝達は、メッセージを生成または消費するサード・パーティ・アプリケーションによって制限されます。

メッセージのフィルタリング

次の2つの方法で、JMS宛先のメッセージをフィルタ処理できます。

  • データストアの属性および擬似列を使用して、フィルタを定義する。この場合、メッセージの消費後に、Data Integratorによってフィルタリング操作が実行されます。これは、このフィルタで拒否されるメッセージも消費される可能性があることを意味します。

  • メッセージ・セレクタ(MESSAGE_SELECTOR KMオプション)を定義する。このタイプのフィルタでは、メッセージのプロパティまたはヘッダー・フィールドのみを使用できます。このフィルタはルーターによって処理され、フィルタ条件を満たすメッセージのみが消費されるため、転送されるメッセージの数が削減されます。

ナレッジ・モジュール

Oracle Data Integratorには、JMSメッセージを処理するためのナレッジ・モジュール(KM)が用意されています。これらのリストを表24-1に示します。

表24-1 JMSナレッジ・モジュール

ナレッジ・モジュール 説明

IKM SQL to JMS Append

任意のSQL準拠ステージング領域からJMS準拠のメッセージのキューまたはトピックへ、テキストまたはバイナリ形式でデータを統合します。

データを変換してターゲットのJMSキューまたはトピックにエクスポートする場合は、このIKMの使用を検討してください。ほとんどのソース・データストアが同じデータ・サーバー上にある場合は、余分なロード・フェーズ(LKM)を発生させないために、このデータ・サーバーをステージング領域として使用することをお薦めします。

このIKMを使用するには、ステージング領域がターゲットと異なる必要があります。

LKM JMS to SQL

テキストまたはバイナリのJMS準拠メッセージのキューまたはトピックから、ステージング領域として使用される任意のSQL準拠データベースへ、データをロードします。エージェントを使用してソース・キュー/トピックから選択されたメッセージを読み取り、動的に作成された一時ステージング表に結果を書き込みます。

メッセージを確実に配信するために、メッセージのコンシューマ(またはサブスクライバ)は、IKMによってデータが実際にターゲットに統合されるまで、読取りをコミットしません。

ソース・データストアの1つがテキストまたはバイナリのJMSメッセージの場合は、このLKMの使用を検討してください。

インストールおよび構成

JMSナレッジ・モジュールの使用を開始する前に、この項の情報を必ず読んでください。

システム要件および動作要件

インストールを実行する前に、システム要件および動作要件のドキュメントを読んで、使用する環境がインストールする製品の最低インストール要件を満たすことを確認する必要があります。

サポートされているプラットフォームおよびバージョンのリストには、次のOracle Technical Network (OTN)からアクセスできます。

http://www.oracle.com/technetwork/middleware/data-integrator/documentation/index.html

テクノロジ固有の要件

JMS宛先へのアクセスは、通常、JNDIサービス経由で行われます。JNDIおよびJMSの構成および固有の要件は、接続先のJMSプロバイダによって異なります。詳細は、JMSプロバイダ固有のドキュメントを参照してください。

接続性要件

Oracle Data Integratorには、JMSプロバイダ専用のドライバは含まれていません。このプロバイダの接続性要件は、JMSプロバイダのドキュメントを参照してください。

トポロジの設定

トポロジの設定には次が含まれます。

  1. JMSデータ・サーバーの作成

  2. JMS物理スキーマの作成

JMSデータ・サーバーの作成

各JMSデータ・サーバーは、ローカル・ネットワーク経由でアクセス可能な1つのJMSプロバイダまたはルーターに対応します。

JMSデータ・サーバーにはJMSキューとJMSトピックの2タイプがあります。

  • JMSキュー・データ・サーバーは、JMSルーター内の複数のキューへのアクセスに使用されます。

  • JMSトピック・データ・サーバーは、JMSルーター内の複数のトピックへのアクセスに使用されます。

データ・サーバーの作成

『Oracle Data Integratorの管理』データ・サーバーの作成に関する項に記載されている標準の手順で、JMSキュー・テクノロジ用またはJMSトピック・テクノロジ用データ・サーバーを作成します。この項では、JMSキューまたはJMSトピック・データ・サーバーの定義に関する必須または固有のフィールドのみについて説明します。

  1. 「定義」タブ:
    • 名前: Oracle Data Integratorに表示されるデータ・サーバーの名前。

    • ユーザー/パスワード: ここでは使用しません。これらのフィールドは空のままにします。

  2. 「JNDI」タブ:
    • JNDI認証: このフィールドをNoneに設定します。

    • JNDIユーザー: JNDIディレクトリに接続するためのユーザー名を入力します(オプションのステップ)。

    • パスワード: このユーザーのパスワード(オプションのステップ)。

    • JNDIプロトコル: リストから「JNDI」プロトコルを選択します(オプションのステップ)。

    • JNDIドライバ: JNDIプロバイダに接続するための初期コンテキスト・ファクトリjavaクラスの名前。例(LDAPの場合): com.sun.jndi.ldap.LdapCtxFactory

    • JNDI URL: <JMS_RESOURCE>。例(LDAPの場合):ldap://<host>:<port>/<dn>

    • JNDIリソース: JMSキューまたはトピックの接続ファクトリに対応するJNDIリソースの論理名。

      たとえば、メッセージ・キューにアクセスする場合はQueueConnectionFactory、トピックにアクセスする場合はTopicConnectionFactoryを指定します。これらのパラメータはJNDIディレクトリおよびプロバイダ固有のものです。

JMS物理スキーマの作成

『Oracle Data Integratorの管理』物理スキーマの作成に関する項の説明に従って、標準の手順を使用してJMS物理スキーマを作成します。

注意:

各JMSデータ・サーバーに必要な物理スキーマは、1つのみです。

『Oracle Data Integratorの管理』論理スキーマの作成に関する項の説明に従って、標準の手順を使用してこの物理スキーマ用の論理スキーマを作成し、特定のコンテキストで関連付けます。

統合プロジェクトの設定

JMSを使用してプロジェクトを設定するには、標準の手順に従います。『Oracle Data Integratorでの統合プロジェクトの開発』統合プロジェクトの作成に関する項を参照してください。

JMSでの作業を開始するにあたり、使用するプロジェクトに次のナレッジ・モジュールをインポートすることをお薦めします。

  • IKM SQL to JMS Append

  • LKM JMS to SQL

JMSモデルの作成および定義

この項には次のトピックが含まれます:

注意:

JMSモデルをリバース・エンジニアリングすることはできません。データストアを作成するには、JMSモデルを作成してJMSデータストアを定義する必要があります。

JMSモデルの作成

『Oracle Data Integratorでの統合プロジェクトの開発』モデルの作成に関する項の説明に従って、標準の手順を使用してJMSモデルを作成します。

JMSモデルは、ルーターのトピックまたはキューに対応する一連のデータストアです。各データストアは特定のキューまたはトピックに対応します。データストアの構造によって、このキューまたはトピックのメッセージ構造が定義されます。モデルは常に、論理スキーマに基づきます。特定のコンテキストで、論理スキーマは1つのJMS物理スキーマに対応します。この物理スキーマに対応するデータ・スキーマには、トピックまたはキューが含まれます。

JMSデータストアの定義

Oracle Data Integrator内の各データストアは、1つのJMSトピックまたはキューです。このトピックまたはキューに含まれる各メッセージは、データストアの1つの行です。

JMSメッセージではあらゆるタイプの情報が伝達されるため、メタデータを取得する方法はありません。そのため、リバース・エンジニアリングは不可能です。

データストアの構造を定義するには、次のいずれかを行います。

  • データストアをファイル・データストアとして作成し、メッセージ構造を手動で宣言します。

  • メッセージのリバース・エンジニアリングを自動化するために、Excelスプレッドシートを介してファイル・リバース・エンジニアリングを使用します。このリバース・エンジニアリング方法の詳細は、「ファイル」を参照してください。

  • 別のモデルからJMSモデルへデータストアを複製します。

注意:

データストアのリソース名は、それらのデータに対応するメッセージを伝達するJMS宛先の名前(論理JNDI名)と同一にする必要があります。通常、これらの名前では大/小文字が区別されます。

擬似列としてのJMSプロパティの宣言

プロパティ擬似列は、メッセージのプロパティまたはヘッダー・フィールドを表します。これらの擬似列は、JMS固有のデータ型を使用して、Oracle Data Integratorモデル内でJMSデータストアの属性として定義されます。JMS固有のデータ型は、JMS_xxx(例: JMS String、JMS Long、JMS Intなど)と呼ばれます。

これらのプロパティ擬似列を定義するには、単純に、プロパティと同じ名前の、JMS固有の適切なデータ型が指定された追加の属性を宣言します。

標準、プロバイダ固有またはアプリケーション固有のプロパティのような名前で擬似列を定義した場合、擬似列はそのようなプロパティとしてメッセージで消費またはパブリッシュされます。擬似列が標準またはプロバイダ固有のJMSプロパティ・セットにリストされていない場合は、アプリケーション固有の追加のプロパティとみなされます。

たとえば、マッピングで、CUSTOMERというJMSキューから消費された、またはJMSキューにプッシュされたメッセージのJMSPriorityデフォルト・プロパティを使用または設定するには、CUSTOMERデータストアに(大/小文字を区別して)JMSPriorityという属性を追加します。この属性では、JMSキュー・テクノロジに対してJMS Intデータ型を使用できます。

警告:

  • プロパティ擬似列は、定義して、JMSデータストアのメッセージ・ペイロードを構成する属性の後にデリミタ付きファイル形式で配置する必要があります。列定義の「順序」フィールドを使用して、これらの列を配置します。データストア定義の最後に表示されているかぎり、擬似列自体の順序は重要ではありません。

  • 擬似列名では大/小文字が区別されます。

JMSプロパティの詳細は、次を参照してください。

マッピングの設計

JMSをマッピングのソースまたはターゲットとして使用できます。ステージング領域としては使用できません。

マッピングまたはチェック用に選択したKMによって、このマッピングまたはチェックの機能およびパフォーマンスが決まります。この項に示す推奨事項は、JMSメッセージに関連する様々な状況でのKMの選択に役立ちます。

JMSソースからのデータのロード

JMSをマッピングのソースまたはターゲットとして使用できます。JMSメッセージ・キューまたはトピックのデータは、ステージング領域として使用される任意のSQL準拠データベースにロードできます。マッピング・フロー・タブでの、JMSと別のタイプのデータ・サーバー間でデータをロードするためのLKMの選択は、マッピングのパフォーマンスに関してきわめて重要です。

Oracle Data Integratorには、JMSソースからステージング領域へデータをロードするためのLKM JMS to SQLが用意されています。このLKMは、テキストまたはバイナリのJMS準拠メッセージ・キューまたはトピックから、ステージング領域として使用される任意のSQL準拠データベースへ、データをロードします。

JMS固有のオプションは、表24-2を参照してください。

JMSターゲットでのデータの統合

Oracle Data Integratorには、JMS用に最適化されたデータ統合戦略を実装するIKM SQL to JMS Appendが用意されています。このIKMは、任意のSQL準拠ステージング領域からJMS準拠のメッセージ・キューまたはトピックへ、テキストまたはバイナリ形式でデータを統合します。このIKMのJMS固有のKMオプションは、表24-2を参照してください。

マッピング・フロー・タブのIKMの選択によって、統合のパフォーマンスおよび可能性が決まります。

JMSナレッジ・モジュール・オプション

JMS IKMおよびLKMのJMS固有のKMオプションは、表24-2を参照してください。

このLKMのJMS固有のオプションは、IKM SQL to JMS Appendのオプションと類似しています。異なるのは次の2点のみです。

  • DELETE_TEMPORARY_OBJECTSオプションは、LKMのみで使用できます。

  • PUBLISHオプションは、IKMのみで使用できます。

表24-2 JMS固有のKMオプション

オプション 用途 説明

PUBLISH

書込み

宛先に新規メッセージをパブリッシュする場合は、このオプションをチェックします。このオプションは、デフォルトでYesに設定されています。

JMS_COMMIT

読取り/書込み

メッセージの公開または消費をコミットします。ルーター上で公開または消費をコミットしないためには、このオプションを選択解除します。このオプションは、デフォルトでYesに設定されています。

JMS_COMMIT=1

読取り/書込み

ドライバで使用可能なすべてのメッセージの読取りが完了した直後にJMS読取り操作をコミットします。

JMSサーバーでは、一部のクライアントによってメッセージ読取りが消費されたとみなされます。

JMS_COMMIT=0:

読取り/書込み

JMSドライバはメッセージを読み取りますが、JMS読取りは、JMSサーバーによって実行されたとみなされません。これは、対応するODIセッション(必ずしもインタフェースであるとは限りません)が正常に終了すると発生します。

セッションが失敗すると、メッセージは消費されません。

JMSDELIVERYMODE

書込み

JMS配信モード(1: 非永続、2: 永続)。永続メッセージはサーバーに残り、サーバーのクラッシュ時にリカバリされます。

JMSEXPIRATION

書込み

サーバー上でのメッセージの有効期限をミリ秒で指定します(0から4 000 000 000)。0の場合、メッセージの有効期限が切れることはありません。

警告:この有効期限を過ぎると、メッセージは期限切れとみなされ、トピックまたはキューからなくなります。マッピングの開発時には、このパラメータをゼロに設定することをお薦めします。

JMSPRIORITY

書込み

メッセージの相対的優先度: 0(最低)から9(最高)。

SENDMESSAGETYPE

書込み

送信するメッセージのタイプ(1 - BytesMessage、2 - TextMessage)。

JMSTYPE

書込み

メッセージの名前(オプション)。

CLIENTID

読取り

サブスクライバ識別文字列。このオプションは、JMS互換のためにのみ記述されます。

公開には使用されません。

DURABLE

読取り

D: セッションは永続的です。切断後もサブスクライバ定義がルーター上に残ることを示します。

MESSAGEMAXNUMBER

読取り

取得されるメッセージの最大数(0から4 000 000 000)。0: すべてのメッセージが取得されます。

MESSAGETIMEOUT

読取り

最初のメッセージの待機時間をミリ秒で示します(0から4 000 000 000)。MESSAGETIMEOUTが0の場合、タイムアウトは発生しません。

MESSAGETIMEOUTおよびMESSAGEMAXNUMBERの両方をゼロにすることはできません。MESSAGETIMEOUT= 0でMESSAGEMAXNUMBER =0の場合、MESSAGETIMEOUTの値として1が使用されます。

警告:このタイムアウト値が小さすぎると、マッピングによってメッセージが取得されない可能性があります。

NEXTMESSAGETIMEOUT

読取り

後続の各メッセージの待機時間をミリ秒で示します(0から4 000 000 000)。デフォルト値は1000です。

警告:この値が小さすぎると、マッピングによってトピックまたはキューにあるメッセージの一部のみが取得される場合があります。

MESSAGESELECTOR

読取り

ISO SQL構文のメッセージ・セレクタ。メッセージ・セレクタの詳細は、「JMSプロパティの使用」を参照してください。

JMS標準プロパティ

この項では、メッセージ・ヘッダーに含まれるJMSプロパティおよび使用方法について説明します。

Oracle Data Integratorでは、JMS標準プロパティに対応する擬似列を表24-3の説明に従って宣言する必要があります。

JMSタイプおよびアクセス・モード列では、Oracle Data IntegratorまたはJavaプログラムのこれらのプロパティの使用が参照されます。Oracle Data Integratorでは、これらのプロパティの一部がIKMオプションを介して使用されるため、擬似列値をマッピングで設定しないでください。

これらのプロパティのJavaプログラムでの使用方法は、http://java.sun.com/products/jms/を参照してください。

表24-3 メッセージ・ヘッダーの標準JMSプロパティ

プロパティ JMS型 アクセス(読取り/書込み) 説明

JMSDestination

JMS String

R

メッセージの宛先(トピックまたはキュー)の名前。

JMSDeliveryMode

JMS Integer

R/W (IKMオプションによって設定)

配信モード: 1 = 非永続、または2 = 永続。永続メッセージは、ルーターがクラッシュした場合でも失われることはありません。

このプロパティは、メッセージの送信時にJMSDELIVERYMODE KMオプションによって設定されます。

JMSMessageID

JMS String

R

メッセージの一意の識別子。この識別子はルーターによって内部的に使用されます。

JMSTimestamp

JMS Long

R

メッセージ送信操作の日時。この時間は、UTC標準形式で格納されます(1)。

JMSExpiration

JMS Long

R/W (IKMオプションによって設定)

メッセージの有効期限の日時。この時間は、UTC標準形式で格納されます(1)。

このプロパティを設定するには、JMSEXPIRATION KMオプションを使用する必要があります。

JMSRedelivered

JMS Boolean

R

メッセージが再送されたかどうかを示します。これは、メッセージ・コンシューマがメッセージ受信の確認に失敗した場合に発生します。

JMSPriority

JMS Int

R/W

メッセージの返信の送信先となる宛先(トピックまたはキュー)の名前。

JMSCorrelationID

JMS String

R/W

メッセージの相関ID。これは、このメッセージがこの返信を生成するメッセージのJMSMessageIDである場合があります。また、アプリケーション固有の識別子である場合もあります。

JMSType

JMS String

R/W (IKMオプションによって設定)

メッセージ・タイプ・ラベル。このタイプは、メッセージを実用的に説明する文字列値です(例: SalesEventSupportProblem)。

このプロパティを設定するには、JMSTYPE KMオプションを使用する必要があります。

表24-4に、JMS標準のオプションのJMS定義プロパティをリストします。

表24-4 メッセージ・ヘッダーのオプションJMSプロパティ

プロパティ JMS型 アクセス(読取り/書込み) 説明

JMSXUserID

JMS String

R

クライアント・ユーザーID。

JMSXAppID

JMS String

R

クライアント・アプリケーションID。

JMSSXProducerTXID

JMS String

R

本番セッションのトランザクションID。このIDは、2つのJMSコミット操作の間にプロデューサが宛先に送信したすべてのメッセージで同一です。

JMSSXConsumerTXID

JMS String

R

現在の消費セッションのトランザクションID。このIDは、2つのJMSコミット読取り操作の間にコンシューマが宛先から読み取ったメッセージのバッチで同一です。

JMSXRcvTimestamp

JMS Long

R

メッセージの受信日時。この時間は、UTC標準形式で格納されます(1)。

JMSXDeliveryCount

JMS Int

R

メッセージの受信回数。常に1に設定されます。

JMSXState

JMS Int

R

メッセージの状態。常に2(準備完了)に設定されます。

JMSXGroupID

JMS String

R/W

メッセージが属するグループのID。

JMSXGroupSeq

JMS Int

R/W

メッセージ・グループ内のメッセージの順序番号。

(1): UTC(協定世界時)標準は、1970年1月1日から経過したミリ秒数です。

JMSプロパティの使用

メッセージには、内容の他にも一連のプロパティが添付されます。これらは、プロバイダ固有のプロパティ、アプリケーション固有(ユーザー定義)のプロパティまたはJMS標準プロパティです。

JMSプロパティはOracle Data Integratorで補足情報として使用され、メッセージのフィルタ処理などに使用されます。

JMSプロパティの宣言

JMSデータストアの定義の際に、マッピングで使用するJMSプロパティに対応する擬似列を追加する必要があります。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。

ルーター上でのフィルタ処理

このタイプのフィルタリングでは、フィルタはJMS読取り問合せの送信時に指定されます。メッセージ・セレクタ・フィルタと一致するメッセージのみが取得されます。メッセージ・セレクタは、Oracle Data IntegratorでMESSAGE_SELECTOR KMオプションを使用して指定されます。

注意:

ルーターのフィルタリングはJMSの必須機能ではありません。使用できない場合があります。JMSプロバイダのドキュメントを参照して、使用できることを確認してください。

MESSAGE_SELECTORはSQLのWHERE構文でプログラムされます。次の(比較、ブールおよび数値)演算子がサポートされています。

+、-、*、/、=、>、<、<>、>=、<=、OR、AND、BETWEEN、IN、NOT、LIKE、IS NULL

注意:

  • IS NULL句では、空の値を持つプロパティは処理されますが、存在しないアプリケーション固有プロパティは処理されません。

    たとえば、セレクタCOLOR IS NULLが定義されている場合、アプリケーション固有プロパティCOLORが空の値とともに指定されているメッセージは、正しく消費されます。同じトピックまたはキューにある別のメッセージにこのプロパティが指定されていない場合、そのメッセージでは例外が発生します。

優先度が5より高いすべてのメッセージをフィルタ処理する場合

JMSPriority > 5

優先度が6より低く、タイプがSales_Eventのすべてのメッセージをフィルタ処理する場合

NOT JMSPriority < 6 AND JMSType = 'Sales_Event'

クライアント上でのフィルタ処理

フィルタリングはメッセージの受信後に実行され、ステージング領域で実行する必要がある標準のOracle Data Integratorマッピング・フィルタを作成することによって設定されます。フィルタでは、ソースJMSデータストアの擬似列が使用されます。Oracle Data Integratorデータストアで定義された擬似列は、JMSプロパティを表します。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。この方法でフィルタ処理されたメッセージは、キューまたはトピックから消費されたとみなされます。

ソース・データとしてのプロパティ値の使用

JMSプロパティの値は、マッピングのソース・データとして使用できます。これは、マッピングでソースJMSデータストアの擬似列を指定することで実行されます。詳細は、「擬似列としてのJMSプロパティの宣言」を参照してください。

メッセージ送信時のプロパティの設定

JMSデータストアをターゲット指定するマッピングで擬似列の値をマップすることで、メッセージの送信時にJMSプロパティを指定できます。一部のプロパティはKMオプションを使用して設定されます。詳細は、「JMS標準プロパティ」を参照してください。