Document Properties
Kbid
28370H
Last Modified
31-May-2022
Added to KB
24-Jul-2017
Public Access
Everyone
Status
Online
Doc Type
Guidelines, Concepts & Cookbooks
Product
  • IOM 3.0
  • IOM 3.1
  • IOM 3.2
  • IOM 3.3
  • IOM 3.4
  • IOM 3.5
  • IOM 3.6
  • IOM 3.7
  • IOM 4.0
  • IOM 4.1
  • IOM 4.2

Concept - IOM Synchronization of Java-based Caches

Table of Contents


Product Version

3.0

Product To Version


Status

1 Introduction

The present concept describes the synchronization of Java-based caches within the Intershop Order Management and is mainly addressed to application administration and developers.

1.1 Glossary

WordingDescription
API

Application Programming Interface

IOMThe abbreviation for Intershop Order Management
RESTRepresentational State Transfer

1.2 References

2 Java-based Caches

The IOM uses several caches to improve its performance. One type of it is a Java-based cache container (org.infinispan.manager.CacheContainer) located at java:jboss/infinispan/container/bakery-cachecontainer. This cache container currently hosts 3 caches (org.infinispan.Cache). Within the movement of the application to High Availability from version 2.2, the mechanism of synchronizing these caches was changed.

Cache NameDescriptionCurrent UsageObjects in Use
bakery-cacheDefault cache and used if no cache name is specified
  • User session handling
  • Import/ Export 
  • Processing of XML files
  • Business partner-related information
  • UserSessionDO
  • PartnerReferrerDO
  • JAXBContext of XMLBinderBean
  • CSVImportConfigurationDO,
    ImportConfigurationDO

bakery-cache-config

Cache to host configurations

Configurations of:

  • Taxes
  • Shop
  • Supplier
  • Shop-supplier-relations
  • Country specific expressions
  • Business processes
  • Application in general
  • Customer mail configurations


  • TaxDO
  • ShopDO
  • SupplierDO
  • Shop2SupplierDO
  • FieldContentRegexDO
  • ProcessesDO
  • PlatformConfigDO
  • PlatformConfigPropertyDO

bakery-cache-communication

Cache to host information regarding communication with business partners
  • Communication partner-related information
  • CommunicationPartnerDO,
    CommunicationDO,
    CommunicationGroupDO

Note

Supported caches

Currently, only the cache named bakery-cache-config is required and supported with cache synchronization.

3 Server Architecture

The following model shows an exemplary server architecture of the IOM. Only components that are relevant to the topic are shown.

In the center of the mechanism is the database where all application servers note an executed cache clear or initially a clean cache. Also a request to clear caches of all application servers will be noted here.

Each application server works autonomously and acts if explicitly requested or automatically required. To uniquely identify different application server the property SERVER_ID of installation.properties is used.
For more information please see Guide - Operate Intershop Order Management 3.X or later.

Requesting a cache clear can be done from each application server as well as directly using the database API.

4 Activities

Clearing the cache of the application requires several activities to run.
This includes an initial startup process, a regular automated job as well as several options to request a cache clear.

The following notes will show all processes in detail.

4.1 Application Server Startup

While starting up each application server a Java bean will:

  1. Note a clean cache within the database.
  2. Schedule a regular job.

4.2 Regular Job

The regular job runs on each application server once minute.

  1. It determines if a cache clear for the application server is required or not.
  2. If required it clears the cache and notes the cache clear within the database.

4.3 REST API

There are several ways to initiate a cache clear.
To request manually a cache clear use the REST API for caching. See Overview - Intershop Order Management REST API.

Permission required

For requesting a cache clear using the REST service the permission Basic application management is required assigned at root organization OmsSystem.
  1. In the first step authorization, parameters and permission will be checked.
  2. Next, the request will delete all noted statuses of the servers for the requested cache.
  3. The cache of the current server will be cleared and noted newly to be cleared within the database.
  4. Finally the requested cache clear updates the timestamp of application configuration (only for the cache named bakery-cache-config)

For all other application server the regular job will now process the cache clear asynchronously.

4.4 Database API

In cases, it is not possible to use the REST service a database function can be used.
The function oms.clear_cache_request (p_cachename text) acts as API and should be used exclusively.

  1. The function will delete all noted statuses of the application servers for the requested cache.
  2. The requested cache clear updates the timestamp of the application configuration (only for the cache named bakery-cache-config).

For all application servers the regular job will now process the cache clear asynchronously.

4.5 Others

4.5.1 Usage within Development

The CacheUtilService offers all required functions. Use this interface exclusively to clear (and use) a cache.

  • To request a cache clear use requestClearCache(cacheName).

4.5.2 Known Usage

  • CommunicationPartnerLogicService
  • IOM Business Configuration Framework

  • Test Framework of IOM

5 Further Information

5.1 Limitations

Note

Supported caches

Currently, only the cache named bakery-cache-config is required and supported with cache synchronization.

5.2 Expandability

The mechanism can be easily extended to be used with other implemented caches.

Therefore the following implementations have to be extended:

Note

Exclusive cache clear timestamp

Because PlatformConfigDO.lastConfigDate is for the configuration cache (bakery-cache-config) only do not change conditions within the implementation while extending with other caches.

Disclaimer

The information provided in the Knowledge Base may not be applicable to all systems and situations. Intershop Communications will not be liable to any party for any direct or indirect damages resulting from the use of the Customer Support section of the Intershop Corporate Web site, including, without limitation, any lost profits, business interruption, loss of programs or other data on your information handling system.

Customer Support
Knowledge Base
Product Resources
Tickets