Concept - IOM Synchronization of Java-based Caches

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 specified
  • User session handling
  • Imort/ 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

Note

Since 2.9.4.13, since 2.17

  • PlatformConfigPropertyDOs

bakery-cache-communication

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

Note

Cache Synchronization = Cache Clear

In fact, before version 2.2, these caches were never synchronized by updating the content. They were synchronized by clearing the caches.

Please note that this approach is still in use from IOM version 2.2.

Note

Supported caches

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

Note

Cluster Properties for caching have no Effect

The configuration of the cluster properties is.oms.db.cache and is.oms.xmlbinder.cache have influence to this mechanism. Certainly there is no need to synchronize disabled caches. For more information please see Guide - Setup Intershop Order Management 2.2 section Cluster Properties.

3 Server Architecture

The following model shows an exemplary server architecture of the IOM. Only components that are relevant for 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 - Setup Intershop Order Management 2.2 section Installation Properties.

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

IOM distributed cache clearing - component architecture

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.

IOM distributed cache clearing - activity - regular job

4.3 REST API

There are several ways to initiate a cache clear.
To request manually a cache clear a REST service can be used. Please see Overview - IOM REST API for more information.

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 cache named bakery-cache-config)

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

IOM distributed cache clearing - activity - REST

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 cache named bakery-cache-config).

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

IOM distributed cache clearing - activity - database API

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
Support Tickets