This topic describes how you can configure Enterprise Cache for Open Integration in SMC. You can use a non-Advanced configuration when SMC manages the required cache configuration, or an Advanced configuration when you need to add or update the required Open Integration cache XML.

Note: This topic covers Open Integration cache configuration only. For Enterprise Cache installation, cluster topology, hosts, ports, sizing, and general Siebel Management Console (SMC) deployment procedures, refer the Introduction to Coherence Cache documentation.

It includes the following sections:

Prerequisites for Advanced Configuration

When you use an Advanced configuration, you must ensure that all three Open Integration cache mappings and all three corresponding schemes are present in the XML configuration. Do not configure only one mapping or scheme.

Purpose Cache Name Pattern Scheme Service or Listener
Open Integration sessions OpenInt_* oi-distributed-sessions DistributedCache / OpenIntEvictionListener
Open Integration REST sessions OpenIntRest_* oi-distributed-rest-sessions DistributedCache / OpenIntRestEvictionListener
Open Integration current-task coordination OpenIntAtomic_*_CurrentTasks oi-concurrent DistributedConcurrentCache

The configuration must also include OIExtendTcpProxyService for Open Integration.

Note: Names are case-sensitive. Use OpenIntRest_* exactly as shown. Do not use OpenIntRest\_*.

Before You Begin

For an existing environment, you must complete the following steps before you change or redeploy Enterprise Cache:

  1. Stop Open Integration.
  2. Complete the applicable cache configuration and deployment steps.
  3. Confirm that the Enterprise Cache Server deployment completes successfully.
  4. Start Open Integration.
Note: Redeploying Enterprise Cache clears existing cache and session entries. This behavior is expected during an upgrade because Siebel restart also invalidates these entries.

Configuring Advanced Cache

To use an Advanced configuration:

  1. In SMC, open Profiles, and then select Enterprise Cache Server.
  2. Under Cache Configuration, enable Advanced.
  3. Add or update the required Open Integration cache XML.

You don’t need to make Open Integration-specific changes under Tango Coherence Override.

Cache Configuration Scenarios

This section describes the different scenarios for advanced and non-advanced cache configurations. It includes the following sections:

Scenario 1: New Installation with Non-Advanced Cache Configuration

You can use this scenario for a new Siebel CRM environment that uses a non-Advanced cache configuration.

To perform a new installation using a non-Advanced cache configuration:

  1. Create a new non-Advanced Enterprise Cache server profile in SMC.
  2. Configure the Enterprise Cache server profile. For more information, refer the Introduction to Coherence Cache documentation.
  3. Deploy the Enterprise Cache server profile.
  4. Confirm that the deployment completes successfully.
  5. Start Open Integration.
Note: No custom Open Integration cache XML is required.

Scenario 2: New Installation with Advanced Cache Configuration

You can use this scenario for a new Siebel CRM environment that requires an Advanced cache configuration.

To perform a new installation using an Advanced cache configuration:

  1. Create an Enterprise Cache Server profile in SMC.
  2. Under Cache Configuration, enable Advanced.
  3. Configure Enterprise Cache installation and general settings. For more information, refer the Introduction to Coherence Cache documentation.
  4. Add the required Open Integration Advanced configuration, all three cache mappings, all three schemes, both eviction listeners, OIExtendTcpProxyService, and ExtendTcpProxyService.
  5. Deploy the Enterprise Cache Server profile.
  6. Confirm that the deployment completes successfully.
  7. Start Open Integration.

Scenario 3: Upgrade with an Existing Advanced Cache Configuration

You can use this scenario when the earlier release already uses an Advanced Enterprise Cache Server profile.

Siebel 26.8 adds a dedicated cache for Open Integration REST sessions.

To upgrade with an existing advanced cache configuration:

  1. Add oi-distributed-rest-sessions scheme to the existing <caching-scheme-mapping> section:
    <cache-mapping>
      <cache-name>OpenIntRest_*</cache-name>
      <scheme-name>oi-distributed-rest-sessions</scheme-name>
    </cache-mapping>
    
  2. Add <distributed-scheme> to the existing <caching-schemes> section:
    <distributed-scheme>
        <scheme-name>oi-distributed-rest-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.OpenIntRestEvictionListener
                        </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>
    
  3. Complete the cache configuration in SMC:
    1. Stop Open Integration.
    2. Open the existing Enterprise Cache Server profile in SMC.
    3. Under Cache Configuration, enable Advanced.
    4. Save a backup copy of the existing cache configuration XML.
    5. Add the 26.8 REST mapping and scheme.
    6. Make sure all the prerequisites for Advanced configuration are available. For more information, see Prerequisites for Advanced Configuration.
    7. Retain ExtendTcpProxyService and all valid customer-specific configuration.
    8. Do not duplicate cache mappings, scheme names, service names, listeners, or proxy definitions.
    9. Save the profile and redeploy the Enterprise Cache Server deployment using the standard SMC procedure.
    10. Start Open Integration after the deployment completes successfully.
Note: You must merge the 26.8 Open Integration configuration into the existing XML. Do not replace the existing cache XML.

Scenario 4: Upgrade with an Existing Non-Advanced Cache Configuration

You can use this scenario when Enterprise Cache was deployed by using the standard non-Advanced SMC configuration in the earlier release.

