JMS アプリケーションをバス上のメッセージング・エンジンに接続する方法
サービス統合バスで提供されるリソースを JMS アプリケーションで使用できるように、 JMS アプリケーションによるそのバスへの接続方法に影響を与える要因が複数あります。
サービス統合バスに接続する場合、 アプリケーションは実際には、バス上のメッセージング・エンジンに接続します。
デフォルトでは、環境が、バス上の使用可能なメッセージング・エンジンにアプリケーションを自動的に接続します。 ただし、接続プロセスに影響する追加の構成の詳細を指定できます。例えば、特別なブートストラップ・サーバーを識別したり、使用可能なメッセージ・エンジンのサブグループに接続を制限したり、可用性やパフォーマンスを向上したり、受信メッセージの順次処理を確認したりすることができます。
アプリケーション・サーバーで実行されているアプリケーション: デフォルト構成
アプリケーション・サーバーで実行中のアプリケーションは、WebSphere® Application Server 環境によって、使用可能なメッセージング・エンジンに誘導されます。
同じサーバー上にメッセージング・エンジンが見つかった場合は、 アプリケーションからメッセージング・エンジンへの最も高速な接続が可能な接続が作成されます。 それ以外の場合は、メッセージング・エンジンが別のプロセス (同じホストまたは異なるホスト上) に見つかると、リモート接続が作成されます。 適切なメッセージング・エンジンが見つからない場合は、アプリケーションはバスに接続できません。

この図は、アプリケーション・サーバーで実行されている 2 つのアプリケーションを示しています。 server3 のアプリケーション X は、同じサーバーで実行されているメッセージング・エンジンに接続しています。 server1 のアプリケーション Y は、 同じバス内にあるが異なるサーバーおよびホスト上で実行されている、メッセージング・エンジンに接続しています。 これは、server1 には適切なメッセージング・エンジンがないためです。
アプリケーション・サーバー外で実行されているアプリケーション
アプリケーション・サーバー外で 実行中のクライアント・アプリケーション (例えば、クライアント・コンテナー内あるいは WebSphere Application Server 環境外で実行中のもの) は、自ら適切なメッセージング・エンジンを見つけることができないため、ブートストラップ・サーバーを通じて ブートストラップ・プロセスを完了する必要があります。ブートストラップ・サーバーは SIBService サービスを実行しているアプリケーション・サーバーですが、必ずしもメッセージング・エンジンを実行する必要はありません。 ブートストラップ・サーバーは、必要なターゲット・トランスポート・チェーンをサポートするアプリケーション・サーバーで稼働するメッセージング・エンジンを選択します。

