3.3.5 スキーマキャッシュの削除および再構築
キャッシュ対象のスキーマ文書を削除・変更した場合,コマンドを使用してキャッシュを削除・再構築する必要があります。コマンドを使用することで,J2EEサーバを停止することなくスキーマ文書の変更をキャッシュに反映させることができます。
キャッシュの削除・再構築に関する注意事項については,「6.18.4 キャッシュの再構築・削除に関する注意事項」を参照してください。
キャッシュの削除・再構築時に実行するコマンドについて説明します。
- 〈この項の構成〉
(1) cacheoffコマンド(XMLパーサにキャッシュ削除を指示する)
(a) 形式
cacheoff J2EEサーバ名
(b) cacheoffコマンド実行時の動作
cacheoffコマンドを実行したときの動作を次に示します。なお,スキーマキャッシュ機能が無効の場合,cacheoffコマンドを実行しても,何も動作しません。
-
cacheoffコマンドを実行すると,XMLパーサはメモリ上のキャッシュをすべて開放し,スキーマ定義ファイルの"diskcache_path"で指定されたディレクトリ以下の,J2EEサーバ名と同じ名前のディレクトリおよびその下に作成されたディスクキャッシュをすべて削除します。
-
cacheoffコマンド実行後はスキーマキャッシュ機能が無効となり,XMLパーサはキャッシュを使用しないでスキーマ検証を実施します。
-
cacheoffコマンドはXMLパーサにキャッシュの削除を指示するだけであり,直接キャッシュを削除するわけではありません。cacheoffコマンド実行後,最初にDOMパーサがパースするときにキャッシュが削除されます。
-
cacheoffコマンド実行時には「"diskcache_path"で指定されたディレクトリ/サーバ名」のディレクトリを表示して,削除してよいかどうかユーザに確認を求めます。ディスク上にキャッシュが作成されていない場合でも,ディスクキャッシュを格納するためのディレクトリだけは作成されているため,削除してよいかどうかユーザに確認を求めます。
-
cacheoffコマンドを実行した場合に,システムの異常などにより内部ディレクトリおよび内部ファイルにアクセスできなかったときは,エラーメッセージ(KECX09506-E)を標準エラー出力に出力し,コマンドの処理を中断します。
-
cacheoffコマンドの引数に存在しないJ2EEサーバ名が指定された場合,エラーメッセージ(KECX09510-E)が出力されます。
-
J2EEサーバのユーザ定義ファイルで,com.cosminexus.jaxp.grammar_caching.preloadプロパティに"ON"が指定されていない場合に,そのJ2EEサーバに対してcacheoffコマンドを実行したときは,エラーメッセージ(KECX09510-E)が出力されます。
-
コマンド引数に誤りがあった場合,次のエラーメッセージを出力して処理を中断します。
KECX09513-E cacheoff : Invalid parameter. usage : cacheoff J2EE_server_name
(2) cacheonコマンド(XMLパーサにキャッシュ再構築を指示する)
(a) 形式
cacheon J2EEサーバ名
(b) cacheonコマンド実行時の動作
cacheonコマンドを実行したときの動作を次に示します。
-
cacheonコマンドを実行すると,XMLパーサはメモリ上のキャッシュを開放し,スキーマ定義ファイルの"diskcache_path"で指定されたディレクトリ以下の,J2EEサーバ名と同じ名前のディレクトリおよびその下に作成されたディスクキャッシュをすべて削除します。そのあと,スキーマ定義ファイルの内容に従ってキャッシュを再構築します。
-
cacheonコマンド実行後はスキーマキャッシュ機能が有効となり,XMLパーサはキャッシュを使ってスキーマ検証を実施します。
-
cacheonコマンドはXMLパーサにキャッシュの再構築を指示するだけであり,直接キャッシュを削除したり再構築したりするわけではありません。cacheonコマンド実行後,最初にXMLパーサがパースするときにキャッシュが削除され,再構築されます。
-
cacheonコマンドを実行した場合に,システムの異常などにより内部ディレクトリおよび内部ファイルにアクセスできなかったときは,エラーメッセージ(KECX09506-E)を標準エラー出力に出力し,コマンドの処理を中断します。
-
cacheonコマンドの引数に存在しないJ2EEサーバ名が指定された場合,エラーメッセージ(KECX09510-E)が出力されます。
-
J2EEサーバのユーザ定義ファイルで,com.cosminexus.jaxp.grammar_caching.preloadプロパティに"ON"が指定されていない場合に,そのJ2EEサーバに対してcacheonコマンドを実行したときは,エラーメッセージ(KECX09510-E)出力されます。
-
コマンド引数に誤りがあった場合,次のエラーメッセージを出力して処理を中断します。
KECX09513-E cacheon : Invalid parameter. usage : cacheon J2EE_server_name
(3) cachestateコマンド(キャッシュ機能の状態を表示する)
(a) 形式
cachestate [-d] [J2EEサーバ名]
(b) cachestateコマンド実行時の動作
cachestateコマンドを実行したときの動作を次に示します。
-
cachestateコマンドを-dオプションなしで実行すると,スキーマキャッシュ機能の状態が標準出力に表示されます。表示される内容を次に示します。
表3‒5 表示されるスキーマキャッシュ機能の状態 項番
スキーマキャッシュ機能の状態
表示内容
1
有効
"KECX09501-I J2EE Server 'J2EEサーバ名': schema cache: ON"
2
無効
"KECX09501-I J2EE Server 'J2EEサーバ名': schema cache: OFF"
-
cachestateコマンドを実行した場合に,システムの異常などにより内部ディレクトリおよび内部ファイルにアクセスできなかったときは,エラーメッセージ(KECX09506-E)を標準エラー出力に出力し,コマンドの処理を中断します。
-
cachestateコマンドの引数に存在しないJ2EEサーバ名が指定された場合,エラーメッセージ(KECX09510-E)が出力されます。
-
cachestateコマンドの引数のJ2EEサーバ名が省略された場合,すべてのJ2EEサーバに関する情報が出力されます。
-
J2EEサーバのユーザ定義ファイルで,com.cosminexus.jaxp.grammar_caching.preloadプロパティに"ON"が指定されていない場合に,cachestateコマンドに-dオプションを指定して実行しても,何も情報が出力されません。
-
コマンド引数に誤りがあった場合,次のエラーメッセージを出力して処理を中断します。
KECX09513-E cachestate : Invalid parameter. usage : cachestate [-d] [J2EE_server_name]
-
cachestateコマンドに-dオプションを指定して実行すると,次の情報が標準出力に表示されます。
-
スキーマキャッシュ機能の状態("ON"または"OFF")
-
現在有効なスキーマ定義ファイル
-
現在有効なdiskcache_path(ディスクキャッシュが作成されるディレクトリ)
-
キャッシュ構築の開始・終了時刻
-
スキーマ文書のキャッシュ構築状況
-
キャッシュ構築中のエラー情報
情報の出力フォーマットを次に示します。
図3‒3 cachestateコマンド実行時の出力フォーマット サーバ名を指定しない場合,サーバの数だけ情報を出力します。途中でKECX09506-Eのエラーが発生した場合でも,残りのサーバの情報を出力します。この情報の内容は,キャッシュが再構築されるたびにクリアされ,更新されます。
-
(4) 各コマンドとパースの同期処理の関係
cacheonコマンド,cacheoffコマンド,およびcachestateコマンドとパースの同期処理の関係を次に示します。
項番 |
実行するアクション |
システムの状態 |
||
---|---|---|---|---|
パース実行中および右記以外 |
キャッシュ構築中 |
キャッシュ削除中 |
||
1 |
パース |
パースを開始します (すぐに処理を開始します)。 |
構築が完了したあとパースを開始します。 |
削除が完了したあとパースを開始します。 |
2 |
cacheonコマンド |
次の順番で実行します。
|
||
3 |
cacheoffコマンド |
次の順番で実行します。
|
||
4 |
cachestateコマンド |
次の情報を表示します。
|
"KECX09501-I J2EE Server 'J2EEサーバ名': schema cache: OFF"を表示します。 |