外部宛先および別名宛先
外部宛先および別名宛先は、バス宛先のタイプです。外部宛先は、別のバス (外部バス) で定義される宛先を表します。別名宛先は、ローカル・バスまたは外部バスのいずれかで定義されたバス宛先の代替名にマップされます。
- アプリケーションからローカル・バスで定義されている宛先にメッセージを送信するには、JMS 宛先オブジェクト (キューまたはトピック) でバス名および 宛先名を指定します。
デフォルトはローカル・バス名であるため、バス名を省略することはできます。しかし複数のバスを含むシステムの場合は、バス名を指定することが推奨されます。
- アプリケーションから外部バスで定義されている宛先にメッセージを送信するには、JMS 宛先オブジェクト (キューまたはトピック) でバス名 (つまり、外部バス) および宛先名を指定します。
ローカル・バスに宛先オブジェクトを構成する必要はありません。
サービス統合は、ローカル・バス上で構成された外部バスの定義が使用します。 この定義には、デフォルトのサービス品質など、宛先属性のデフォルト値が含まれます。 これらのデフォルト値は、その外部バスのすべての宛先に適用されます。詳しくは、複数バスをまたがる point-to-point メッセージングのトピックを参照してください。
外部バス上の個別の宛先の、メッセージング・デフォルトまたはセキュリティー設定のいずれか、あるいはその両方をオーバーライドする必要がある場合は、外部宛先を使用します。 ローカル・バス上の外部宛先を定義します。ローカル・バスに接続されたアプリケーションから、外部バスの宛先にメッセージが送信される場合、宛先のデフォルト値は外部宛先の属性によってオーバーライドされます。プロパティーおよび宛先ロールは設定可能ですが、宛先の代替名にはマップできません。
別名宛先は、バス宛先に代替名を使用する必要があるときに使用します。 バス宛先は、ローカル・バス上、または外部バス上にも設定できます。 ローカル・バス上の別名宛先を構成します。ローカル・バスのアプリケーションで別名宛先が使用される場合、指定されたバス名および宛先名は新しい名前にマップされます。 別名宛先を使用すると、プロパティー、宛先ロール、またはそれら両方を設定することもできます。
バスに接続されているアプリケーションが、JMS 宛先オブジェクト (キューまたはトピック) に宛先名およびバス名を指定し、それらがバスに定義されている別名宛先の ID およびバスに一致する場合、アプリケーションがアクセスする宛先は、アプリケーションがターゲット宛先とターゲット・バスを別名宛先から指定した場合と同じです。外部バス接続経由で到着したメッセージを、異なる名前の宛先またはバスにリダイレクトする必要がある場合、外部バスで定義された別名宛先を使用できますが、ソース・バスの構成を変更することはできません。
外部宛先
外部宛先は、別のバス (外部バス) で定義される宛先を表します。point-to-point メッセージングに外部宛先を使用できます。外部バス上の個別宛先のセキュリティー設定またはメッセージング・デフォルトをオーバーライドする必要がある場合は、外部宛先を使用します。 外部バスには、別のサービス統合バスまたは IBM MQ ネットワーク (すなわち、1 つ以上の相互接続された IBM MQ キュー・マネージャーまたはキュー共有グループ) を使用できます。
外部バスの宛先のメッセージング・デフォルトをオーバーライドするには、外部宛先のプロパティー (例えば、デフォルト優先順位など) を構成します。セキュリティー設定をオーバーライドして、ローカル・バス内のどのユーザーとグループが外部バス内の宛先へのアクセス権限を持つかを制御するには、外部宛先の宛先ロールを構成します。これらのプロパティーは、ローカル・バスに接続されたアプリケーションが外部バスの宛先にメッセージを送信するときに適用されます。
外部宛先を定義する際、外部バスの実際の名前および外部バスの宛先の実際の名前を使用すると、JMS 宛先オブジェクトは変更されません。
ローカル・バスに接続されたアプリケーションから、外部バスの宛先にメッセージが送信される場合、ローカル・バスのサービス統合は、(ローカル・バス上の) 外部バス定義のデフォルト値ではなく、外部宛先のプロパティーおよび宛先ロールを使用します。通常は、外部宛先のプロパティーは、 外部バスのその宛先 (ここではローカル宛先) に構成されているプロパティーに一致するように構成しますが、 これは必須ではありません。
外部宛先の宛先ロールを構成することもできます。ローカル・バスのサービス統合は、これらのロールを使用して、ローカル・バスの中のどのユーザーとグループが宛先に対するアクセス権限を持つかを制御できます。また、 これによって、外部バスで適用されるアクセス制御を補完することにもなります。
パブリッシュ/サブスクライブ・メッセージングに外部宛先は使用しません。その代わり、アプリケーションはローカル・バス内のトピック・スペース宛先を使用してメッセージをローカルにパブリッシュし、ユーザーはサービス統合バス・リンクまたは WebSphere MQ リンクを構成します。 これらのリンクによって、パブリッシュされたメッセージが外部バス (複数可) に伝搬され、そこでサブスクライバーがメッセージを受信します。 外部サービス統合バスへのリンクの場合は、サービス統合バス間のトピック・スペース・マッピングの構成で説明されているように、トピック・スペース・マッピングを構成します。 WebSphere MQ ネットワークへのリンクの場合は、IBM リンクを使用したパブリッシュ/サブスクライブ・メッセージングで説明されているように、パブリッシュ/サブスクライブ・ブリッジを構成します。
サービス統合は、外部バスにスコープされている構成情報は 使用できません そのため、適切な外部宛先がローカル・バスで定義されていないと、サービス統合は宛先属性のデフォルト値を使用します。
図 1 は、ローカル・バス Bus 1 から外部バス Bus 2 の宛先にメッセージを送信する JMS アプリケーションを示しています。Bus 1 には定義済みの外部バス接続があり、外部バスへのメッセージの転送に使用されます。ローカル・バスでは、外部宛先は定義されていません。Bus 1 は、外部バス接続から宛先のデフォルト値を受け取ります。

