2.5.3 DTSのメモリキャッシュ

DTSのメモリキャッシュとは,一度読み込んだDTSをメモリにキャッシュすることです。同じDTSを基に複数のインスタンス文書を作成する場合などに,効率良く文書の作成,編集ができます。

ここでは,メモリキャッシュのタイミングと範囲,メモリキャッシュが解放されるタイミング,メモリキャッシュの条件,およびメモリキャッシュの設定方法について説明します。

<この項の構成>
(1) メモリキャッシュのタイミングと範囲
(2) メモリキャッシュが解放されるタイミング
(3) メモリキャッシュの条件
(4) メモリキャッシュの指定方法

(1) メモリキャッシュのタイミングと範囲

タクソノミー文書を解析したときに,タクソノミー文書がメモリにキャッシュされます。インスタンス文書から参照されるリンクベースは,メモリにキャッシュされません。

キャッシュされたタクソノミー文書は,一つのアプリケーション内で有効です。実行環境がuCosminexus Application Serverの場合,一つのWebアプリケーション内で有効です。

タクソノミー文書の解析と同時に検証をしてエラー(致命的エラーでないエラー)があった場合,メモリキャッシュされません。ただし,エラーがあった場合でもメモリにキャッシュするよう,設定を変更することもできます。

XBRL2.1の場合は,タクソノミー文書の解析時にタクソノミー文書を検証しない設定ができます。解析時に検証しない設定の場合,未検証のタクソノミー文書がメモリにキャッシュされます。メモリにキャッシュされている未検証のタクソノミー文書を検証して,キャッシュを上書きすることもできます。

キャッシュされたあとで同じタクソノミー文書を検証した場合,キャッシュされている内容は使用しないで再度解析されます。検証の結果,エラーがないとメモリキャッシュの内容が上書きされます。エラーがあると,メモリキャッシュの内容は変更されません。

(2) メモリキャッシュが解放されるタイミング

メモリキャッシュは次のどちらかのタイミングで解放されます。

(3) メモリキャッシュの条件

メモリキャッシュされたタクソノミー文書を使用する場合,インスタンス文書に指定されているタクソノミー文書のURIを基に,同じタクソノミー文書かどうかが判断されます。そのため,インスタンス文書では次の点に注意してください。

XBRL2.0の場合
メモリキャッシュを使用するインスタンス文書では,xsi:schemaLocation属性に同じ値を指定してください。
XBRL2.1の場合
インスタンス文書の<link:schemaRef>要素に同じ値を指定するか,またはXBRLInstanceDocumentBuilderFactoryのsetExternalSchemaRefs()メソッドで,足りないタクソノミー文書のURIを指定してください。

(4) メモリキャッシュの指定方法

メモリキャッシュを使用する場合,次のプロパティを指定できます。ここでは,指定できるプロパティについて説明します。プロパティの指定方法については,「4.16.1 プロパティの指定方法と優先順位」を参照してください。