ShowTable of Contents
XPages アプリケーションを実行した際、Domino サーバーが生成する一時ディレクトリの下に、さまざまな一時ファイルが生成されます。
多くのユーザーでアプリケーションを利用した場合などには多数のファイルが生成されるため、その合計サイズもかなり大きなものになる可能性があります。
この記事では、生成される一時ファイルの種類、数、サイズに関して説明します。
注:本記事は、Domino 9.0.1 に基づいて執筆されています。
生成される一時ファイルの種類
生成される一時ファイルには、以下の種類があります。
サーバーページのキャッシュファイル
XPages アプリケーションのページをブラウザからアクセスした際には、そのページの構造やステータスに関する情報を記憶するサーバーページが生成されます。サーバーページ情報は永続性を持つ必要があるため、Javaヒープ上あるいはディスク上のファイルとして保存されます。ファイルに保存する設定が行われている場合にこのキャッシュファイルが生成されます。
リッチテキスト内に配置されたイメージファイル
リッチテキストファイルを利用するアプリケーションの場合、イメージを含むリッチテキストを表示した際、そのイメージファイルが一時ディレクトリに展開されます。
添付ファイルのアップロード
「ファイルのアップロード」コントロールを利用して添付ファイルをアップロードする場合、アップロード操作時に一時ファイルがディスク上に生成されます。
一時ファイルが生成される場所
XPagesにより生成される一時ファイルは、Dominoサーバーの一時ディレクトリ以下、以下の場所/ファイル名でに生成されます。
サーバーページのキャッシュファイル
xspstate\[Application ID]\[Session ID]\[View ID].ser
[]Application ID]は、新たにXPages アプリケーションが起動するごとに割り振られる、1から始まる通し番号です。NSFが異なると、異なるIDが割り振られます。また、同一NSFであっても、アプリケーションタイムアウトが発生して一旦アプリケーションが終了した後、再度アクセスが行われた際には、新たなIDが割り振られます。
[Session ID]は、ユーザーごとに割り振られる40桁の英数字から成るセッションIDです。ブラウザ上ではSessionID Cookieとして記録されています。
[View ID]は、XPages のページを新たにアクセスするごとに割り振られる10桁の英数字からなるビューIDです。ブラウザ上では、$$viewid 隠し入力フィールドの値として記録されています。
リッチテキスト内イメージファイル/添付ファイル
xsppers\[Application ID]\[Session ID]\DominoDoc-[Note ID]-[Field Name]\[Original File Name]
[Note ID]は、表示対象となっているDomino文書のNote IDです。新規作成文書でまだNote IDが確定していない場合には、New_[Serial No]となります。
一時ファイルが生成されるルール
XPages により生成される一時ファイルは、Domino サーバーの一時ディレクトリ以下、以下の場所/ファイル名でに生成されます。
サーバーページのキャッシュファイル
新規に XPages アプリケーション内の XPage ページをアクセスするごとに生成されます。部分更新による画面更新の場合などには、新たに生成されることはありません。異なるページをアクセスした場合、あるいは同一ページであってもページのリロードを行った場合に、新たなファイルが生成されます。
同一セッション内に生成される ser ファイルには上限があり、XPages アプリケーションの「永続性オプション」の設定に基づき決定されます。生成される ser ファイル数が上限を超える場合、古いものから削除されます。
サーバーページの永続性
「ページをディスク上に保持する」あるいは「メモリ内に現在のページのみを保持する」を選択した場合には、ディスク上に ser ファイルが生成されます。「ページをメモリ上に保持する」を選択した場合には ser ファイルは生成されません。
ディスク上の最大ページ数
ここで設定した数が、生成される ser ファイルの上限数となります。未設定の場合のデフォルトは16です。
この上限数はセッションごとのものである点に注意してください。通常のアプリケーションの利用では、同一セッション ID サブディレクトリ以下には最大ページ数分の ser ファイルが生成されます。しかしながら、アプリケーションの利用を途中で中断し、ブラウザを放置した結果セッションタイムアウトが発生し、その後に利用を再開したような場合、セッション ID は同一のまま、実態は別のセッションが再生成されます。このような場合、同一セッション ID サブディレクトリ以下には、最大数より多くの ser ファイルが生成されることがあります。例えば、セッションタイムアウトが1回発生した場合には最大32の ser ファイルが、2回発生した場合には最大48の ser ファイルが生成されます。
(x)バイト未満の場合代わりにメモリに保存
生成される ser ファイルのサイズがここで設定したバイト数よりも小さい場合には、ファイルは生成されずメモリ上に保持されます。ただし、このサイズ以上の ser ファイルを生成する XPage ページが存在する場合には、そのページのアクセスが繰り返されることにより、最終的には上述の上限数まで ser ファイルが生成されることになります。
リッチテキスト内イメージファイル/添付ファイル
リッチテキスト文書を新規生成する際には、イメージファイルの埋め込み操作やファイルのアップロード操作を行った時点で、DominoDoc-[Note ID]-[Field Name] サブディレクトリ以下に一時ファイルが生成されます。
既存リッチテキスト文書を表示する際には、表示操作を行った時点で DominoDoc-[Note ID]-[Field Name] サブディレクトリ以下にイメージファイルに対する一時ファイルが生成されます。同じ文書を複数回行った際には、同一の一時ファイル名が利用されファイルが更新されるため、一時ファイルの数が増えることはありません。ただし、この一時ファイルはセッションごとに異なるため、同一文書を複数ユーザーが表示した場合、ユーザー数分だけ一時ファイルが生成されます。
添付ファイルダウンロード操作時は、対象となるファイルは Domino 文書内から直接取り出されるため、一時ファイルは生成されません。
一時ファイルが削除されるルール
一旦生成された一時ファイルは、XPagesアプリケーションが終了する時点(Dominoサーバーが停止するか、アプリケーションタイムアウトが発生した時点)で削除されます。それまでの間、上述のルールに基づき、一時ファイルの数は増加していきます。
生成される一時ファイルのサイズ
サーバーページのキャッシュファイル
サーバーページのサイズは、表示しようとしているXPageページの構造に依存するため、一定ではありません。以下は目安となる参考値です。
何もコントロールを配置していないブランクページ: 2,505 bytes
「編集ボックス」と「リッチテキスト」コントロールを10個ずつ表に配置したページ: 13,388 bytes
リッチテキスト内イメージファイル/添付ファイル
オリジナルのファイルサイズと同じです。
Dominoサーバー全体での合計一時ファイルサイズ
一時ファイル保存に必要なディスクサイズは、以下の計算式により求められます。(添付ファイルのアップロード操作を除く)
(平均 ser ファイルサイズ X ser ファイル上限数 + 平均イメージサイズ X 1文書中の平均イメージ数 X 平均表示文書数) X セッション数
例えば、以下の数値を用いた場合、必要サイズはおよそ 13GB になります。
平均 ser ファイルサイズ: 20KB
ser ファイル上限数: 16
平均イメージサイズ: 100KB
1文書中の平均イメージ数: 0.5
平均表示文書数: 20
セッション数:10,000
注意として、これは XPages アプリケーションごとに必要となる点、およびセッション数とユーザー数は異なる点があります。同一ユーザーによるアクセスでも、ブラウザを再起動して再度アクセスした場合などには、複数のセッションとしてカウントされます。よって、一般にはセッション数はユーザー数よりも大きな数になります。
一時ファイルは上述のとおり、XPages アプリケーションが終了する時点でクリアされます。通常の利用であれば、夜中にユーザーによるアクセスが行われないことによりアプリケーションタイムアウトが発生したり、毎晩のメンテナンスのための Domino サーバーのリスタートしたりすることによりによりクリアされるため、翌朝にはリセットされた状態で利用できる場合も多いと思われますが、Dominoサーバーを無停止で連続運用し、深夜にもアプリケーションのアクセスが続くような利用形態の場合、予想外に大きな容量が必要にあることもありうるため注意が必要です。そのようなことが想定される場合には、実際に生成される一時ファイルの数やサイズを確認して、最大容量を予測する必要があります。