ワイルドカード文字

サブスクライブするアプリケーションは、ワイルドカード文字を使用して、 興味のあるものとして登録するパブリケーションの範囲を広げることができます。 ワイルドカード文字を指定することにより、サブスクライバーは、明示的なトピックではなく、 興味のあるトピックの一般的なパターンを指定することになります。

ワイルドカード文字は、WebSphere MQ パブリッシュ/サブスクライブおよびWebSphere Message Broker で使用されます。しかし、WebSphere Message Broker には別のワイルドカード文字群があり、サブスクライバーは、ワイルドカード文字をより詳細かつ柔軟に使用することができます。
  • WebSphere MQ パブリッシュ/サブスクライブ・ワイルドカード文字
    • アスタリスク (*); 0 文字以上と一致します。
    • 疑問符 (?); ちょうど 1 文字に一致します。
    • パーセント記号 (%); トピック内で "*"、"?"、 または "%" 文字を使用するエスケープ文字として使用できます。
  • WebSphere Message Broker・ワイルドカード文字
    • マルチレベル・ワイルドカード (文字 #); トピックの先頭または末尾の任意のレベル数と一致します。
    • 単一レベル・ワイルドカード (文字 +); トピック内の 1 つのレベルと一致します。

    文字は以下のとおりです。

WebSphere Message Broker ワイルドカード文字のすべての機能範囲は、MQRFH2 クライアントだけが利用できます。 いずれかの WebSphere Message Broker ワイルドカード文字を含むトピックのため、WebSphere Message Broker ブローカーに対して MQRFH クライアントによって出されるサブスクリプションは、理由コード MQRCCF_TOPIC_ERROR と共に拒否されます。

それで、MQRFH を使用し、異機種のネットワークで WebSphere MQ パブリッシュ/サブスクライブ・ブローカーへ接続しているアプリケーションでは、 マルチレベル・ワイルドカード (#) 文字と単一レベル・ワイルドカード (+) 文字のいずれかを含むトピックに対してパブリッシュまたはサブスクライブしてはなりません。 WebSphere MQ パブリッシュ/サブスクライブ・ブローカーはこのことを監視しません。異機種のブローカー・ネットワークでサブスクリプションをパブリッシュまたは登録するときに、アプリケーションがトピックに任意の WebSphere Message Broker ワイルドカード文字を使用する場合、これらのパブリケーションおよびサブスクリプションは、ネットワーク内の WebSphere Message Broker ブローカーに無視されます。 そのため、ネットワークに WebSphere Message Broker ブローカーを追加する前に、WebSphere MQ パブリッシュ/サブスクライブ・インプリメンテーション内で使用されるトピックを検討するよう強くお勧めすると同時に、必要であれば変更を加えてください。

MQRFH2 を使用するアプリケーションが、WebSphere Message Broker ワイルドカード文字を使用して、 WebSphere MQ パブリッシュ/サブスクライブ・ネットワーク内から複数のパブリケーションをターゲットに選択する場合、 ワイルドカード・マッピングが実行されます。 ほとんどの場合、ブローカーはマルチレベル・ワイルドカードおよび単一レベル・ワイルドカード文字をアスタリスクに置き換えます。 この方法では、いずれの WebSphere Message Broker ワイルドカード文字にも完全一致突き合わせがありませんが、 必要なパブリケーションのスーパーセットが確実に WebSphere Message Broker ブローカーに送信されます。 WebSphere Message Broker ブローカーは、"#" および "+" ワイルドカード文字を評価して、正しいパブリケーションに突き合わせます。

例えば、トピック "employee/+/development" は、WebSphere MQ パブリッシュ/サブスクライブ 近隣には "employee/*/development" として伝搬されます。 この方法では、WebSphere Message Broker ブローカーに対し、WebSphere MQ パブリッシュ/サブスクライブ近隣から冗長なパブリケーションが送信される可能性があります。 しかし、WebSphere Message Broker が元のサブスクリプションを評価するときに、これらが元のクライアントに送信されることはありません。

この例外は、伝搬されないトピック "+" へのサブスクリプションです。これは、 WebSphere Message Broker ブローカーでトピック "#" へのサブスクリプションが行われる場合に伝搬されるトピックであるため、"*" として表すことはできません。

MQRFH2 クライアント・サブスクリプションでは、WebSphere MQ パブリッシュ/サブスクライブ・ワイルドカード文字を指定しないでください。 実際に 1 つ以上を指定すると、それらは WebSphere Message Broker によってトピックの一部であると見なされるため、 サブスクリプションが WebSphere MQ パブリッシュ/サブスクライブ近隣へ送信される前に、先頭にエスケープ文字 (%) が付けられます。

例えば、MQRFH2 クライアントが "USA/Alaska*/Juneau?" のトピックでサブスクライブすると、 これは変更され、WebSphere MQ パブリッシュ/サブスクライブ ブローカー近隣に "USA/Alaska%*/Juneau%?" として渡されます。

MQRFH を使用するアプリケーションが WebSphere Message Broker ブローカーに接続すると、 WebSphere Message Broker は、それ自体のワイルドカード文字とフィルター式を混在させて、 WebSphere MQ パブリッシュ/サブスクライブ・ワイルドカード文字 * および ? の動作をエミュレートします。 そのため、WebSphere Message Broker ブローカーにサブスクライブする既存の MQRFH アプリケーションは、 WebSphere MQ パブリッシュ/サブスクライブ・ブローカーへサブスクライブするときに受信するのと同じパブリケーションを受信することになります。

特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
aq19840_