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