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

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

接続の管理

TCP/IP 接続は、クライアント接続マネージャーによって要求され、サーバー接続マネージャーによって受け入れられます。

実行グループのプロセスには接続マネージャーが含まれます。接続マネージャーは接続を行います。 特定のポートを使用するサーバー・ノードを持てるのは、任意の一時点で 1 つの実行グループのみです。2 つ目の実行グループにデプロイすると、デプロイメント・エラーになります。 クライアント・ノードは別の実行グループにデプロイできますが、各実行グループには独自の接続プールがあるので、接続の独自の最小数と最大数があります。

TCPIP ノードは直接 TCP/IP 接続を作成したり管理したりせず、接続マネージャーの内部プールから獲得します。 例えば、同じ接続の詳細を使用する 2 つの出力ノードは同じ接続マネージャーを共用します。 TCPIP ノードは、以下の値のいずれかを指定して、使用する接続の詳細を定義できます。

ホスト名とポートを指定すると、ノードは接続の要求時にこれらの値を使用します。 構成可能サービスを指定すると、ノードは構成可能サービス中に定義されている値からポートとホスト名の値を入手します。 接続マネージャーは、ホスト名とポートに加えて他の構成可能パラメーターもサポートします。また、ユーザーは構成可能サービスの使用時にこれらの値のすべてを定義できます。 ノード上でホスト名とポートを指定すると、接続マネージャーは残りの必須値をデフォルトの構成可能サービスから入手します。 しかし、ホスト名とポート番号を使用している構成可能サービスが定義されている場合、その構成可能サービスからの値が使用されます。

接続マネージャーは、接続マネージャーからの接続が必要な最初のノードがデプロイされる際に作成されます。 接続マネージャーは、その接続マネージャーを使用するノードのうち最後に残っているものが実行グループから除去される (つまり、デプロイ済みのノードによって接続マネージャーが使用されなくなる) 際に削除されます。 例えば、再デプロイメントでは既存のノードをすべて削除してから再度作成する必要があるので、既存のフローを再デプロイする際にこの処理が発生することがあります。

接続マネージャーは、TCPIPClient 構成可能サービスに加えられた変更を実行グループを再始動する必要なしに適用します。 接続マネージャーは、TCPIP 構成可能サービスを使用するすべてのメッセージ・フローに対して、そのサービスの変更を適用します。 TCPIP 構成可能サービス変更を適用すると、TCPIP 接続マネージャーの再開が暗黙指定されるため、構成可能サービスを使用して TCPIP パラメーターを指定するすべてのフローで新しい TCPIP 接続が選択されることが予期されます。

接続マネージャーは、影響を受けるすべてのメッセージ・フローが現在のメッセージを処理した後でなければ、影響を受けるノードを更新しません。 影響を受ける特定のメッセージ・フローが現在のメッセージを処理した場合、そのメッセージ・フローは影響を受けるすべてのメッセージ・フローの更新が完了するまでロックされます。 このプロセスにより、同じ実行グループに含まれる各ノードは、変更された構成可能サービスについて確実に同じ値を使用するようになります。 このため、構成可能サービスに更新を適用してから、メッセージ・フローによって使用されるプロパティーが更新されるまでに、数秒の遅れが出ることがあります。

サーバー接続

サーバー接続マネージャーは、開始時にサーバー接続の listen を開始し、接続の最大数 (構成可能サービス中で指定されている) に達するまで接続を受け入れ続けます。 この時点の後に行われる接続の試行は拒否されます。 TCP/IP サーバーは接続を作成せず、他のアプリケーションからのみ接続要求を受け入れます。 この結果、メッセージ・フロー中での接続の作成は強制できません。

クライアント接続

クライアント接続マネージャーは、始動し、接続の最小数 (構成可能サービス中で定義されている) に達するまでクライアント接続を行い続けます。 デフォルトでは、接続の最小数はゼロで、接続が行われないことを意味します。 接続の数が最小値を下回るたびに、接続マネージャーは追加のクライアント接続の作成を開始します。 クライアントの出力ノードと受信ノードは、最大数 (構成可能サービス中で定義されている) に達していない限り、使用可能なクライアント接続がない場合に必ず新しいクライアント接続の作成を開始します。

