CM サーバー管理接続ファクトリのライフ サイクル管理

このトピックでは、CM サーバーのライフ サイクル管理タスクについて説明します。

CM サーバーは、2 つの J2C 管理接続ファクトリ (1 つは ClearCase 用、もう 1 つは ClearQuest 用) を使用して、ClearCase と ClearQuest のコア製品と通信するバックエンド サーバー プロセスを起動および制御します。バックエンド ONCRPC プロセス (ClearCase では ccrpc プロセス、ClearQuest では cqrpc プロセス) によって、CM サーバーの J2EE および Websphere のコンポーネントと、ClearCase および ClearQuest のコア製品コンポーネントとの間にあるギャップを埋めます。

CM サーバーでの多数のバックグラウンド タスクの実行は、起動されたバックエンド ONCRPC サーバー プロセスそれぞれのライフ サイクル全体の管理および制御に役立ちます。これらのタスクを実行可能にするために管理者が介入する必要はありません。

製品固有ではないライフ サイクル管理を実行する 1 つの一般ライフ サイクル タスクと、ClearCase と ClearQuest のバックエンド サーバー オブジェクトの動作を制御する製品固有の複数のタスクがあります。それぞれのタスクで構成可能な MBean 属性を使用することは、アクティブなサーバー オブジェクトの数と存続時間を管理し、システムがそのワークロードに対応できる機能を維持して、過大なリソース消費による性能低下を防ぐことに役立ちます。 MBean 属性とその構成方法について詳しくは、使用可能な MBean 属性の設定 を参照してください。

一般管理接続ファクトリのライフ サイクル管理

一般ライフ サイクル管理タスクは、接続ファクトリが作成するすべてのバックエンド ONCRPC プロセスに影響します。このタスクは、CM サーバーが最初に開始されたときに、CM サーバー内から起動されます。タスクは 2 分ごとに実行され、各バックエンド ONCRPC サーバーをテストして、それぞれのサーバーのバッキング プロセスが正常に機能し続けていることを確認し、終了したサーバー プロセスの残余物をクリーンアップします。

タスクが実行されるたびに、CM サーバーによって起動され、RUNNING とマークされたバックエンド サーバー オブジェクトへのハンドルのリストが取得されます。各バックエンド サーバー オブジェクトがテストされ、機能しているバッキング プロセスが実行中であることが確認されます。障害が検出されたバックエンド プロセスに対しては、次のようにサーバー オブジェクトのクリーンアップが開始されます (このようなイベントはログ メッセージに記録されます)。
  • そのサーバーに新規の作業が割り当てられないように、サーバー オブジェクトに障害を示すマークが付けられます。
  • MBean クリーンアップ通知がキューに入れられ、5 秒以内に通知が非同期的に受信されて、障害のあるサーバー オブジェクトのすべてのクリーンアップ作業が実行されます。
  • そのサーバー オブジェクトは、親の管理接続ファクトリのサーバー オブジェクト リストから削除されます。
  • そのサーバーに関連付けられた MBean の登録は抹消されます。

次に、タスクは STOPPING サーバー (アイドル状態のサーバーはこのようにマークが付けられます) の更新済みリストを取得します。30 秒間以上 STOPPING 状態である各サーバー オブジェクトについては、そのサーバー オブジェクトのバッキング プロセスが検査され、プロセスが実際に停止していることが確認されます。サーバー オブジェクトのプロセスが停止していない場合、プロセスは強制的に停止されて、ファクトリのサーバー リストから削除されます。30 秒間以上 STOPPING 状態になっていないサーバーは、ファクトリのサーバー リストに残され、次にこのタスクが実行されるときに検査されます。

製品固有の管理接続ファクトリのライフ サイクル管理タスク

一般ライフ サイクル管理タスクに加え、独立 ClearCase タスクと独立 ClearQuest タスクによって、それぞれのバックエンド サーバー プロセスの製品固有のライフ サイクル管理が制御されます。

ClearQuest バックエンド oncrpc サーバー (cqrpc プロセスと呼びます) は、マルチスレッド プロセスです。一般的には、常に少数の cqrpc プロセスが実行されます。ClearCase バックエンド oncrpc サーバー (ccrpc プロセスと呼びます) は、シングル スレッド プロセスです。一般的には、常に多数のプロセスが実行されます。製品固有の管理接続ファクトリで構成可能な MBean 属性を使用することは、アクティブなプロセスの数と実行時間を管理し、過大なリソース消費による性能低下を防ぎながら、システムがそのワークロードに対応できる機能を維持することに役立ちます。

以下に示すのは、使用可能にする ccrpc プロセスの数を管理するために 使用される、いくつかの重要な MBean 属性です。 これらのパラメータのデフォルト設定は、CM サーバーがインストールされているシステムのタイプや、負荷や容量から予想されるサーバー使用量に基づいて、修正が必要になる場合があります。
  • CcServerFactoryMBean.serverThresholdCount MBean 属性は、CCRPC サーバー数のしきい値です。この値に到達すると ClearCase 管理接続ファクトリ内のインライン ライフ サイクル管理が起動されます。
  • CcServerFactoryMBean.maxServerCount MBean 属性は、ClearCase 管理接続ファクトリ内に一度に作成できる CCRPC サーバーの最大数です。
  • CcServerFactoryMBean.maxServersPerCredential MBean 属性は、クライアント アプリケーションを制限して、単一のユーザー セッションごとに作成されるスレッド数が多くなり過ぎないようにします。

これらの値は、wsadmin コマンド行ユーティリティを使用して調整することができます。MBean 属性とその構成方法について詳しくは、使用可能な MBean 属性の設定 を参照してください。メモリ サイズ、プロセッサの速度、その他のシステム属性などのパラメータによって、これらの値とその他の CcServerFactoryMBean の値がどのように設定されるかが決まります。