この図はアプリケーション・サーバー外で実行中のクライアント・アプリケーションを表します。メッセージング・エンジンに接続するために、アプリケーションはまずブートストラップ・サーバーに接続します。 ブートストラップ・サーバーはメッセージング・エンジンを選択した後、そのメッセージング・エンジンに接続する ようにクライアント・アプリケーションに指示を出します。
ブートストラップ・サーバーは、 ホスト名とともにブートストラップ・サーバーのエンドポイント・アドレスをなす、 特定のポートとブートストラップ・トランスポート・チェーンを使用します。
![[IBM i]](../images/iseries.gif)
ユーザーがアプリケーション・サーバーを作成する際、固有の非セキュア・ブートストラップ・ポート SIB_ENDPOINT_ADDRESS、およびセキュア・ブートストラップ・ポート SIB_ENDPOINT_SECURE_ADDRESS が自動的にアプリケーション・サーバーに割り当てられます。 アプリケーション・サーバーを ブートストラップ・サーバーとして使用する際に、サーバーに 7276 以外の非セキュア・ポートが割り当てられている場合、またはセキュア・ポートを使用する場合は、 接続ファクトリーのプロバイダー・エンドポイント・プロパティーにサーバーのエンドポイント・アドレスを指定する必要があります。
アプリケーション・サーバーの外部のアプリケーションで使用されるすべての接続ファクトリーで、 ブートストラップ・サーバーのエンドポイント・アドレスを指定する必要があります。 ブートストラップ・サーバーの長いリストを指定しなくても済むように、 少数の高可用性サーバーを専用ブートストラップ・サーバーとして提供 することができます。これにより、各接続ファクトリーに短いブートストラップ・サーバーのリストを指定するだけですみます。
メッセージング・エンジン選択プロセス
- JMS クライアント・アプリケーションでは、この情報は接続ファクトリー上で構成されます。
- メッセージ駆動型 Bean (MDB) アプリケーションでは、この情報はアクティベーション・スペックに構成されます。
- その他のタイプのアプリケーションでは、この情報はアプリケーションによってプログラマチックに構成されます。
- 同じアプリケーション・サーバーにおいて、必須のバス上でメッセージング・エンジンが実行されている場合、 アプリケーションからメッセージング・エンジンに接続が行われます。適切なメッセージング・エンジンが見つからない場合には、 次のルールがチェックされます。
- アプリケーションと同じホスト上でメッセージング・エンジンが実行されている場合、アプリケーションは選択されたメッセージング・エンジン にリモート接続を行います。適切なメッセージング・エンジンが見つからない場合には、 次のルールがチェックされます。
- メッセージング・エンジンがバスの任意の場所で実行されている場合、アプリケーションは選択されたメッセージング・エンジン にリモート接続を行います。適切なメッセージング・エンジンが見つからない場合には、 接続の試みは失敗に終わります。
どちらの場合も (すなわち、アプリケーション・サーバーで実行されているアプリケーションの場合、およびアプリケーション・サーバーの外部で実行されているアプリケーションの場合)、接続のために使用可能なメッセージング・エンジンの範囲を、サービス統合バスで使用可能なメッセージング・エンジンのサブグループに制限することができます。これを行うには、以下の接続ファクトリーまたはアクティベーション・スペックの接続プロパティーを構成します。
- ターゲット
適切なメッセージング・エンジンを選択するために接続の近接検索が実行される前に、指定したターゲット・グループのメンバーであるメッセージング・エンジンのセットが選択されます。その結果、接続近接検索がこれらのメッセージング・エンジンに限定されます。 ターゲット・グループが指定されない場合 (デフォルト)、接続近接検索で、バス内のすべてのメッセージング・エンジンが考慮されます。
例えば、ターゲット・タイプ プロパティーが バス・メンバー名 に設定されている場合、ターゲット プロパティーが適切なメッセージング・エンジンを選択可能なバス・メンバーの名前を指定します。
- ターゲット・タイプ
- バス・メンバー名
- バス・メンバーの名前。このオプションは、指定されたバス・メンバー (アプリケーション・サーバーまたはサーバー・クラスター) によってホスティングされているアクティブなメッセージング・エンジンを検索します。
- カスタム・メッセージング・エンジン・グループ名
- (自己宣言クラスターを形成している) メッセージング・エンジンのカスタム・グループの名前。このオプションは、指定されたカスタム・グループに登録したアクティブなメッセージング・エンジンを検索します。
- メッセージング・エンジン名
- メッセージング・エンジンの名前。このオプションは、指定されたメッセージング・エンジンにアクセスするために使用できる有効なエンドポイントを検索します。
- ターゲット重要度
- このプロパティーは、接続近接検索が、ターゲット・グループのメッセージング・エンジンのみに制限されるかどうかを定義します。
- 優先
- メッセージング・エンジンは、ターゲット・グループから選択することを推奨します。ターゲット・グループ内のメッセージング・エンジンが使用可能である場合は、これを選択します。 ターゲット・グループ内のメッセージング・エンジンを使用できない場合、このターゲット・グループの外部のメッセージング・エンジンが同じサービス統合バスで使用可能であれば、これを選択します。
- 必須
- メッセージング・エンジンは、ターゲット・グループから選択する必要があります。ターゲット・グループ内のメッセージング・エンジンが使用可能である場合は、これを選択します。 ターゲット・グループ内のメッセージング・エンジンを使用できない場合、接続プロセスは失敗します。
- ターゲット・インバウンド・トランスポート・チェーン
アプリケーションと異なるプロセスにあるメッセージング・エンジンに接続する際に、 アプリケーションが宛先とするメッセージング・エンジン・インバウンド・トランスポート・チェーンの名前。
これらのトランスポート・チェーンは、クライアント・アプリケーションの接続先アプリケーション・サーバーとの通信に使用できる通信プロトコルを指定します。別のプロセスのメッセージング・エンジンが選択されたときには、 指定されたインバウンド・トランスポート・チェーンを実行するサーバーにメッセージング・エンジンがある場合にのみ接続が確立されます。
以下の定義済みメッセージング・エンジン・インバウンド・トランスポート・チェーンが提供されています。- InboundBasicMessaging
- JFAP over TCP/IP
- InboundSecureMessaging
- JFAP over SSL over TCP/IP
- 接続の接近性
-
アプリケーション・サーバー内で実行されているアプリケーションでは、このプロパティーにより、
アプリケーション・サーバーに対するメッセージング・エンジンの接近性を定義します。
アプリケーション・サーバー外で実行されているアプリケーションでは、このプロパティーにより、
ブートストラップ・サーバーに対するメッセージング・エンジンの接近性を定義します。
- バス
- 同じバス内のメッセージング・エンジンに接続できます。
適切なメッセージング・エンジンは、同じサーバーのメッセージング・エンジン、同じホストのメッセージング・エンジン、および別のホストのメッセージング・エンジンの順に選択されます。
- クラスター
- 同じサーバー・クラスター内のメッセージング・エンジンに接続できます。 アプリケーションがクラスター・サーバーで実行されていない場合や、
ブートストラップ・サーバーがクラスターにない場合、適切なメッセージング・エンジンはありません。
適切なメッセージング・エンジンは、同じサーバーのメッセージング・エンジン、同じホストのメッセージング・エンジン、および別のホストのメッセージング・エンジンの順に選択されます。
- ホスト
- 同じホスト内のメッセージング・エンジンに接続できます。 同じサーバー内の適切なメッセージング・エンジン、同じホスト内の適切なメッセージング・エンジンの順に選択されます。
- サーバー
- 同じアプリケーション・サーバー内のメッセージング・エンジンに接続できます。
- クラスター内の処理能力を十分に利用するために、クラスター内のすべてのサーバーが MDB アプリケーションからのメッセージを受信できます。
- メッセージが順次処理されるように、一度に 1 つのサーバーのみが MDB アプリケーションからのメッセージを受信できます。
詳しくは、メッセージ駆動型 Bean がクラスター内で接続する方法を参照してください。