Cosminexus 機能解説

[目次][用語][索引][前へ][次へ]

10.4.2 サーバ起動・停止フック処理の呼び出し順序

サーバ起動・停止フック機能を複数登録した場合の,サーバ起動・停止フック処理の呼び出し順序について説明します。

<この項の構成>
(1) 正常に起動,停止した場合
(2) サーバ起動フック処理中に例外が発生した場合
(3) サーバ起動フック処理後に例外が発生した場合

(1) 正常に起動,停止した場合

J2EEサーバ,およびWebコンテナサーバ起動時には,登録されたクラス順にサーバ起動フック処理を行うserverInitializingメソッドが呼び出されます。また,J2EEサーバ,およびWebコンテナサーバ停止時には,登録された逆順にサーバ停止フック処理を行うserverTerminatingメソッドが呼び出されます。

J2EEサーバが正常起動した場合の,サーバ起動・停止フック機能の呼び出し順序を次の図に示します。なお,Webコンテナサーバの場合も,次の図と同様の順序で呼び出されます。

図10-1 サーバ起動・停止フック処理の呼び出し順序(正常起動時)

[図データ]

サーバ起動・停止フック処理を実装したA,B,Cの三つのクラスがあり,クラスA,クラスB,クラスCの順でクラスが登録されていることとします。サーバ起動フック処理では,正常に呼び出されると,クラスA,クラスB,クラスCの順でクラスが呼び出されます。サーバ停止フック処理では,クラスC,クラスB,クラスAの順でクラスが呼び出されます。

(2) サーバ起動フック処理中に例外が発生した場合

サーバ起動フック処理の実行中に例外が発生した場合の,サーバ起動・停止フック機能の呼び出し順序を次の図に示します。なお,Webコンテナサーバの場合も,次の図と同様の順序で呼び出されます。

図10-2 サーバ起動・停止フック処理の呼び出し順序(起動フック処理中の例外発生時)

[図データ]

サーバ起動・停止フック処理を実装したA,B,Cの三つのクラスがあり,クラスA,クラスB,クラスCの順でクラスが登録されていることとします。クラスBのサーバ起動フック処理(serverInitializingメソッド)の実行中に例外が発生した場合は,クラスCのサーバ起動フック処理は呼び出されません。また,クラスCのサーバ停止フック処理(serverTerminatingメソッド)は呼び出されないで,クラスB,クラスAの順序でサーバ停止フック処理が呼び出されます。

(3) サーバ起動フック処理後に例外が発生した場合

サーバ起動フック処理の実行後に例外が発生した場合の,サーバ起動・停止フック機能の呼び出し順序を次の図に示します。なお,Webコンテナサーバの場合も,次の図と同様の順序で呼び出されます。

図10-3 サーバ起動・停止フック処理の呼び出し順序(起動フック処理後の例外発生時)

[図データ]

サーバ起動・停止フック処理を実装したA,B,Cの三つのクラスがあり,クラスA,クラスB,クラスCの順でクラスが登録されていることとします。クラスBのサーバ起動フック処理(serverInitializingメソッド)の実行後に例外が発生した場合は,クラスCのサーバ起動フック処理は呼び出されません。また,サーバ停止フック処理は呼び出されません。