分散アプリケーションの監視
実行中の ECP アプリケーションには、1 つ以上の ECP アプリケーション・サーバ・システム (データ・コンシューマ) に接続する 1 つ以上の ECP データ・サーバ・システム (データ・プロバイダ) が含まれています。データを共有するアプリケーション・サーバとデータ・サーバ間では、ECP 接続が確立されています。つまり、ECP がデータとコマンドの送信に使用する TCP/IP 接続です。
ECP アプリケーションのサーバおよび接続の状態は、管理ポータルの システム, 構成, ECP設定 ページから監視できます。
[ECP の設定] ページには、次の 2 つのサブセクションがあります。
-
[このシステムを ECP データ・サーバとして構成] では、データ・サーバの設定と、ECP サービスの状態が表示されます。詳細は、“分散システムの構成” を参照してください。
-
[このシステムを ECP アプリケーション・サーバとして構成] では、アプリケーション・サーバの設定と、このアプリケーション・サーバに接続されたデータ・サーバ (このノードにデータを提供するシステム) のリストとそれらの状態が表示されます。
以下のセクションでは、接続状態の情報について説明します。
ECP 接続情報
管理ポータルの システム, 構成, ECP設定 ページには、アプリケーション・サーバ側の現在の ECP データ・サーバ接続のリストが表示されます。システム, 構成, ECP設定, ECPアプリケーションサーバ ページには、接続のデータ・サーバ側の現在の ECP アプリケーション・サーバ接続のリストが表示されます。
ECP データ・サーバ接続
[このシステムを ECP アプリケーション・サーバとして構成] リストには、各 ECP データ・サーバ接続の次のような情報が表示されます。
この接続のアプリケーション・サーバ上での ECP データ・サーバ・システムの論理名。
アプリケーション・サーバ構成にサーバが追加されたときに入力された、この接続の ECP サーバ・システムのホスト名。
ECP サーバ・システムへの接続に使用する IP ポート番号
現在の接続の状態各接続の現在の状態を示します。これらの状態については、"ECP 接続の状態" セクションで説明します。
この接続の現在の状態が未接続または無効である場合は、データ・サーバのポートおよびホスト情報を編集できます。
各データ・サーバ行から、そのデータ・サーバとの間に存在する ECP 接続の状態を変更できます。詳細は、"ECP 接続処理" セクションを参照してください。
アプリケーション・サーバ側からデータ・サーバの情報を削除できます。
ECP アプリケーション・サーバ接続
[ECPアプリケーションサーバ] をクリックして、このシステムに接続されている ECP アプリケーション・サーバのリストを表示します。
[このシステムを ECP アプリケーション・サーバとして構成] リストには、各 ECP データ・サーバ接続の次のような情報が表示されます。
この接続のデータ・サーバ上での ECP アプリケーション・サーバ・システムの論理名。
現在の接続の状態各接続の現在の状態を示します。これらの状態については、"ECP 接続の状態" セクションで説明します。
データ・サーバ構成にサーバが追加されたときに入力された、この接続の ECP サーバ・システムのホスト名。
ECP サーバ・システムへの接続に使用する IP ポート番号
ECP 接続の状態
実行中のシステムでは、ECP 接続は以下のいずれかの状態になります。
状態 | 説明 |
---|---|
未接続 | 接続は定義済みですが、未使用です。 |
接続中 | 接続中です。接続されるまで表示される一時的な状態です。 |
正常 | 接続は正常に動作し、現在使用されています。 |
障害 | 接続に障害が発生しました。可能な場合、接続は自動的に修正されます。 |
無効 | 接続は、システム管理者によって手動で無効にされました。接続中のアプリケーションは <NETWORK> エラーを受け取ります。 |
以下のセクションでは、アプリケーション・サーバ側とデータ・サーバ側の接続状態を説明します。
アプリケーション・サーバの接続状態
以下のセクションでは、アプリケーション・サーバ側のそれぞれの接続状態について説明します。
アプリケーション・サーバ側の ECP 接続は、最初は未接続状態になっています。この状態の場合、接続のための ECP デーモンは存在しません。アプリケーション・サーバ・プロセスがネットワーク要求を送信すると、接続のためのデーモンが作成され、接続は接続中状態に入ります。
接続中状態では、接続のためのネットワーク・デーモンが存在し、新しい接続の確立を試行します。ユーザ・プロセスは、ネットワークに要求を送信する前に、接続が完了するのを待つ必要があります。接続が接続中状態にある場合、ユーザ・プロセスは要求ごとに、接続が完了するまで最大 20 秒待機します。接続が確立されたら、正常状態に入ります。接続がその時間内に確立されなかった場合、ユーザ・プロセスは <NETWORK> エラーを受け取ります。
アプリケーション・サーバ ECP デーモンは、バックグラウンドでデータ・サーバへの新しい接続を試行します。接続が 20 分以内に確立されなかった場合は、接続は未接続状態に戻り、接続のデーモンは削除されます。
接続が完了した後、正常なデータ転送状態に入ります。この状態では、ECP アプリケーション・サーバ側のデーモンが存在し、ネットワークを介して要求を送信し、応答を受信します。接続の正常状態は、接続が継続不可能になるか、アプリケーション・サーバかデータ・サーバから接続のシャットダウンが要求されるまで維持されます。
アプリケーション・サーバからデータ・サーバへの接続で問題が発生した場合、アプリケーション・サーバの ECP 接続は、障害状態に入ります。この状態では、アプリケーション・サーバの ECP デーモンが存在し、接続のリストアを試行します。基本の TCP 接続は、確立されている場合も確立されていない場合もあります。基本の TCP 接続がリセットされ、再現の必要があるかどうかによってリカバリ方法が異なることはありません。つまり、TCP 接続が一時的に機能を停止した場合でもリカバリ方法は同じです。
アプリケーション・サーバが障害状態にある間は、アプリケーション・サーバは ECP 接続をリカバリするために、データ・サーバへの再接続を試行します。この間、既存のネットワーク要求は保持されます。アプリケーション・サーバ側のユーザ・プロセスは、新しいネットワーク要求の送信を中止して、接続が再開されるのを待ちます。接続が障害のタイムアウト ([リカバリまでの待機時間] の現在の既定値は 20 分) 以内に回復した場合は、正常状態に戻り、中止されていたネットワーク要求は送信されます。
例えば、データ・サーバがオフラインになった場合、データ・サーバが使用可能になるまで、接続中のすべてのアプリケーション・サーバの状態は障害に設定されます。障害が適切に修正されると、接続状態は正常に戻ります。一方、障害状態をリカバリできない場合、未接続となります。
アプリケーションは、ネットワーク・アクセスが必要となるまで、継続して稼動します。サーバが応答していない間は、ローカルにキャッシュされたデータすべてをアプリケーションで使用できます。
リカバリ中状態は、障害状態の一部です。現在データ・サーバに TCP 接続がなく、新しい接続が確立された場合、アプリケーション・サーバとデータ・サーバはリカバリ・プロトコルに従って、アプリケーション・サーバのキャッシュをフラッシュし、トランザクションおよびロックを回復し、正常状態に戻ります。
同様に、データ・サーバのシャットダウンや、クラッシュの結果としてのシャットダウン後の再起動の場合、その後アプリケーション・サーバには再接続と既存のセッションを回復するための短い時間 (約 30 秒) が与えられます。そしてここでも、アプリケーション・サーバとデータ・サーバはリカバリ・プロトコルに従います。
接続のリカバリが、20 分以内に完了しなかった場合、アプリケーション・サーバは接続のリカバリを終了します。具体的には、アプリケーション・サーバは、すべての未実行のネットワーク要求にエラーを返し、接続状態を未接続に変更します。この作業がアプリケーション・サーバ側で行われなかった場合は、次にこのアプリケーション・サーバからデータ・サーバに接続されたときに、このアプリケーション・サーバからのすべてのトランザクションはロールバックされ、このアプリケーション・サーバからのすべてのロックが解除されます。
リカバリに成功した場合、接続は正常状態に戻り、中止されていたネットワーク要求が送信されます。
ECP 接続が無効としてマークされるのは、管理者が無効にすると判断した場合です。この状態では、デーモンは存在せず、その接続を使用するすべてのネットワーク要求はすぐに <NETWORK> エラーを受け取ります。
データ・サーバの接続状態
以下のセクションでは、データ・サーバ側の各接続状態について説明します。
ECP サーバが最初に起動されたとき、ECP サーバに対するすべての接続は、初期の “割り当てのない” 解放の状態にあり、接続アクセス・コントロール・リストにあるすべての ECP アプリケーション・サーバから接続できる状態になっています。アプリケーション・サーバからの接続が既にあり、その後切断されたが、リカバリ手順を行う必要がない場合、その接続は、“アイドル” 状態である解放状態になります。この 2 つの状態の唯一の違いは、アイドル状態の場合は、その接続ブロックが既に特定のアプリケーション・サーバに割り当てられており、アクセス・コントロール・リストにある他のアプリケーション・サーバでは利用できない点です。
データ・サーバの正常状態では、アプリケーション・サーバの接続は正常です。接続を受け入れる側の処理ではどの時点でも、アプリケーション・サーバがデータ・サーバとの接続を切断した場合 (データ・サーバ自体のシャットダウン・シーケンスの場合は除く)、データ・サーバは未実行のトランザクションをロールバックし、そのアプリケーション・サーバからのロックを解除し、そのアプリケーション・サーバとの接続を “アイドル” 状態である解放状態にします。
アプリケーション・サーバが応答していない場合、データ・サーバは、障害状態を示します。データ・サーバがクラッシュまたはシャットダウンした場合、サーバはクラッシュやシャットダウン時点でアクティブであった接続を記憶しています。再起動後、データ・サーバは、アプリケーション・サーバがセッション (ロックおよび開いているトランザクション) を再要求するまで、短時間待機します (通常は 30 秒)。このリカバリ待機時間中に、ECP アプリケーション・サーバが完全にリカバリできなかった場合、その接続にある未実行の作業はすべてロールバックされ、接続は “アイドル” 状態に置かれます。
データ・サーバの接続は、アプリケーション・サーバがそのセッションの再要求プロセスにある間、ごく短時間、リカバリ状態となります。データ・サーバは、接続を再要求できるようにアプリケーション・サーバを短時間 ([トラブル状態の時間間隔] の現在の既定値は 60 秒) 障害状態に保ちます。接続が再要求されない場合、データ・サーバはアプリケーション・リソースを解放 (開いているトランザクションすべてをロールバックし、ロックを解放) し、状態を解放に設定します。
ECP 接続処理
ECP アプリケーション・サーバの管理ポータルの システム, 構成, ECP設定 ページから、ECP 接続の状態を変更できます。各データ・サーバの行から、[状態の変更] をクリックし、接続情報を表示して、以下の中から適切な操作を実行します。
接続の状態を 無効 に設定これにより、ECP アプリケーション・サーバに設定されているロックを解放し、接続に関連するオープン・トランザクションをロールバックし、データ・サーバからキャッシュされたブロックを消去します。これがアクティブな接続である場合、状態の変更によって、データ・サーバからのネットワーク応答を待機しているすべてのアプリケーションにエラーが送信されます。
接続の状態を 正常 に設定
接続の状態を 未接続 に設定状態を無効に変更する場合と同様に、これにより、ECP アプリケーション・サーバに設定されているロックが解放され、接続に関連するオープン・トランザクションがロールバックされ、データ・サーバからキャッシュされたブロックが消去されます。これがアクティブな接続である場合、状態の変更によって、データ・サーバからのネットワーク応答を待機しているすべてのアプリケーションにエラーが送信されます。