プロセス起動・停止遅延への対応

事象説明

    アプリケーションプロセスの起動または停止時、いつになっても起動または停止しない場合は、何らかの問題が発生していると考えられます。起動処理中または停止処理中の状態が長く続く場合は、起動処理または停止処理のどこかで遅延していると考えられます。
    アプリケーションプロセスの異常終了時に終了処理で遅延している場合も、本障害に該当します。

状況の確認方法

    統合運用管理ツール、またはotxadminコマンドでプロセスグループの状態を確認して下さい。

採取資料
対象APの特定

    プロセスグループの状態を確認してください。

原因の特定

    統合運用管理ツールから、プロセスグループの「動作情報」タブにある「プロセス情報」のテーブルにある「コンテナ状態」を確認してください。

    プロセス起動遅延時に、コンテナ状態が「ORBINIT」である場合、以下の処理で遅延している可能性がありますので確認してください。

      ORB初期化処理
      Transaction Service初期化処理

    プロセス起動遅延時に、コンテナ状態が「LOAD」である場合、以下の処理で遅延している可能性がありますので確認してください。

      リソースアダプタのstartの処理(EJB)
      ステートレスBean,またはメッセージドリブンBeanのコンストラクタ、ejbCreateの処理(EJB)
      巨大なコンポーネントの読み込み

    プロセス起動遅延時に、コンテナ状態が「OBJCRE」である場合、以下の処理で遅延している可能性がありますので確認してください。

      サーバオブジェクトのコンストラクタ
      サーバオブジェクトの生成時コールバック
      名前サーバ登録時フック

    プロセス停止遅延時に、コンテナ状態が「OBJDEL」である場合、以下の処理で遅延している可能性がありますので確認してください。

      名前サーバ削除時フック
      サーバオブジェクトの解放時コールバック
      サーバオブジェクトのデストラクタ

    プロセス停止遅延時に、コンテナ状態が「UNLOAD」である場合、以下の処理で遅延している可能性がありますので確認してください。

      リソースアダプタのstopの処理(EJB)
      ejbRemoveの処理(EJB)

    プロセス停止遅延時に、コンテナ状態が「DESJVM」である場合、以下の処理で遅延している可能性がありますので確認してください。

      APで独自に作成したスレッドの待ち合わせ
      Java VMの終了処理

    プロセス停止遅延時は、APログにスタックトレースが出力されている場合がありますので、こちらを確認してください。

復旧方法

    アプリケーションプロセスの起動で遅延している場合は、遅延箇所を修正してください。
    アプリケーションプロセスの停止で遅延している場合は、プロセスグループを強制停止し、再度起動してください。

予防のための対策

    サーバAPの起動及び停止にかかる時間が、理論上ありえないのであればAPの処理を見直す必要があります。
    タイムアウト時間を設定すると、起動および停止処理を監視し、ストール状態を回避することができます。 [ 構築・運用 > チューニング > APサーバ > その他チューニングに関する設定 > 起動・停止タイムアウト(プロセス終了) ] を参照し、必要に応じてタイムアウト時間を変更してください。


関連情報

    ・構築・運用 > チューニング > APサーバ > その他チューニングに関する設定 > 起動・停止タイムアウト(プロセス終了)