ナビゲーションをスキップ

WebLogic Server のコンフィグレーションと管理

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

サーバのライフサイクル

WebLogic Server インスタンスは常に、特定の動作状態にあります。コマンド (起動、停止、およびサスペンドなど) は、サーバ インスタンスの状態に特定の変化をもたらします。以下の節では、WebLogic Server の状態、状態の遷移、およびライフサイクル コマンドについて説明します。

 


ライフサイクルの概要

WebLogic Server インスタンスが遷移できる一連の状態の変遷のことを、サーバのライフサイクルと言います。図 7-1 は、サーバのライフサイクル、および WebLogic Server の動作状態間の関係を示しています。

図 7-1 サーバのライフサイクル

サーバのライフサイクル


 


 

各状態と、状態間の関係を理解するには、「WebLogic Server の状態について」を参照してください。

 


WebLogic Server の状態について

WebLogic Server は、サーバ インスタンスの現在の状態、およびサーバ インスタンスが起動してからこれまでに起こった状態の遷移に関する情報を表示および保存します。この情報は、以下の作業を行う管理者にとって有益です。

サーバ状態の取得

サーバ インスタンスの状態には、以下の複数の方法でアクセスできます。

サーバの状態について

以降の節では、サーバ インスタンスの主要な状態、その状態と関連する処理、およびその状態が状態遷移のシーケンスにどのように収まるのかを説明します。

SHUTDOWN

SHUTDOWN 状態のサーバ インスタンスは、コンフィグレーションされていますが、アクティブではありません。サーバ インスタンスは、正常な停止または強制停止の結果として SHUTDOWN 状態になります。

正常な停止は、サーバ インスタンスが RUNNING または STANDBY 状態にあるときに開始されます。正常な停止のプロセスでは、次のように状態が遷移します。

RUNNING-->SUSPENDING-->STANDBY-->SHUTTING DOWN-->SHUTDOWN

正常な停止」を参照してください。

強制停止は、あらゆるサーバ状態から開始されます。強制停止のプロセスでは、次のように状態が遷移します。

あらゆる状態-->STANDBY-->SHUTTING DOWN-->SHUTDOWN

強制停止」を参照してください。

Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。

STARTING

STARTING 状態のサーバ インスタンスは、要求を受け付け、アプリケーションの処理を実行する準備をします。サーバ インスタンスは、STARTING 状態では要求を受け付けられません。

サーバ インスタンスが起動すると、そのサーバ インスタンスはコンフィグレーション データの取得、カーネルレベルのサービスの開始、サブシステムレベルのサービスの初期化、アプリケーションのデプロイ、および起動クラスのロードと実行を行います。起動プロセスの詳細については、「起動」を参照してください。

サーバ インスタンスは、起動コマンドの結果として SHUTDOWN 状態からのみ STARTING 状態に入ることができます。

SHUTDOWN-->STARTING-->RUNNING

Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。

STANDBY

STANDBY 状態のサーバでは、すべてのサービスと内部アプリケーション (Administration Console など) が初期化されており、管理コマンドを受け入れたり、クラスタの通信に参加したりできます。 内部以外のアプリケーションは部分的にデプロイされており、サーバを RUNNING 状態に移行すると、サーバは残りのデプロイメント プロセスを完了します。STANDBY 状態のサーバは外部クライアントからの要求は受け付けません。

サーバ インスタンスは、以下の場合に STANDBY 状態になります。

RESUMING

サーバ インスタンスは、再開コマンドの結果として RESUMING 状態に入ります。STANDBY から再開されるサーバ インスタンスは、次のように状態が遷移します。

STANDBY-->RESUMING-->RUNNING

RUNNING

RUNNING 状態のサーバ インスタンスはクライアントにサービスを提供し、クラスタの正メンバーとして動作できます。サーバ インスタンスは、以下の場合に RUNNING 状態に入ります。

SUSPENDING

サーバ インスタンスは、正常な停止の過程でこの状態に入ります。SUSPENDING 状態のサーバは、処理中の作業の事前に定義済みの部分を処理します。SUSPENDING 状態のサーバ インスタンスが処理中の作業で実行する処理については、「処理中の作業の処理」を参照してください。処理中の作業が完了すると、サーバは SUSPENDING 状態から SHUTTING_DOWN 状態に進みます。

正常な停止のプロセスで、サーバ インスタンスの状態は次のように遷移します。

RUNNING-->SUSPENDING-->STANDBY-->SHUTTING DOWN-->SHUTDOWN

SHUTDOWN

サーバ インスタンスは、正常な停止または強制停止の結果として SHUTDOWN 状態になります。

正常な停止のプロセスで、サーバ インスタンスの状態は次のように遷移します。

RUNNING-->SUSPENDING-->STANDBY-->SHUTTING DOWN-->SHUTDOWN

正常な停止」を参照してください。

強制停止のプロセスで、サーバ インスタンスの状態は次のように遷移します。

あらゆる状態-->STANDBY-->SHUTDOWN

強制停止」を参照してください。

FAILED

