Configuring Advanced Cache in SMC for On-Premises Open Integration

This topic describes how to configure cache in SMC when Advanced is selected for Cache Configuration.

If Coherence is already deployed through SMC using the non-Advanced path in 25.10 or later, you only need to enable the Open Integration cache in profile.json. No additional Advanced cache configuration changes are required.

When Advanced configuration is used, append the Open Integration entries to your existing cache-config file. Do not remove or replace existing entries.

Before configuring advanced cache in SMC, you must ensure that:
  • Coherence is deployed through SMC.
  • You have access to the existing cache-config XML file.
  • You preserve all current cache entries and append only the Open Integration additions.
To configure advanced cache in SMC:
  1. Append the following cache mappings in the <caching-scheme-mapping> section of the cache-config file:
    Note: Create the <caching-scheme-mapping> block if it does not already exist.
    <cache-mapping>
       <cache-name>OpenInt_*</cache-name>
       <scheme-name>oi-distributed-sessions</scheme-name>
    </cache-mapping>
    <cache-mapping>
       <cache-name>OpenintAtomic_*_CurrentTasks</cache-name>
       <scheme-name>oi-concurrent</scheme-name>
    </cache-mapping>
    
    Note:
    • The cache names are case-sensitive: OpenInt_*, OpenintAtomic_*_CurrentTasks, oi-distributed-sessions, and oi-concurrent.
    • Append the entries only. Do not duplicate any existing mappings.
  2. Append the following distributed schemes in single <caching-schemes> block of the cache-config file:
    <distributed-scheme>
       <scheme-name>oi-distributed-sessions</scheme-name>
       <service-name>DistributedCache</service-name>
       <backing-map-scheme>
          <read-write-backing-map-scheme>
             <internal-cache-scheme>	
                <local-scheme>
                   <high-units>0</high-units>
                   <expiry-delay>0</expiry-delay>	
                </local-scheme>
             </internal-cache-scheme>
             <listener>
                <class-scheme>
                   <class-name>com.siebel.openint.cache.OpenIntEvictionListener</class-name>
                   <init-params>
                      <init-param>
                         <param-name>context</param-name>
                         <param-value>{manager-context}</param-value>
                      </init-param>
                   </init-params>
                </class-scheme>
             </listener>
          </read-write-backing-map-scheme>
       </backing-map-scheme> 
       <autostart>true</autostart>
    </distributed-scheme>
    <distributed-scheme>
       <scheme-name>oi-concurrent</scheme-name>
       <service-name>DistributedConcurrentCache</service-name>
       <backing-map-scheme>
          <partitioned>true</partitioned>
          <local-scheme>
             <unit-calculator>BINARY</unit-calculator>
          </local-scheme>
       </backing-map-scheme>
       <autostart>true</autostart>
    </distributed-scheme>
    Note:
    • Use the scheme names exactly as shown. They must match the mappings in the cache scheme mappings.
    • Append only. Do not duplicate existing scheme names.
  3. Append the following proxy scheme in the same <caching-schemes> block of the cache-config file, after the distributed schemes:
    <proxy-scheme>
       <scheme-name>OIExtendTcpProxyService</scheme-name>
       <service-name>OIExtendTcpProxyService</service-name>
       <acceptor-config>
          <tcp-acceptor>
             <socket-provider system-property="coherence.extend.socketprovider"/>
          </tcp-acceptor>
       </acceptor-config>
       <autostart>true</autostart>
    </proxy-scheme>
    Note: The name is case-sensitive and must match the client reference OIExtendTcpProxyService.

Complete Advance Cache Configuration Example

The following example shows only the Open Integration additions. Merge these entries into your existing cache-config file.

Add the two cache mappings, the two distributed schemes, and the proxy scheme. Append them to the existing <caching-scheme-mapping> and <caching-schemes> blocks.

Note:
  • Append only to the existing file. Do not remove or duplicate any existing entries.
  • Keep the scheme names exactly as shown.
  • Use the defined order: cache mappings, distributed schemes, then proxy scheme.

Sample:

OI-coherence-server-cache-config

<?xml version="1.0"?>
<cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config" 
xsi:schemalocation="http://xmlns.oracle.com/coherence/coherence-cache-config 
coherence-cache-config.xsd">
<defaults>
   <serializer>pof</serializer>
</defaults>
<caching-scheme-mapping>
   <cache-mapping>
      <cache-name>OpenInt_*</cache-name>
      <scheme-name>oi-distributed-sessions</scheme-name>
   </cache-mapping>
   <cache-mapping>
      <cache-name>OpenintAtomic_*_CurrentTasks</cache-name>
      <scheme-name>oi-concurrent</scheme-name>
   </cache-mapping>
</caching-scheme-mapping>
<caching-schemes>
<distributed-scheme>
   <scheme-name>oi-distributed-sessions</scheme-name>
   <service-name>DistributedCache</service-name>
<backing-map-scheme>
   <read-write-backing-map-scheme>
      <internal-cache-scheme>
         <local-scheme>
            <high-units>0</high-units>
            <expiry-delay>0</expiry-delay>
         </local-scheme>
      </internal-cache-scheme>
      <listener>
         <class-scheme>
            <class-name>com.siebel.openint.cache.OpenIntEvictionListener</class-name>
            <init-params>
               <init-param>
                  <param-name>context</param-name>
                  <param-value>{manager-context}</param-value>
               </init-param>
            </init-params>
         </class-scheme>
      </listener>
   </read-write-backing-map-scheme>
</backing-map-scheme>
<autostart>true</autostart>
</distributed-scheme>
<distributed-scheme>
   <scheme-name>oi-concurrent</scheme-name>
   <service-name>DistributedConcurrentCache</service-name>
   <backing-map-scheme>
      <partitioned>true</partitioned>
      <local-scheme>
         <unit-calculator>BINARY</unit-calculator>
      </local-scheme>
   </backing-map-scheme>
   <autostart>true</autostart>
</distributed-scheme>
   <proxy-scheme>
      <scheme-name>OIExtendTcpProxyService</scheme-name>
      <service-name>OIExtendTcpProxyService</service-name>
         <acceptor-config>
            <tcp-acceptor>
               <socket-provider system-property="coherence.extend.socketprovider"/>
            </tcp-acceptor>
         </acceptor-config>
         <autostart>true</autostart>
      </proxy-scheme>
   </caching-schemes>
</cache-config>