The present concept describes the synchronization of Java-based caches within the Intershop Order Management and is mainly addressed to application administration and developers.
Wording | Description |
---|---|
API | Application Programming Interface |
IOM | The abbreviation for Intershop Order Management |
REST | Representational State Transfer |
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 Name | Description | Current Usage | Objects in Use |
---|---|---|---|
bakery-cache | Default cache and used if no cache name is specified |
|
|
bakery-cache-config | Cache to host configurations | Configurations of:
|
|
bakery-cache-communication | Cache to host information regarding communication with business partners |
|
|
Note
Supported caches
Currently, only the cache named bakery-cache-config
is required and supported with cache synchronization.
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.Requesting a cache clear can be done from each application server as well as directly using the database API.
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.
While starting up each application server a Java bean will:
The regular job runs on each application server once minute.
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
bakery-cache-config
)For all other application server the regular job will now process the cache clear asynchronously.
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.
bakery-cache-config
).For all application servers the regular job will now process the cache clear asynchronously.
The CacheUtilService
offers all required functions. Use this interface exclusively to clear (and use) a cache.
requestClearCache(cacheName)
.IOM Business Configuration Framework
Note
Supported caches
Currently, only the cache named bakery-cache-config
is required and supported with cache synchronization.
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.