キャッシュ設定¶
概要¶
キャッシュ機能に関する設定です。バーチャルテナントによる複数テナントで運用する場合のキャッシュ容量(max-bytes-memory, max-bytes-disk, max-elements-on-memory, max-elements-on-disk)はテナント毎に確保されます。例えば、2つのテナントを構築し max-bytes-memory=”60M” と設定した場合、キャッシュを格納する際の最大サイズは 120M です。
モジュール サービス機構モジュール フォーマットファイル(xsd) WEB-INF/schema/im-ehcache-config.xsd 設定場所 WEB-INF/conf/im-ehcache-config/{任意のファイル名}.xml <?xml version="1.0" encoding="UTF-8"?> <im-ehcache-config xmlns="http://www.intra-mart.jp/cache/ehcache/config" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.intra-mart.jp/cache/ehcache/config ../schema/im-ehcache-config.xsd "> <cache name="CACHE_NAME" enable="true" max-bytes-memory="60M" time-to-live-seconds="3600" time-to-idle-seconds="1800" /> </im-ehcache-config>
リファレンス¶
タグ系設定¶
タグ名 cache キャッシュ定義を行います。【設定項目】
<im-ehcache-config> <cache name="CACHE_NAME" enable="true" max-bytes-memory="60M" time-to-live-seconds="3600" time-to-idle-seconds="1800" /> </im-ehcache-config>
必須項目 × 複数設定 ○ 単位・型 なし 親タグ im-ehcache-config 【属性】
属性名 説明 必須 デフォルト値 name キャッシュグループの一意の名称です。利用するキャッシュ毎に一意になる名称を設定してください。im_で始まる名称はシステムで利用される予約語です。○ なし enable キャッシュの有効、無効を設定するフラグです。 × false max-bytes-memory メモリ上にオブジェクトを格納する際の最大サイズを指定します。 1k, 10M, 50G等の表記が可能です。この属性とともに、max-elements-on-memory属性が設定された場合、この属性に設定された値は無効となり、max-elements-on-memory属性が有効な設定として扱われます。× 0 max-elements-on-memory メモリ上にキャッシュするオブジェクトの最大数を指定します。この属性とともに、max-bytes-memory属性が指定された場合、max-bytes-memory属性に設定された値は無効な設定として扱われます。× 0 overflow-to-disk メモリ上にキャッシュするの領域の上限を超えた場合にディスクに書き出すか設定します。 × false max-bytes-disk ディスク上にオブジェクトを格納する際の最大サイズを指定します。 1k, 10M, 50G等の表記が可能です。この属性とともに、max-elements-on-disk属性が設定された場合、この属性に設定された値は無効となり、max-elements-on-disk属性が有効な設定として扱われます。× 0 max-elements-on-disk ディスク上にキャッシュするオブジェクトの最大数を指定します。この属性とともに、max-bytes-disk属性が指定された場合、max-bytes-disk属性に設定された値は無効な設定として扱われます。× 0 time-to-idle-seconds アイドル時間(秒)を指定します。指定された時間対象となるオブジェクトが参照されなかった場合、そのオブジェクトは破棄されます。 × 0 time-to-live-seconds 生存期間(秒)を指定します。指定された生存期間を超えた場合そのオブジェクトは破棄されます。 × 0 コラム
「max-bytes-memory」及び、「max-bytes-disk」属性が設定されている場合、Cacheにオブジェクトを登録する際に、そのオブジェクトのサイズの計算処理が行われます。この際、登録するオブジェクトが、別のオブジェクトの参照を大量に持つ場合、計算処理に時間がかかりパフォーマンスの低下の原因となる可能性があります。登録するオブジェクトが1000以上の参照を持つ場合、下記のようなメッセージがログに出力されます。The configured limit of 1,000 object references was reached while attempting to calculate the size of the object graph. Severe performance degradation could occur if the sizing operation continues. This can be avoided by setting the CacheManger or Cache <sizeOfPolicy> elements maxDepthExceededBehavior to "abort" or adding stop points with @IgnoreSizeOf annotations. If performance degradation is NOT an issue at the configured limit, raise the limit value using the CacheManager or Cache <sizeOfPolicy> elements maxDepth attribute. For more information, see the Ehcache configuration documentation.このログが出力される場合は、キャッシュに格納するオブジェクトの構成を見直すか、「max-bytes-memory」または、「max-bytes-disk」の代わりに、「max-elements-on-memory」または「max-elements-on-disk」の利用を検討して下さい。