WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

パブリッシュ/サブスクライブを使用したコンテンツ・ベースのフィルター操作の使用可能化

WebSphere® MQ は、サブスクリプションを作成するときに、フィルターを指定する機能を提供します。ただし、この機能はヘッダーの項目のみを参照します。WebSphere Message Broker は、WebSphere MQ のコンテンツ・フィルタリング・プロバイダーとして機能できます。そのため、パブリケーションの本文にあるエレメントを参照できるサブスクライバーが、拡張フィルターを指定できるようになります。

WebSphere MQ サブスクライバーがこのサービスを使用できるようにするため、コンテンツのフィルター操作をbroker で使用可能にする必要があります。

始める前に

WebSphere Message Broker は、WebSphere MQ で提供されるメッセージ選択のサポートを拡張します。 WebSphere Message Broker は、SQL92 ステートメントではなく、ESQL ステートメントを許可し、メッセージの内容に基づいてフィルター操作を行うことによって、これを行います。 サポートされる ESQL の有効範囲と除外の詳細については、ESQL を使用したコンテンツ・ベースのフィルター操作を参照してください。

現在実装しているコンテンツ・ベースのフィルター操作の外見上の主な違いは、以下のとおりです。
  • コンテンツ・ベースのフィルター操作は WebSphere MQ MQRFH2 サブスクライバーに限定されなくなりました。 WebSphere Message Broker は、以下の WebSphere MQ サブスクライバー用のコンテンツのフィルター操作サービスを提供します。
    • MQRFH2
    • MQSUB
    z/OS で、MQRFH2 ヘッダー内の NameValueData フィールドに基づくコンテンツ・フィルター操作を実行する場合は、第 1 または第 2 の MQRFH2 ヘッダーにデータが存在する可能性があります。 例えば、以下のようなフィルターがあるとします。
    Root.MQRFH2.mcd.Msd='XML'
    このフィルターは、z/OS では、意図したとおりに動作しない可能性があります。 すべての MQRFH2 ヘッダーを検索する場合は、以下の構文を使用します。
    FOR ANY Root.MQRFH2[] AS I (I.mcd.Msd='XML')
  • WebSphere MQ メッセージ・プロパティーは、フィルター式の一部としてサポートされます。
  • パブリケーションに mcd フォルダーが含まれていない場合、ペイロードは XMLNSC であると想定されます。

WebSphere Message Broker でのコンテンツ・ベースのフィルター操作を使用可能にする方法を確認するには、以下のステップを参照してください。

  1. コンテンツ・ベースのフィルター操作を実行する実行グループに対して、ContentBasedFiltering オブジェクトの cbfEnabled プロパティーを設定します。
    コマンド行から cbfEnabled プロパティーを設定するには、以下のいずれかの方法を使用します。

    コンテンツ・ベースのフィルター操作を動作させるには、cbfEnabled プロパティーを明示的に使用可能にする必要があります。デフォルトの設定ではコンテンツ・ベースのフィルター操作はオフになっています。

  2. 実行グループを再始動して、この変更を有効にします。
    z/OS では、複数の実行グループでコンテンツ・ベースのフィルター操作を有効にした場合でも、 コンテンツ・ベースのフィルター操作がアクティブになるのは、一度に 1 つの実行グループだけになります。 コンテンツ・ベースのフィルター操作が有効になっている後続の実行グループは、キュー・マネージャーに接続できない場合、コンテンツ・ベースのフィルター操作のスレッドごとに以下のメッセージを (まずは始動時に、その後は 30 分ごとに) syslog に伝搬します。
    BIP2111E MQ04BRK jheg1 15 MESSAGE BROKER INTERNAL ERROR: DIAGNOSTIC INFORMATION 
     'Error occurred in Content Based Filtering Thread'. : ImbCbfWorker(909) 
    BIP2624E MQ04BRK jheg1 14 UNABLE TO CONNECT TO QUEUE MANAGER 'MQ04': MQCC=2;
     MQRC=2002; MESSAGE FLOW NODE 'ContentBasedFiltering'. : ImbCbfWorker(214)
    現時点でコンテンツ・ベースのフィルター操作のサービスを提供している実行グループを停止すると、コンテンツ・ベースのフィルター操作が有効になっている別の実行グループがキュー・マネージャーに接続し、コンテンツ・ベースのフィルター操作のサービスを提供するようになります。

    コンテンツ・ベースのフィルター操作が使用可能になっている場合、evaluationThreads プロパティーと validationThreads プロパティーの両方はデフォルトで 1 になります。

    評価スレッドは、パブリケーション時に、指定されたパブリケーションに対してコンテンツ・フィルターを妥当性検査するために使用されます。 多数のパブリケーションが存在するネットワークでは、パブリケーション時にワークロードを処理するために evaluationThreads プロパティーを増やす必要があります (最大 32 個まで)。

    妥当性検査スレッドは、サブスクリプション時にコンテンツ・フィルターの構文を妥当性検査するために使用されます。 多数のサブスクライバー、特に動的サブスクライバーが存在するパブリッシュ/サブスクライブネットワークでは、高スループットのサブスクリプション要求を処理するために validationThreads プロパティーを増やす必要があります (最大 32 個まで)。

    この機能は複数の実行グループで使用可能にできますが、パブリッシュ・メッセージを構文解析するために必要な (およびそのメッセージの mcd フォルダーで参照される) メッセージ・セットが、コンテンツ・ベースのフィルター操作が使用可能になっているすべての実行グループにデプロイされていることを確認する必要があります。

    評価スレッド内のメッセージの構文解析中にエラーが発生すると、WebSphere MQ は MQRC_CONTENT_ERROR をパブリッシュ・アプリケーションに戻します。 構文解析エラーは、イベント・ログにも WebSphere Message Broker 例外として表示されます。

    フィルター内の ESQL およびメッセージ・プロパティーを処理するサブスクリプション <psc> フォルダーの例:
    <psc>
     <Command>RegSub</Command><Topic>topic</Topic>
       <Filter>
       SUBSTRING(Root.XMLNSC.Name.FirstName FROM 1 FOR 1) = ‘J' and usr.flag = ‘yes'
       </Filter>
    </psc>
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:49:30


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | bq13460_