To upgrade with an existing non-advanced cache configuration:

  1. Stop Open Integration.
  2. Delete the existing Enterprise Cache Server deployment from SMC.
  3. Create a new non-Advanced Enterprise Cache Server profile.
  4. Configure the Enterprise Cache server profile. For more information, refer the Introduction to Coherence Cache documentation.
  5. Deploy the new Enterprise Cache Server profile.
  6. Confirm that the deployment completes successfully.
  7. Start Open Integration.

No custom Open Integration cache XML is required.

Note: Do not manually edit generated Coherence XML for a non-Advanced profile. SMC generates and manages the required cache configuration.

Scenario 5: Upgrade Without Existing Cache Using a Non-Advanced Configuration

You can use this scenario when the earlier release did not use Enterprise Cache and you want the upgraded environment to use a non-Advanced configuration.

To upgrade with an existing cache using a non-advanced configuration:

  1. Stop Open Integration, if it is running.
  2. Create a new non-Advanced Enterprise Cache Server profile in SMC.
  3. Configure the Enterprise Cache server profile. For more information, refer the Introduction to Coherence Cache documentation.
  4. Deploy the Enterprise Cache Server profile.
  5. Confirm that the deployment completes successfully.
  6. Start Open Integration.

No custom Open Integration cache XML is required.

Scenario 6: Upgrade Without Existing Cache Using an Advanced Configuration

You can use this scenario when the earlier release did not use Enterprise Cache, and you want the upgraded Siebel CRM environment to use Open Integration cache with an Advanced configuration.

To upgrade without an existing cache using an Advanced configuration:

  1. Stop Open Integration.
  2. Create a new Enterprise Cache Server profile in SMC.
  3. Under Cache Configuration, enable Advanced.
  4. Configure Enterprise Cache installation and general settings. For more information, refer the Introduction to Coherence Cache documentation.
  5. Make sure all the prerequisites for Advanced configuration are available. For more information, see Prerequisites for Advanced Configuration.
  6. Deploy the Enterprise Cache Server profile.
  7. Confirm that the deployment completes successfully.
  8. Start Open Integration.

No XML merge is required because no earlier Enterprise Cache configuration exists.

Validating the Deployment

After you complete the applicable scenario:

  1. Confirm in SMC that the Enterprise Cache Server deployment is running.
  2. Confirm that DistributedCache and DistributedConcurrentCache start successfully.
  3. Confirm that ExtendTcpProxyService and OIExtendTcpProxyService start successfully.
  4. Review Enterprise Cache Server logs for cache-configuration, listener, cluster, and proxy-service errors.
  5. Confirm that Open Integration starts successfully.
  6. Confirm that Open Integration functions that require cache access work successfully.

Recovering from Coherence Request Timeout Errors

You can use this procedure when Open Integration reports a Coherence request timeout.

The following exception in the Open Integration logs indicates that Coherence did not respond to a request within the configured timeout period:
com.tangosol.net.RequestTimeoutException: Request timed out
A Coherence request timeout can cause inconsistent system behavior because Open Integration may be unable to read from or update the shared cache. To resolve this issue:
  1. Stop Open Integration.
  2. Restart Coherence by restarting the Enterprise Cache Server deployment.
  3. Restart the Object Managers used by Open Integration.
  4. Investigate the underlying Coherence network connectivity or latency issue.
  5. If Coherence network latency is causing the timeout, configure an appropriate value for Openint.cache.request-timeout.
  6. Start Open Integration.
  7. Verify that Open Integration connects to Coherence successfully and that no new RequestTimeoutException errors are reported.
Note: Restarting only Open Integration is not sufficient. You must restart Coherence and the Object Managers used by Open Integration before you start Open Integration again.

Configuring the Open Integration Cache Request Timeout

The default value of Openint.cache.request-timeout is 2 seconds. If network latency between Open Integration and Coherence causes timeouts, increase the parameter gradually until the timeout is resolved. You must use the lowest request-timeout value that supports the observed Coherence network latency.

Note: Increasing Openint.cache.request-timeout accommodates longer Coherence response times. It does not resolve the underlying network issue. Continue to investigate and resolve the source of the latency.
Increasing Openint.cache.request-timeout can have the following effects:
  • Requests wait longer for a Coherence response before timing out.
  • Requests served by Open Integration can take longer to complete.
  • More requests can remain active at the same time.
  • Load on the Siebel Server can increase.
  • The number of Open Integration sessions can increase beyond the expected level.

You must use the lowest request-timeout value that supports the observed Coherence network latency.

Advanced XML Reference

You can use the following XML as a reference for the required Open Integration Advanced configuration for Siebel CRM. This reference XML shows only the Open Integration additions. You must merge these entries into your existing cache-config file.

Note: If you already use an Advanced configuration, merge these Open Integration entries into your current XML. Retain all valid customer-specific configuration.
<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">

    <caching-scheme-mapping>
        <cache-mapping>
            <cache-name>OpenInt_*</cache-name>
            <scheme-name>oi-distributed-sessions</scheme-name>
        </cache-mapping>
        <cache-mapping>
            <cache-name>OpenIntRest_*</cache-name>
            <scheme-name>oi-distributed-rest-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-distributed-rest-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.OpenIntRestEvictionListener
                            </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>