図 2 は、ローカル・バス Bus 1 から外部バス Bus 2 の宛先にメッセージを送信する JMS アプリケーションを示しています。Bus 1 には定義済みの外部バス接続があり、外部バスへのメッセージの転送に使用されます。Bus 1 には外部宛先定義が含まれます。 Bus 1 は、外部宛先から宛先のデフォルト値を受け取ります。

別名宛先
別名宛先は、バス宛先に別名をマップします。point-to-point メッセージングまたはパブリッシュ/サブスクライブ・メッセージングに別名宛先を使用できます。別名宛先は、バス名と宛先名 (ID) を、バス名または宛先名、あるいはその両方が異なるターゲットにマップします。別名宛先は、キュー宛先またはトピック・スペース宛先にマップできます。必要であれば、ターゲット宛先がそれ自体で別名宛先であるように、別名宛先をチェーニングすることができます。
- WebSphere MQ と相互運用する必要がありますが、一部のサービス統合のバス名または宛先名は IBM MQ 命名上の制約に準拠してません (例えば、名前が長すぎるなどの理由)。IBM MQ 準拠の名前をサービス統合名にマップする別名宛先を定義できます。
例えば、アプリケーションが IBM MQ アプリケーションにメッセージを送信し、応答先 (reply-to) 宛先名が IBM MQ 命名上の制約に準拠していないとします。 その制約に準拠する名前を、実際の応答先 (reply-to) 宛先名にマップする別名を定義できます。次にアプリケーションは、別名宛先を応答先 (reply-to) として指定します。
別の例は、送信先 (send-to) 宛先名が IBM MQ 命名上の制約に準拠していない場合に、IBM MQ 外部バス経由でリモート・サービス統合の外部バスにメッセージを送信するアプリケーションです。 その制約に準拠する名前を、実際の送信先 (send-to) 宛先名にマップする別名をリモート・バスで定義できます。次にアプリケーションは、別名宛先を送信先 (send-to) として指定します。送信側アプリケーションで実際の宛先名を使用する場合は、実際の宛先名を制約に準拠する名前にマップする別名をローカル・バスで定義できます。
- 宛先をあるバスから別のバスに移動すると (宛先を削除後に別のバスでその宛先を作成する)、古い宛先から新しい宛先にメッセージをリダイレクトする別名宛先を作成できます。例えば、宛先の移動元であるバスおよび宛先の移動先であるバスなど、アプリケーションが宛先を参照するすべてのバスで別名宛先を作成する必要があります。
しかし、JNDI に登録されている JMS 宛先を、新しい宛先を指し示すように変更するほうが簡単な場合があります。
- 分割されたキュー宛先のキュー・ポイントのサブセットに別名宛先を割り当てて、別名宛先を使用して、プロデューサー・アプリケーションおよびコンシューマー・アプリケーションが使用するキュー・ポイントを制限します。
別名宛先を使用する場合、別名宛先のプロパティー (例えば、デフォルトのサービス品質など) も設定できます。アプリケーションが別名宛先を使用するときは、これらのプロパティーによって、ターゲット宛先のプロパティーはオーバーライドされます。プロパティーを オーバーライドしたくない場合は、 対応するプロパティーをターゲット宛先から継承するように別名宛先を構成します。
別名宛先を使用する場合、別名宛先の宛先ロールを構成することもできます。アプリケーションが別名宛先を使用する場合、ローカル・バス内のサービス統合はこれらのロールを使用して、ローカル・バス内のどのユーザーとグループがターゲットの宛先に対するアクセス権限を持つかを制御できます。ターゲット宛先のセキュリティーを オーバーライドしたくない場合は、 許可検査をターゲット宛先に行わせるように別名宛先を構成します。
図 3 は、ローカル・バス Bus 1 から外部バス Bus 2 の宛先にメッセージを送信する JMS アプリケーションを示しています。Bus 1 には定義済みの外部バス接続があり、外部バスへのメッセージの転送に使用されます。JMS 宛先が指し示すのはターゲット・キューではなく、Bus X と Queue Y です。Bus 1 には、Bus X と Queue Y をターゲット宛先 Bus 2 と Queue 2 にマップする別名宛先が含まれます。 Bus 1 は、別名宛先から宛先のデフォルト値を受け取ります。

外部バスの宛先用の別名宛先の使用
アプリケーションが別名宛先を使用して、外部バスで定義されている宛先にアクセスする場合、 そのアプリケーションで必要な特定のプロパティーまたは宛先ロール、あるいはその両方を指定した別名宛先を構成することができます。 こうすれば、外部宛先も定義する必要がありません。