サーバ インスタンスは、1 つまたは複数の重要なサービスが機能しなくなると FAILED 状態に入ります。1 つまたは複数の重要なサブシステムで障害を検出すると、サーバ インスタンスはその状態を FAILED に設定して、アプリケーションを適切にホストできないことを示します。

FAILED 状態から回復するためには、サーバ インスタンスは手動または自動 (ホスト マシンでノード マネージャがコンフィグレーションされている場合) で停止および再起動する必要があります。自動的な再起動については、「障害の発生した管理対象サーバの停止」を参照してください。

サーバ インスタンスは、RUNNING 状態からのみ FAILED 状態に入ることができます。

RUNNING-->FAILED

UNKNOWN

サーバ インスタンスにアクセスできない場合、そのサーバは UNKNOWN 状態にあります。

ノード マネージャで定義される状態

障害が発生したか、強制停止された管理対象サーバをノード マネージャが起動する場合、そのノード マネージャは補足的なサーバの状態を定義します (「ノード マネージャと管理対象サーバの状態」を参照)。それらの状態は Administration Console に表示されるため、再起動プロセスのステータスを目で確認することができます。

ノード マネージャについては、「ノード マネージャの概要」を参照してください。

 


ライフサイクルのコマンド

この節では、サーバ インスタンスの状態に影響する主要なコマンドと、そのコマンドの結果としてサーバ インスタンスが実行する処理を説明します。 ライフサイクル コマンドの発行については、Administration Console オンライン ヘルプの「サーバの起動と停止」を参照してください。

ノード マネージャを使用する環境の主要なライフサイクル イベントに関連するノード マネージャの処理については、「ライフサイクル操作でのノード マネージャの通信」を参照してください。

起動

サーバ インスタンスが起動すると、そのサーバ インスタンスは次のように機能します。

  1. コンフィグレーション データを取得します。
  2. 管理サーバは、ドメインの config.xml からドメイン コンフィグレーション データ (セキュリティ コンフィグレーション データなど) を取得します。

    管理対象サーバはコンフィグレーション データとセキュリティ データを取得するために管理サーバにアクセスします。 SSL が設定されている場合、管理対象サーバは、証明書ファイル、キー ファイルなどの独自の SSL 関連ファイルを使用し、残りのコンフィグレーション データとセキュリティ データを取得するために管理サーバにアクセスします。

  3. カーネル レベルのサービス (ロギング サービス、タイマー サービスなど) を起動します。
  4. 手順 1 で取得したコンフィグレーション データを使用して、サブシステムレベルのサービスを初期化します。以下のようなサービスがあります。

    • セキュリティ サービス

    • RMI サービス

    • クラスタ サービス

    • IIOP サービス

    • ネーミング サービス

    • RMI ネーミング サービス

    • ファイル サービス

    • JCA コンテナ

    • JDBC コンテナ

    • EJB コンテナ

    • Web コンテナ

    • デプロイメント マネージャ

    • JMS プロバイダ

    • リモート管理

    • トランザクション サービス

  5. サーバ インスタンスが、ドメイン全体の管理ポートのコンフィグレーションされているドメインにある場合、そのサーバ インスタンスはリモートのコンフィグレーションとモニタを有効にします。管理ポートについては、「管理ポートで必須の SSL」を参照してください。
  6. WebLogic Server Administration Console で指定した順序で、適切なコンテナにモジュールをデプロイします。
  7. アプリケーションをデプロイする前にロードするようコンフィグレーションされた起動クラスは、サーバ インスタンスが JDBC 接続プールをデプロイした後、Web アプリケーションおよび EJB をデプロイする前にロードされ実行されます。

  8. アプリケーションをデプロイした後にロードするようコンフィグレーションされた起動クラスがロードされ実行されます。

正常な停止

正常な停止では、進行中の特定のアプリケーション処理を完了するための時間が WebLogic Server サブシステムに与えられます。正常な停止の過程で完了される作業は、処理中の作業と呼ばれます。正常な停止の過程では、サブシステムは処理中の作業を完了し、特定のシーケンスで同期的にサスペンドされます。そのため、フロントエンド サブシステムがサスペンドされているときにも、JDBC 接続プールなどのバックエンド サブシステムは利用可能となります。

注意 : 正常な停止プロセスでは、停止処理と WebLogic 実行キュー スレッドで処理中の作業を同期させます。スレッドを作成するアプリケーションでは、アプリケーション スレッドで保留されている処理中の作業を制御する必要があります。この制御は、停止クラスを使用することで実現できます。

正常な停止のシーケンス

次のリストは、サブシステムがサスペンドになる順序を示しています。各サブシステムは、次のサブシステムがサスペンドの準備を始める前にその処理中の作業を完了します。

  1. 非トランザクション RMI サービス
  2. Web コンテナ
  3. クライアントが開始したトランザクション サービス
  4. リモート RMI サービス
  5. タイマー サービス
  6. アプリケーション サービス
  7. EJB コンテナ
  8. JMS プロバイダ
  9. JDBC コンテナ
  10. トランザクション サービス

正常な停止の制御