接続の予約と解放

各接続には入力ストリームと出力ストリームがあり、その両方とも接続マネージャー中に使用可能と予約済みという 2 つの主な状態があります。

ノードが特定の接続の ID を指定しないで入力または出力のために接続を要求すると、必要なストリーム上の任意の使用可能な接続が付与されます。 使用可能な接続がなく、ノードがクライアント・ノードの場合には、接続の最大数に達していない場合に限り、新しい接続が行われます。 使用可能な状態の接続は、一度に 1 つのノードのみで使用できますが、1 つのノードが使用し終えると、他の任意のノードが (どのフローまたはスレッドからでも) アクセスできます。

接続を予約することにより、接続上のストリームへのアクセスを制限できます。 接続が予約済みの状態にあると、その接続の ID を指定せずに他のノードがストリームにアクセスすることはできません。 例えば、入力ノードは使用可能な接続を要求し、データの読み取りを終了したら、ストリームを予約済みの状態にすることができます。 ストリームが予約済みの状態にある間は、入力ノード (ストリームを予約済みの状態にしたノードを含む) はそれにアクセスできません。その理由は、入力ノードは使用可能なストリームのみにアクセスできるからです。 接続 ID を持つ必要があるのは、ストリームにアクセスできるノードのみです。この ID は、データがメッセージ・フローの下流に渡される際に発信ローカル環境に書き込まれます。 この結果、受信ノードは同じ接続上でさらにデータを読み取ることができます。ただし、入力ノードのローカル環境からの ID を使用するよう受信ノードが構成されている場合に限ります。

接続が予約されると、その接続の所有権は現在の処理のスレッドに付与されます。 必要に応じて、この処理は別々のメッセージ・フローにまたがることができます。

予約機構は、以下のオプションを提供します。
  • 変更しないでそのままにする
  • 予約
  • 解放
  • 予約してフローの終わりに解放

すべてのノードに対して、デフォルトでは、ストリームは使用可能なままです (予約されない)。 多くのタイプの処理では、このデフォルトを変更しないままにしておくことができます (例えば、入力ストリームからファイルにデータを移動する際など)。 ストリームを予約する主な目的は、一連のノードを接続して、ストリーム上で複雑な処理を、順序付けられ制御された同期シーケンスにおいて行うことです。

「予約してフローの終わりに解放」オプションを使用して接続を予約し、(発生する可能性のあるエラー条件を含め、) メッセージ・フローの 1 つの反復が処理を終了したときに接続のストリームが確実に開放されるようにできます。

複数のメッセージ・フローにまたがる処理が必要な場合 (例えば、非同期要求と応答)、メッセージ・フローの最後で、ストリームを解放しないで予約する必要があります。 例として、以下のサンプルを参照してください。

サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

メッセージ・フロー間のストリームの予約には、ストリームがまったく解放されない可能性があるという欠点があります。 この問題を避けるためには、接続の有効期限時刻を設定して、指定した非活動期間の後に閉じられるようにします。

入力ストリームの予約の別の利点として、(エンド・アプリケーションが接続の終点を閉じても) 接続が解放されるか有効期限が切れるまでその接続を閉じることができません。このことは、ストリームの終わりを使用してストリーム中のメッセージを区切る際に便利です。

ファイル記述子

WebSphere Message Broker アプリケーションが Sun Solaris 10 on SPARC で実行されている場合、ファイル記述子の数を増やす必要があるかもしれません。 syslog の中の以下のようなエラーは、ファイル記述子を追加する必要があることを示しています。
 Failed to create a client connection using hostname: '', port: ''. Reason: 'Invalid argument'
また、エラーを解決するために次の 2 つの方法を試してみることもできます。
  • MQSIJVERBOSE 環境変数を変更します。以下に例を示します。
    export MQSIJVERBOSE=-Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.PollSelectorProvider
  • 最大ファイル・ハンドルの限度を RLIM64_INFINITY ではなく、value に変更します。
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

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

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:17


概念トピック概念トピック | バージョン 8.0.0.5 | ac67380_