20 JCSの構成

14cバージョン以降、OIGではEHキャッシュではなく、JCSキャッシュを使用してキャッシュ・データが管理されます。EHキャッシュがJCSに置き換えられたのは、セキュリティの脆弱性が理由です。JCSでは、ラテラルUDP検出(LTCP)を使用してノード間にキャッシュが分散されます。JCSの詳細は、https://commons.apache.org/proper/commons-jcs/LateralUDPDiscovery.htmlを参照してください

JCSでは、キャッシュ・リージョン(またはカテゴリ)を使用して関連データがまとめて格納され、すべてのリージョンに独自の構成があります。すべてのリージョンのキャッシュ構成が、<OIM_HOME>/server/config/にあるcache.ccfというファイルに格納されます。

次に、リージョン構成の一例を示します。

必要に応じて設定を変更するには、このファイルを編集し、サーバーを再起動して変更を有効にする必要があります。各パラメータの説明は、https://commons.apache.org/proper/commons-jcs/LateralTCPProperties.htmlに記載されています。

jcs.region.SSOIntegration=LTCP
jcs.region.SSOIntegration.cacheattributes=org.apache.commons.jcs3.engine.CompositeCacheAttributes
jcs.region.SSOIntegration.cacheattributes.MaxObjects=200001
jcs.region.SSOIntegration.cacheattributes.MemoryCacheName=org.apache.commons.jcs3.engine.memory.lru.LRUMemoryCache
jcs.region.SSOIntegration.cacheattributes.UseMemoryShrinker=truejcs.region.SSOIntegration.cacheattributes.MaxMemoryIdleTimeSeconds=3600jcs.region.SSOIntegration.cacheattributes.ShrinkerIntervalSeconds=60
jcs.region.SSOIntegration.elementattributes=org.apache.commons.jcs3.engine.ElementAttributes
jcs.region.SSOIntegration.elementattributes.IsEternal=false
jcs.region.SSOIntegration.elementattributes.MaxLifeSeconds=700
jcs.region.SSOIntegration.elementattributes.IdleTime=1800
jcs.region.SSOIntegration.elementattributes.IsSpool=true
jcs.region.SSOIntegration.elementattributes.IsRemote=true
jcs.region.SSOIntegration.elementattributes.IsLateral=true

次に示すように、oim-config.xmlにも、XMLタグ<cacheCategoryConfig>にキャッシュ設定が含まれています。

このファイルにある属性expirationTimeは、cache.ccfファイルの属性 "jcs.region.<region name>.elementattributes.MaxLifeSeconds"と同じです。oim-config.xmlに行われた変更は、デフォルトの構成をオーバーライドします。そのため、構成にはcache.ccfを使用します。

<cacheCategoryConfig name="SSOIntegration" enabled="true" expirationTime="14400" />

JCS固有の構成に加え、次の2つの追加パラメータを使用して、パラメータ"TcpListenerPort"をオーバーライドします。この構成は、複数のOIMノードが同じホストで実行されている場合に使用できます。

jcs.auxiliary.LTCP.attributes.TcpListenerPort=10890

#同じホスト・マシンに複数のOIMサーバーがある場合は、jcs.auxiliary.LTCP.attributes.TcpListenerPortを、サーバーごとに異なる値で定義する必要があります。この場合は、デフォルト構成をオーバーライドします。

#machine1

oracle.iam.host.WLS_OIM1.tcpport=10890

oracle.iam.host.WLS_OIM2.tcpport=10891

#machine2

oracle.iam.host.WLS_OIM3.tcpport=10890

oracle.iam.host.WLS_OIM4.tcpport=10891