ServerMBean には、正常な停止プロセスの長さを制御する新しい属性が 2 つ追加されています。それらの値は、[サーバ制御起動/停止] タブで表示され、コンフィグレーションできます。

処理中の作業の処理

以降の節では、正常な停止の過程で各サブシステムがサスペンドになるときにどのように進行中の作業を処理するのかを説明します。

RMI サブシステム

Remote Method Invocation (RMI) サブシステムは、3 段階でサスペンドになります。このプロセスの各段階は、次の段階が始まる前に完了します。

  1. 非トランザクション リモート要求が、非トランザクション RMI サービスによって拒否されます。
  2. クライアントが開始したトランザクション サービスが、保留中のクライアント トランザクションが完了するのを待ちます。
  3. リモート RMI サービスが、トランザクションのあるなしに関係なくすべてのリモート要求を拒否します。

以上の段階を経た後は、リモート クライアント要求は許可されません。管理者特権のある要求と内部システム呼び出しは受け付けられます。

クラスタ化されたサーバ インスタンスがサスペンドを準備するように指示された場合、RMI システムはすべてのインメモリ レプリケーション呼び出しを拒絶し、他のクラスタ メンバーがレプリケート セッションのための新しいホストを選択できるようにします。

Web コンテナ

サスペンドを準備するよう指示された後の Web コンテナ サブシステムは、新しいセッション要求を拒否します。既存のセッションは、その永続性手法に従って処理されます。

保留セッションの完了は省略可能です。 すべてのセッションを直ちに中止するには、Administration Console の [サーバ制御起動/停止] タブの [停止中のセッションを 無視] オプションを使用するか、weblogic.Admin-ignoreSessions オプションを使用します。

タイマー サービス

タイマー サービスは、アプリケーション実行キューで動作しているすべてのトリガを取り消します。アプリケーション実行キューには、デフォルト キューと ExecuteQueueMBean を通じてコンフィグレーションされたキューがあります。

アプリケーション サービス

アプリケーション サービスは、サスペンドの前にアプリケーション キューの保留作業を完了します。アプリケーション実行キューには、デフォルト キューと ExecuteQueueMBean を通じてコンフィグレーションされたキューがあります。

EJB コンテナ

EJB コンテナは、メッセージ駆動型 Bean (MDB) をサスペンドします。

JMS サービス

Java Messaging Service (JMS) は、それ自身にサスペンドのマークを付けます。これにより、新しい要求は拒否されます。JMS システムは、以下の手順で正常にサスペンドします。

停止するサーバ インスタンスに JMS サーバが含まれている場合 :

停止するサーバ インスタンスに JMS 接続ファクトリが含まれている場合 :

通常、JMS サブシステムの正常なサスペンドの各ステップはすばやく (1 秒未満で) 実行されます。ただし、要求が通常よりも速いディスク I/O を必要とする場合 (たとえば、100 MB のメッセージの永続「送信」の要求など) は、クライアント要求を完了するのにこれより長い時間がかかることもあります。

JMS サーバへの接続の数、JMS 接続ファクトリのコンシューマの数、および関連する実行時情報は、JMSRuntimeMbean、JMSConnectionRuntimeMBean、JMSConsumerRuntimeMBean を始めとする JMS 実行時 MBean を使用してモニタできます。

JDBC サービス

JDBC サービスは、接続プール中のアイドル状態の接続を閉じます。

注意 : 接続がまだ使用されている場合は、JDBC サービスの停止が失敗し、正常な停止は完了しません。アプリケーションがまだ接続を使用している場合、サーバ インスタンスを停止するには強制停止コマンドを使用します。詳細については、「強制停止」を参照してください。

トランザクション サービス

トランザクション サービスは、トランザクション マネージャの保留トランザクション数がゼロになってからサスペンドします。すべての保留トランザクションを完了するのは、トランザクション タイムアウトのコンフィグレーション次第では時間がかかります。

保留トランザクションが原因で正常な停止に時間がかかりすぎる場合は、強制停止コマンドで停止できます。強制的な停止では、すべてのサブシステムのすべての保留作業がサスペンドされます。

停止操作とアプリケーションのアンデプロイメント

正常な停止と強制停止の両方で、サブシステムはアプリケーションを適切にアンデプロイします。この処理の結果として、サーブレットの destroy() または ejbRemove() などのアプリケーション コードが呼び出されることがあります。停止シーケンスにおいては、JMS、JDBC、およびトランザクションはアプリケーションが停止した後で停止します。これにより、アプリケーション コードから JMS、JDBC、およびトランザクションの各サービスにアクセスすることが可能になります。

強制停止

強制停止は、即座に実行されます。WebLogic Server のサブシステムが、現在進行中のすべてのアプリケーション処理をサスペンドします。強制停止は、どの状態のサーバ インスタンスでも実行できます。

致命的な例外によって強制停止が失敗した場合は、ServerMBeanServerLifecycleTimeoutVal 属性に指定した秒数後にサーバが終了します。

強制停止の過程で行われるアンデプロイメント プロセス、および関連するプログラミング上の考慮事項については、「停止操作とアプリケーションのアンデプロイメント」を参照してください。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次