Cache property files
The cache property files contain the cache memory parameters of InfoSphere® MDM Collaboration Server
When modifying the settings of object cache, it is important that administrators thoroughly examine the JVM memory settings of potentially affected services to ensure that they are adequately set. The relevance of examining the JVM memory is important, because the size of the object cache is generally proportional to the required amount of memory. If you exceed the available memory with excessively large cache, performance will severely degrade. However, an inadequately sized cache will result in similarly poor performance from excessive CPU and disk utilization.
You can determine the size of the object cache you require by checking the cache hit percentage in the user interface, located on the panel under
. Select the appropriate object in the drop-down menu to view its cache information. The percentages displayed are calculated based on usage. You must provide the system reasonable time before referencing the cache hit percentage. The calculated percentages will resemble real results only after your system has been running under a normal production load for an extended duration.InfoSphere MDM Collaboration Server built-in cache
InfoSphere MDM Collaboration Server provides built-in cache for a list of object types. It is important to understand the scope of the cache, which has implications on the life span and memory consumption on the server. If a cache is maintained in Application Context, it is global to the server instance (each InfoSphere MDM Collaboration Server service); if a cache is contained within User Session, it is specific to one user in one session, and has different copies of cache objects for different user sessions.The global cache in Application Context keeps one copy, therefore, uses less memory, but has a life span of the entire service process until the service is shut down. On the other hand, the cache in User Session keeps one copy for each user session, therefore can use more memory for many user sessions. The life span of the cache in a user session has the life span of the session, for example, when a user logs out, the session is terminated and the user session caches are released.
The specific cache objects in either global cache or user session cache still observes the rules of object count limit and time-out limit, when either limit is triggered, some cached objects are being removed from cache container, and corresponding memory is reclaimed.
Object type | Scope | Configuration parameters |
---|---|---|
Access | User Session | max_accesses_in_cache |
Attribute Collection | App Context, but per container |
max_attrgroups_in_cache |
Catalog View | User Session | max_ctgviews_in_cache
|
Lookup Table | App Context, also session | max_lookups_in_cache |
Role | User Session | max_roles_in_cache |
Script | App Context |
max_scripts_in_cache |
Spec | App Context |
max_specs_in_cache |
Web Service | App Context | max_wsdls_in_cache |
Workflow | App Context (query cached) |
max_workflow_in_cache |
- maxElementsInCache
- The object count limit.
- eternal
- If true, elements never expire.
- overflowToDisk
- False because InfoSphere MDM Collaboration Server objects are not serializable
- timeToIdleSeconds
- An amount of time an object can be idle before expiration.
- timeToLiveSeconds
- An amount of time from creation to expiration time.
- memoryStoreEvictionPolicy
- LRU, FIFO, LFU
Object type | Scope | cacheName |
---|---|---|
Access | App Context | accessCache |
Attribute Collection | App Context, but per container | attrGroupCache |
Catalog | App Context | catalogCache |
Catalog View | App Context | ctgViewCache |
Lookup Table | App Context | lookupCache |
Role | App Context | roleCache |
Script | App Context | scriptCache |
Spec | App Context |
specCache__KEY_START_VERSION_TO_VALUE
specCache__KEY_TO_CURRENT_START_VERSION specCache__KEY_VERSION_TO_START_VERSION |
Web Service | App Context | wsdlCache |
Workflow | App Context (query cached) | workflowCache |
For determining the effectiveness of each cached object type, InfoSphere MDM Collaboration Server user interface displays the number of cached objects and the count cache hits and cache misses. The information can be analyzed to determine if cache settings is properly done for the implementation and user scenarios.
Solution level cache
InfoSphere MDM Collaboration Server built-in cache usually are definition types of objects. If some objects are frequently accessed in a specific scenario, but that object type does not have built-in cache capability, a solution level cache may help. A typical example is a category or hierarchy cache.function getCategoryFromCache(hmCategoryCache, hierarchy, sCategoryPK) {
if (!hmCategoryCache.containsKey(sCategoryPK)) {
hmCategoryCache[sCategoryPK] = hierarchy.getEntryByPrimaryKey(sCategoryPK);
}
return hmCategoryCache[sCategoryPK];
}
var hmCategoryCache = [];
var hierarchy = getCategoryTreeByName(“My Hierarchy Name”);
// ...
// Any time you want to retrieve a category (i.e. within a loop where you are
// processing an item import), use this instead...
var category = getCategoryFromCache(hmCategoryCache, hierarchy, sCategoryPK);
item.mapCtgItemToCategory(category); // (for example)