Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
ここでは,JSFおよびJSTLとアプリケーションサーバのほかの機能との関連について説明します。
JSFまたはJSTLとあわせて利用する場合に,留意する必要がある機能を次の表に示します。
表3-3 JSFまたはJSTLと合わせて利用する場合に留意する必要がある機能
項番 | 機能 | 機能についての参照先 |
---|---|---|
1 | 明示管理ヒープ機能 | マニュアル「機能解説 拡張編」の「8. 明示管理ヒープ機能を使用したFullGCの抑止」 |
2 | セッションフェイルオーバ機能 | マニュアル「機能解説 拡張編」の「5.2 セッションフェイルオーバ機能の概要」 |
3 | リデプロイ機能とリロード機能 | マニュアル「機能解説 基本・開発編(コンテナ共通機能)」の「13. J2EEアプリケーションの形式とデプロイ」 |
4 | JSP事前コンパイル機能 | 「2.5 JSP事前コンパイル機能とコンパイル結果の保持」 |
5 | J2EEリソースへの別名付与(ユーザ指定名前空間機能) | マニュアル「機能解説 基本・開発編(コンテナ共通機能)」の「2. ネーミング管理」 |
注 マニュアル名の「アプリケーションサーバ」は省略しています。
以降,JSFおよびJSTLと各機能との関連について説明します。
JSFでは,ユーザが作成したFaceletsファイルやJSPファイルを基に生成された次の情報およびオブジェクトを,HTTPセッションに登録します。
これらの情報およびオブジェクトは,ほかのWebアプリケーションと同様に,明示管理ヒープ機能を使用して管理できます。
ただし,情報およびオブジェクトがHTTPセッションに登録されるかどうかには条件があります。また,HTTPセッションに登録されるすべての情報が明示管理ヒープを使用して管理されるわけではありません。HTTPセッションに情報またはオブジェクトが登録される条件と,それらの情報またはオブジェクトが明示管理ヒープ機能を使用して管理されるかどうかを次の表に示します。
表3-4 HTTPセッションに情報またはオブジェクトが登録される条件
情報またはオブジェクト | HTTPセッションに登録される条件 | 明示管理ヒープ機能を使用して管理されるかどうか |
---|---|---|
UIComponentのビュー情報(テキストフィールド,ラジオボタン,サブミットボタンなどのユーザとの入出力インターフェースを構成するビューの情報) | JSF標準コンテキストパラメタのjavax.faces.STATE_SAVING_METHODの値が「server」(デフォルト値)の場合 | 使用しない |
ManagedBeanオブジェクト | SessionScopeアノテーションが指定された場合,またはfaces-config.xmlの<managed-bean-scope>に「session」を指定した場合 | 使用する |
ページで使用する文字コード | HTTPセッションが生成されていた場合 | 使用する |
SessionMapに登録したオブジェクト | ユーザアプリケーションで使用した場合 | 使用する |
また,明示管理ヒープ機能を使用する場合,JSFアプリケーションが明示管理ヒープ領域で使用するメモリサイズの概算は,次の式を使用して算出してください。
1セッション当たりで明示管理ヒープ領域を使用するサイズ =(A※+1) × 0.4キロバイト +ManagedBeanオブジェクトサイズ(HTTPセッションに登録される場合) +SeesionMapに登録した場合のオブジェクトサイズ
JSFがHTTPセッションに登録するオブジェクトを利用して,ほかのWebアプリケーションと同様にセッションフェイルオーバ機能を使用できます。JSF固有の設定も不要です。
表3-5 JSFアプリケーションがHTTPセッションに登録するオブジェクトサイズ
ページ | メモリを使用する処理 | 使用メモリ |
---|---|---|
Faceletsページ | 必須なオブジェクトと各タグ部分 | 1.3キロバイト |
一つのFormタグのページ生成部分 | 0.2キロバイト※1 | |
EL式を使用した場合※2 | 0.8キロバイト※3 | |
JSPページ | 必須なオブジェクトと各タグ部分 | 2.2キロバイト |
一つのFormタグのページ生成部分 | 2.0キロバイト※1 | |
EL式を使用した場合※2 | 0.8キロバイト※3 |
注※1 ManagedBeanの作り方やタグのID設定などによって,多少の増減があります。
注※2 リソース数ごとに見積もってください。
注※3 リソースの作り方によって,多少の増減があります。
リデプロイ機能について,JSFアプリケーションとして留意する点はありません。ほかのWebアプリケーションと同様に機能を使用できます。
リロード機能についても,コマンドによるリロードを実行する場合は,JSFアプリケーションとして留意する点はありません。ほかのWebアプリケーションと同様に機能を使用できます。
ただし,更新検知によるリロードについては,更新検知の対象となるファイルに次の制限があります。
次に,Faceletsに含まれるファイルが更新された場合に,どの範囲でリロード機能が実行されるかを示します。
表3-6 Faceletsに含まれるファイルが更新された場合のリロード機能の適用範囲
更新検知の対象ファイル | リロード機能の適用範囲 | ||
---|---|---|---|
app | web | jsp | |
Faceletsファイル | × | × | × |
タグファイル | ○ | ○ | ○ |
ManagedBeanコンパイル結果 | ○ | ○ | ○ |
静的コンテンツ | × | × | × |
(凡例)○:適用される ×:適用されない
クラスローダによってロードされるファイルであるサーブレットやJSPファイルは,監視対象のファイルなので,更新されたときにJ2EEサーバが更新を検知してリロードが実行されます。しかし,Faceletsファイルはクラスローダによってロードされるファイルではありません。このため,Faceletsファイルを更新しても,J2EEサーバで更新が検知されないため,リロードも実行されません。
Faceletsファイルの更新を自動的に検知して反映したい場合は,標準コンテキストパラメタにjavax.faces.FACELETS_REFRESH_PERIODを指定してください。このパラメタに定義した時間間隔でFaceletsファイルの更新状態が監視され,更新が検知されると,その内容が反映されます。ただし,この機能は展開ディレクトリ形式のアプリケーションの場合だけ有効です。
なお,Faceletsファイルのページ出力を実行したあとでFaceletsファイルを更新した場合は,次にページにアクセスした時にJSFによってFaceletsファイルの更新が検知され,KDJE59227-Iメッセージが出力されます。
JSFアプリケーション内のJSPファイルは,JSP事前コンパイル機能を使用してコンパイルできます。
ただし,cjjspcコマンドを使用してJSFアプリケーション内のJSPファイルをコンパイルする場合,-classpathオプションに使用するタグライブラリとクラスライブラリを明示的に指定する必要があります。
-classpathオプションの指定例を次に示します。
-classpath <Application Serverのインストールディレクトリ>/CC/lib/cjsf.jar ; <Application Serverのインストールディレクトリ>/CC/lib/cjstl.jar
JSTLでは,J2EEリソースの別名は使用できません。
JSTLの<sql:setDataSource>タグのdatasource属性には,java:comp/envからの相対パスを指定してください。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.