Ehcache で多数の並行セッションに対応する

いくつかの Interact 環境で Ehcache をキャッシュ・マネージャーとして使用しているとき、並行セッションの数が多いと、Interact ランタイム が使用可能メモリーを超え、システム減速またはメモリー不足エラーを引き起こします。メモリー不足の状況が起こりやすいのは、maxEntriesInCache構成パラメーター ( 「Interact」 > 「cacheManagement」 > 「Caches」 > 「InteractCache」 > 「maxEntriesInCache」) をデフォルト設定よりも大きくした場合で、デフォルト設定を最大 100,000 セッションにしたとしても起こる場合があります。この問題を避けるために、maxEntriesInCache の値を小さくするか、このセクションの指示に従ってシステム・メモリー・キャッシュを変更し、キャッシュ・メモリーをディスク・ストレージに切り替えます。この変更により、通常 より多くの並行セッションが可能になります。

Interact ランタイムが、 Java™ 仮想マシン (JVM) メモリー・ヒープにある使用可能なメモリーを超過するのを避けるために、 メモリーのキャッシング・メカニズムを変更し、使用可能なメモリーを超えるデータのキャッシングにディスク・ストレージを使用するようにします。

システム管理者は、以下の JVM パラメーターを使用して配置システムで使用できるメモリー量を調整できます。

-Xms####m -Xmx####m -XX:MaxPermSize=256m

文字 #### は 2048 以上 (システム負荷により異なります) にする必要があります。2048 より大きい値にする場合は、通常 64 ビット・アプリケーション・サーバーおよび JVM が必要です。

Interact は、データのキャッシングに Ehcache と呼ばれる オープン・ソースの分散キャッシング・システムを使用します。デフォルトでは、Interact は、Ehcache キャッシングを管理するため IBM® Marketing Platform で指定された設定を使用します。ただし、Interact が開始するときはいつでも、自動でロードされる Ehcache 構成ファイルを作成することによって、Interact の設定をオーバーライドすることができます。

開始時にカスタムの Ehcache 構成ファイルをロードするには、 以下の条件を満たしている必要があります。

  • 以下の例のように、ご使用の JVM には、パラメーター interact.ehcache.config プロパティーが入っている必要があります。

    -Dinteract.ehcache.config=/temp/abc.xml

    開始コマンド・スクリプト (Oracle WebLogic) または管理コンソール (IBM WebSphere®) の Web アプリケーション・サーバー用に JVM プロパティーを設定することができます。/temp/abc.xml にある情報は、 開始時にロードしたい Ehcache 構成を含む XML ファイルへの実際のパスです。

  • 有効な Ehcache 構成設定を含む XML フォーマットの 構成ファイルは、JVM プロパティーで指定された場所にある必要があります。

    このプロパティーを設定しない場合、または このプロパティーを設定したのに、指定された場所に構成ファイルが存在しない場合、 Interact は デフォルトのキャッシュ構成を使用します。

両方の条件が真である場合、Ehcache 構成ファイルは 開始時にロードされ、その設定は、キャッシング・セッション・データ用のデフォルトInteract の構成パラメーターをオーバーライドします。

以下の例では、Ehcache のカスタマイズで使用することができる 構成ファイルの例 (XML 形式) を表しています。

<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="../../main/config/ehcache.xsd"> 

<defaultCache
maxElementsInMemory="10"
eternal="false"
timeToIdleSeconds="5"
timeToLiveSeconds="10"
overflowToDisk="true"
/>

<cache name="InteractCache"
maxElementsInMemory="5"
eternal="false"
timeToIdleSeconds="600"
timeToLiveSeconds="600"
overflowToDisk="true">

<cacheEventListenerFactory 
class="com.unicacorp.interact.cache.ehcache.EHCacheEventListenerFactory"
 properties=""/>
<!--For InteractCache, use the following to use the 
EHCacheEventListenerFactory:-->
<cacheEventListenerFactory 
class="com.unicacorp.interact.cache.EHCacheEventListenerFactory"
 properties=""/>
<!--For PatternStateCache, use the following to use 
the EHCacheEventListenerFactory:-->
<cacheEventListenerFactory 
class="com.unicacorp.interact.cache.PatternStateCacheEventListenerFactory"
 properties=""/>
</cache>

</ehcache>

このファイルを /IBM/Interact/conf/Ehcache.xml として保存する場合、 Web アプリケーション用の JVM プロパティーを以下の例のように設定します。

-Dinteract.ehcache.config=/IBM/Interact/conf/Ehcache.xml

ソフトウェアの変更に関するオプションすべての一覧は、次を参照してください。 http://www.ehcache.org/documentation/