SMC Advanced Cache Configuration for On Premise Open Integration

  • If Coherence is already deployed via SMC using the non-Advanced path in 25.10 or later, you can simply enable the Open Integration cache in profile.json. No Advanced edits are required.

  • If Advanced is selected for Cache Configuration, add the snippets below to your existing Cache Configuration XML (cache-config). Append them; do not remove or replace your current entries. You may add further configuration as needed.

Cache Scheme Mappings

  • In cache-config, find the <caching-scheme-mapping> block. If it doesn’t exist, create it once.
  • Append these two mappings:
     <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:
  • Case-sensitive names: OpenInt_* and OpenintAtomic_*_CurrentTasks; oi-distributed-sessions; oi-concurrent.
  • Append only, do not duplicate existing mappings.

Distributed Schemes

  • In cache-config, locate the single <caching-schemes> block. Append these two distributed 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>
        
Note:
  • Keep scheme-name values exactly as shown; they must match the mappings in 6.1.
  • Append only, do not duplicate existing scheme names in your file.

Proxy Scheme

  • In cache-config, inside the same <caching-schemes> block, append this proxy-scheme 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: Names are case-sensitive and must match client references: OIExtendTcpProxyService.

Full Configuration Exmaple

  • The following shows only the Open Integration additions. Merge these into your existing cache-config: add the two cache-mappings, the two distributed schemes, and the proxy-scheme.
  • Append to your current <caching-scheme-mapping> and <caching-schemes> blocks; do not remove or duplicate existing entries.
  • Keep the order: cache-mappings, then distributed-schemes, then proxy-scheme.
  • Names are case-sensitive and must match earlier sections.
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">

    <!-- Default settings for the cache -->
    <defaults>
        <!-- Specifies POF (Portable Object Format) for serialization -->
        <serializer>pof</serializer>
    </defaults>
    <!-- Maps cache names to caching schemes -->
    <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>
    <!-- Defines different caching schemes -->
    <caching-schemes>
        <!-- Distributed caching scheme configuration -->
        <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 caching scheme for remote access -->
        <!-- <proxy-scheme>
             <service-name>ExtendTcpProxyService</service-name>
             <acceptor-config>
                 <tcp-acceptor/>
             </acceptor-config>
             <autostart>true</autostart>
         </proxy-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>