JavaServer Pages ファイルまたはその依存関係が変更されると、 JSP ファイルは、実行時に変換およびコンパイルされる場合があります。これは JSP 再ロードと呼ばれます。
<jspAttributes xmi:id="JSPAttribute_1" name="reloadEnabled" value="true"/>
設定 | ||
構成属性 | 実稼働環境 | 開発環境 |
reloadEnabled | false | true |
reloadInterval | 使用不可 (reloadEnabled が false の場合は無視されます) | 約 5 秒 |
trackDependencies | 使用不可 (reloadEnabled が false の場合は無視されます) | true。依存関係が変更されていない場合にこれを false に設定すると、 応答時間が改善されます |
disableJspRuntimeCompilation | true。JSP ファイルがプリコンパイルされておらず、 最初の要求でコンパイルする必要がある場合は、これを false に設定します。 | false |
reloadEnabled パラメーターが true に設定されると、 JSP ファイルとそのクラス・ファイルに同じタイム・スタンプがない場合に、JSP ファイルが実行時に再ロードされます。 さらに、trackDependencies が true に設定されると、 JSP クラス・ファイルが最後に生成されて以降、その依存関係のタイム・スタンプが変更されている場合、 JSP ファイルが再ロードされます。 reloadEnabled パラメーターが false に設定されると、 パラメーター disableJspRuntimeCompilation が true でない場合、 JSP ファイルは必要に応じて最初の要求でコンパイルされます。 例えば、disableJspRuntimeCompilation が false で、reloadEnabled が false の場合、 クラス・ファイルが古くなると、JSP ファイルは最初の要求でコンパイルされます。 reloadEnabled が true に設定されていない限り、JSP ソース・ファイルが変更されたり、 またはクラス・ファイルが削除されても、その後の要求ではコンパイルされません。
<jspAttributes xmi:id="JSPAttribute_1" name="reloadInterval" value="5"/>再ロードが使用可能になっている場合は、reloadInterval パラメーター値により、 JSP ファイルが期限切れになっているかどうかを確認するための検査の間隔が決まります。例えば、 reloadInterval が 5 だとすると、JSP エンジンは、JSP ファイルが期限切れになっているかどうかの検査を、 そのような検査が最後に行われてから JSP ファイルに対する現行要求までに 、5 秒より長く経過している場合にのみ実行します。 reloadInterval を超えると、再ロード検査が実行され、 その JSP ファイルの再ロード・インターバル・タイマーは 0 にリセットされます。 reloadInterval が大きくなればなるほど、 JSP エンジンが JSP ファイル再ロードの必要性を検査する頻度は少なくなります。
<jspAttributes xmi:id="JSPAttribute_1" name="trackDependencies" value="true"/>再ロードが使用可能な場合、 trackDependencies パラメーター値によって、JSP エンジンが要求された JSP ファイルの依存関係と、 JSP ファイル自体に対する変更をトラッキングするかどうかが決まります。 JSP エンジンによってトラックされる依存関係のタイプは、以下の 3 つです。
例えば、toplevel.jsp ファイルは、静的に footer.jspf ファイルを組み込みます。 toplevel.jsp ファイルがコンパイルされると、 footer.jspf ファイルに対するパスとそのタイム・スタンプは toplevel.jsp のクラス・ファイルに保管されます。 結果として、footer.jspf ファイルは変更され、toplevel.jsp ファイルが要求されます。 これで、toplevel.jsp ファイルの再ロード間隔を超えると、 JSP エンジンはクラス・ファイルに保管されるタイム・スタンプとディスク上 の footer.jspf ファイル・タイム・スタンプとを比較します。 タイム・スタンプが異なるため、toplevel.jsp ファイルはコンパイルされ、 footer.jspf ファイルへの変更を選出します。 依存関係トラッキングを行うには、JSP ファイルが実行時に要求されたり、 バッチ・コンパイラーによって処理されたりするときに、 trackDependencies 値を true に設定する必要があります。
<jspAttributes xmi:id="JSPAttribute_1" name="disableJspRuntimeCompilation" value="true"/>disableJspRuntimeCompilation パラメーターが true に設定されている場合、 JSP エンジンは実行時に JSP ファイルの変換およびコンパイルを行わず、プリコンパイルされたクラス・ファイルのみをロードします。 クラス・ファイルをロードするために、JSP ソース・ファイルは必ずしも必要ありません。 このオプションが true に設定されると、JSP ソースなしでアプリケーションをインストールすることができますが、 アプリケーションにはプリコンパイルされたクラス・ファイルを必要とします。 同じ名前の Web コンテナー・カスタム・プロパティーがあり、 このプロパティーを使用して、サーバーにインストールされたすべての web モジュールの振る舞いを決定します。 Web コンテナー・カスタム・プロパティーと JSP エンジン・オプションの両方が設定されている場合、 JSP エンジン・オプションが優先されます。disableJspRuntimeCompilation パラメーターを true に設定すると、 自動的に reloadEnabled が false に設定されます。
図 1 に、 trackDependencies が false の場合の JSP ファイル再ロードに関係する処理シーケンスを示します。
trackDependencies が true の場合、 JSP エンジンは追加のファイル・システム処理を行い、JSP ファイルが最後に変換され、コンパイルされて以来、 JSP ファイルの依存関係が変更されていないかを判別します。 図 2 に、「is JSP class file outdated?」とラベルが付けられたフローチャートの「No」パスで実行される追加の処理を示します。. disableJspRuntimeCompilation が true である場合にたどるパスが、最も効果的なパスであることがわかります。