クライアントから ClearCase 要求が CM サーバーに送られると、その要求を処理するためのバックエンド サーバー オブジェクトの取得が試行されます。以下のインライン検査は、着信した各要求ごとに実行されます。
  • ClearCase サーバー オブジェクトのリストを検査して、ビジーでないサーバーが要求を処理するようにします。サーバー オブジェクトは、既に別の要求を処理している場合、ビジーであると見なされます。 ビジーではない既存のサーバー オブジェクトがあり、要求の認証と一致する場合、要求はそのサーバー オブジェクトによって処理されます。
  • 既存のサーバー オブジェクトがいずれも認証に一致しないか、ビジーである場合は、新規サーバー オブジェクトを作成して、要求と関連付ける必要があります。これは、管理接続ファクトリにその能力がある場合にのみ可能であり、手順は以下のとおりです。
    • ccrpc サーバーの CcServerFactoryMBean.maxServersPerCredential の数に達しているか、ccrpc サーバーの CcServerFactoryMBean.maxServerCount の数に達している場合、クライアント要求の処理に割り当てられるワーカー スレッドは、待機と再試行のループに入り、サーバーを取得するための試行が TeamServerMBean.maxProcureServerAttempts に指定された回数まで、TeamServerMBean.procureServerInterval の合計秒数までの間、行われます。
    • サーバーを取得できない場合、クライアントの要求は却下されます。(サーバーが取得できれば、 新規サーバー オブジェクトが作成され、その要求に割り当てられます。)

着信した要求ごとに実行される上記のインライン検査に加え、バックグラウンドの ClearCase 固有ライフ サイクル管理タスクでは、以下のサブタスクが実行されます。

2 分毎に、CcServerFactoryMBean.idleServerInterval の秒数以上、アイドルになっているすべての ccrpc サーバー のリストが作成され、このリストの各サーバーは、以下のようにして正常に停止されます。
  • そのサーバーに新規の作業が割り当てられないように、サーバー インスタンスを STOPPING 状態にします。
  • MBean TERMINATE 通知がキューに入れられ、5 秒以内に非同期的に通知が受信されて、サーバー オブジェクトのすべてのクリーンアップが実行されます。
  • シャットダウンの RPC メッセージが ccrpc サーバー プロセスに送信され、サーバー インスタンスは STOPPED 状態に設定されます。
  • 現在の時刻が記録され、サーバー インスタンス内に保存されるため、そのサーバーが STOPPED 状態になっていた時間が一般 CheckServer タスクに認識されます。
  • サーバー オブジェクト インスタンスは、接続ファクトリのサーバー リストから削除されます。
  • そのサーバーに関連付けられた MBean の登録は抹消されます。
ClearQuest ライフ サイクル管理は、2 分ごとに実行される 1 つのバックグラウンド タスクと、要求が処理されるときに実行されるクライアント要求ごとのいくつかのフォアグラウンド検査で構成されます。検査は、クリティカル リソースの限度に達していないかどうかを判別するために実行されます。
  • 時間ベースのリサイクルが有効な (つまり、CqServerFactoryMBean.recycleServerLifetimeLimit がゼロより大きく、少なくともその時間中に cqrpc サーバー オブジェクトが実行されている) 場合、その cqrpc サーバー オブジェクトはリサイクルの用意ができているものとして、マークが付けられます。
  • クライアント要求が完了したときに検査が行われ、cqrpc サーバー オブジェクトが CqServerFactoryMBean.recycleServerOncrpcCallLimit の回数以上の RPC 呼び出しを処理したかどうかを判別します。 処理されている場合は、cqrpc サーバー オブジェクトはリサイクルの準備ができているものとしてマークされます。
  • クライアント要求が受信され、セッション カウントが増分されたときに検査が行われ、cqrpc サーバー オブジェクトが CqServerFactoryMBean.recycleServerHttpSessionLimit の数以上の HTTP セッションを作成したかどうかを判別します。作成されている場合は、cqrpc サーバー オブジェクトはリサイクルの準備ができているものとしてマークされます。この場合、着信要求を処理するための新規 cqrpc サーバー オブジェクトが開始されます。

ClearQuest 管理接続ファクトリは cqrpc サーバー オブジェクトを (必要がなくなった ccrpc サーバー オブジェクトに対して ClearCase 管理接続ファクトリが行うように) 終了するのではなく、リサイクルします。 これは、cqrpc サーバー オブジェクトには、まだコミットされていないクエリーやレコードなどの項目が含まれている可能性があるからです。そのため、保留中の作業がコミットされるまでの猶予期間を設定することができます。

cqrpc サーバー オブジェクトのリサイクルでは、以下を行ないます。
  • そのサーバーに新規の作業が割り当てられないように、サーバー オブジェクトを STOPPING 状態 (RECYCLING 状態とも言います) にします。
  • MBean RECYCLE 通知がキューに入れられます。通知は、5 秒以内に非同期的に受信されます。サーバー オブジェクトに関連付けられた READ-ONLY セッションは、そのセッションの次の要求が受信されたときに新規サーバー オブジェクトと再度関連付けされるようにマークが付けられます。

    READ-WRITE トランザクション (クエリーまたはレコードのコミットに関連するトランザクション) の途中のセッションは、保留作業がコミットされるまでの CqServerFactoryMBean.recyclingPeriod の秒数までは保持できます。 作業がコミットされるか CqServerFactoryMBean.recyclingPeriod に到達すると、サーバー オブジェクトは STOPPED 状態になり、バッキング プロセスが終了されて、サーバー オブジェクトが ClearQuest 管理接続ファクトリのサーバー リストから削除されます。


フィードバック