支持 Ehcache 中的大量并发会话
将 Ehcache 用作某些 Interact 环境中的高速缓存管理器时,大量并发会话可能导致 Interact 运行时超过其可用内存量,从而导致系统变慢或内存不足错误。内存不足情况更类似于将 maxEntriesInCache 配置参数 (Interact > cacheManagement > Caches > InteractCache > maxEntriesInCache) 增大至高于缺省设置的某个数值,但即使使用缺省设置(最大 100,000 个会话)也可能会发生这种情况。要避免此问题,您可以减小 maxEntriesInCache 值,也可以遵循此处指示信息以修改系统内存缓存,从而将已高速缓存的内存转移到磁盘存储器。该修改操作将允许更多并发会话,这在其他情况下是不允许的。
要避免 Interact 运行时超出 Java 虚拟机 (JVM) 内存堆的可用内存,可修改内存缓存机制以将磁盘存储器用于缓存超出可用内存的数据。
Interact 使用称为 Ehcache 的开放式源代码分布式高速缓存系统来缓存数据。缺省情况下,Interact 使用 IBM® Marketing Platform 指定的设置来管理 Ehcache 高速缓存。但是,您可通过创建可在 Interact 启动时自动装入的自有 Ehcache 配置文件来覆盖 Interact 的这些设置。
要在启动时装入定制 Ehcache 配置文件,必须满足以下条件:
*
您的 JVM 必须包括参数 interact.ehcache.config 属性,如以下示例所示:
-Dinteract.ehcache.config=/temp/abc.xml
您可在启动命令脚本 (Oracle WebLogic) 或管理控制台 (IBM®WebSphere®) 中为 Web 应用程序服务器设置 JVM 属性。/temp/abc.xml 中的信息是 XML 文件的真实路径,该文件包含您想要在启动时装入的 Ehcache 配置。
*
如果您未设置该属性,或已设置该属性,但指定的位置中无配置文件,那么 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
有关可用于修改 Ehcache 软件的选项的完整列表,请参阅 http://ehcache.org/files/documentation/EhcacheUserGuide-2.0-2.3.pdf