Cosminexus 機能解説

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

7.5.7 ほかの機能との関係

リロード機能と次の機能との関係について説明します。

<この項の構成>
(1) リロードと同時実行スレッド数制御との関係
(2) リロードとJ2EEアプリケーション実行時間の監視との関係

(1) リロードと同時実行スレッド数制御との関係

Webアプリケーションのリロード機能での新規リクエストの実行待ちと,同時実行スレッド数制御との関係について説明します。なお,同時実行スレッド数の制御については,「4.17 同時実行スレッド数の制御」を参照してください。

(a) Webアプリケーション単位,またはURLグループ単位の同時実行スレッド数制御を使用する場合

リロード機能での新規リクエストの実行待ちは,Webアプリケーション単位,またはURLグループ単位の同時実行スレッド数制御の実行待ちキューとは,別に制御されます。

(b) Webコンテナ単位の同時実行スレッド数制御を設定する場合

Webコンテナ単位の同時実行スレッド数制御を設定している場合,リロード処理開始後に,Webコンテナ単位の同時実行スレッド数制御で実行できることになった,新規リクエストの処理スレッドが実行待ちとなります。

このため,リロード機能で実行待ちとなった新規リクエスト数がWebコンテナ単位の最大同時実行スレッド数まで達した場合,リロード処理を開始したWebアプリケーション以外のWebアプリケーションへのリクエストも,Webコンテナ単位の同時実行スレッド数制御機能によって実行待ちとなります。

(2) リロードとJ2EEアプリケーション実行時間の監視との関係

処理中のリクエストの処理が完了しない場合には,cjreloadappコマンドで-tオプションを指定することで,処理中のリクエストを強制的に終了させて,リロード処理を開始できます。ただし,処理中のリクエストを強制的に終了できるのは,J2EEアプリケーション実行時間の監視機能のメソッドタイムアウトの適用対象メソッドだけです。また,メソッドタイムアウトの発生後にメソッドキャンセルが動作するように設定している場合は,タイムアウトの発生によって処理中のリクエストがキャンセルされて,リロードを開始できます。

J2EEアプリケーション実行時間の監視の詳細については,「19.3 J2EEアプリケーション実行時間の監視とキャンセル」を参照してください。J2EEアプリケーション実行時間の監視の設定については,マニュアル「Cosminexus システム構築ガイド」を参照してください。

(a) EJBアプリケーションの場合

EJBアプリケーションをリロードする場合について説明します。

構成ファイル更新用インターバルを経過すると,J2EEサーバは,処理中のリクエストの処理が完了するのを待ってリロード処理を開始します。ここで処理中のリクエストの処理が完了しないときは,J2EEアプリケーション実行時間の監視で,一定時間内に終了しなかったメソッド処理をタイムアウトとして通知し,メソッド処理をキャンセルすることで,リロード処理を開始できます。

メソッドキャンセル機能によるリロードを次の図に示します。

図7-13 メソッドキャンセル機能によるリロード(EJBアプリケーションの場合)

[図データ]

構成ファイルの更新検知からリロード処理開始までの時間は次の式で求められます。

構成ファイル更新用インターバル(秒)+処理中のリクエストの実行待ち時間(秒)

(b) Webアプリケーションの場合

Webアプリケーションをリロードする場合について説明します。

リロード遅延実行を設定している場合,指定した最大遅延時間を経過すると,J2EEサーバは,新規リクエストを実行待ちにし,処理中のリクエストの処理が完了するのを待ってリロード処理を開始します。ここで処理中のリクエストの処理が完了しないときは,J2EEアプリケーション実行時間の監視で,一定時間内に終了しなかったメソッド処理をタイムアウトとして通知し,メソッド処理をキャンセルすることで,リロード処理を開始できます。

メソッドキャンセル機能によるリロードを次の図に示します。

図7-14 メソッドキャンセル機能によるリロード(Webアプリケーションの場合)

[図データ]

構成ファイルの更新検知からリロード処理開始までの時間は次の式で求められます。

構成ファイル更新用インターバル(秒)+リロード遅延実行の最大遅延時間(秒)+処理中のリクエストの実行待ち時間(秒)