ワイルドカード

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

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

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

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

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

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

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

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

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

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

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