intra-mart Accel Platform 設定ファイルリファレンス 第34版 2024-04-01

キャッシュ設定

概要

キャッシュ機能に関する設定です。
バーチャルテナントによる複数テナントで運用する場合のキャッシュ容量(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」の利用を検討して下さい。