Skip navigation.
Downloads | Product Documentation | Support

Performance Tuning Guide

#

# WebLogic Portal Cache Settings

This appendix lists the caches used to tune performance in WebLogic Portal 8.1. Find a cache you need to adjust, then use the WebLogic Administration Portal to adjust the cache settings.

- Portal Framework Caches
- WSRP Caches
- Content and Ad Caches
- User Management Caches
- Campaign and Discount Caches
- Commerce Caches

# Portal Framework Caches

Table 0-1 portalContentUriCache

Cache | portalContentUriCache
Use | This caches portal content URIs for a combination of webapp, portal, locale and optional user name.
Key | Key is equal to portal path + name of web application.
Value | Portal content URI
Notes | Set this cache according the number of portals that have associated content URIs. The default values are recommended. Default values: MaxEntries=500; TimeToLive=-1

Table 0-2 portalLocalizationLocaleCache

Cache | portalLocalizationLocaleCache
Use | Used to store collection of LocalizationLocale objects. Localization locale specifies language, character encoding, country and variant.
Key | The key is private static final String called "portalLocalizationLocaleCachekey"
Value | A set of LocalizationLocale objects.
Notes | Default TTL value should be okay. Max Entries could be set to a number based on the number of rows in the L10N_LOCALE table i.e. number of supported locales. Default values: MaxEntries=500; TimeToLive=-1

Table 0-3 portletControlTreeCache

Cache | portletControlTreeCache
Use | Used to store portlet control trees for floating portlets.
Key | The combination portletInstanceId and locale.
Value | A portlet control tree.
Notes | Default TTL value should be okay, Max Entries could be set to a number based on number of floatable portlet instances in a portal (including user customized portlets) and number of supported locales. It is recommended that the TTL be left at -1 because the cached default desktop needs to be kept in the cache indefinitely and the cached item for a logged in user is removed when they log out so there is no need to expire a user's cached items. To avoid having the LRU mechanism kick the cached default desktop out of the cache, the MaxEntries should be set to at least (max # of concurrent logged in users + 1) X (# of locales supported). If the cache is too small then LRU will kick out the cached default desktop and the memory saving advantage of this approach will be lost. Default values: MaxEntries=500; TimeToLive=-1

Table 0-4 portletPreferencesCache

Cache | portletPreferencesCache
Use | Used to store portlet preferences.
Key | An instance of PortletPreferenceId.
Value | A map of preferences.
Notes | Default TTL and Max Entries values could be set to a value depending on amount of available memory and total number of preferences (at the application level). Defaults: MaxEntries = 500, TimeToLive=60000 (one minute)

Table 0-5 portalLocalizationResourceCache

Cache | portalLocalizationResourceCache
Use | Used to store localization resources.
Key | The localizationIntersection.
Value | A LocalizationResource.
Notes | Default TTL and Max Entries values could be set to a value based on total number of localization resources in the system, which is a combination of non-customized and customized localization resources, and the amount of available memory. Default values: MaxEntries=500; TimeToLive=-1

Table 0-6 portalControlTreeCache

Cache | portalControlTreeCache
Use | Used to store portal control trees. Only used for streaming portals.
Key | The combination of webapp, portal, desktop, locale and optional user name.
Value | A portal control tree.
Notes | Default TTL value should be okay. This cache will contain one entry for the default portal, plus one entry for each user who has customized his or her portal. Max Entries could be set to a number based on number of users and available memory. If there are any changes to portal this cache will be flushed. Default values: MaxEntries=500; TimeToLive=-1

Table 0-7 portalMarkupDefinitionCache

Cache | portalMarkupDefinitionCache
Use | Used to store MarkupDefinition objects.
Key | A MarkupDefintionID.
Value | A MarkupDefinition.
Notes | Set this according to the number of rows in the PF_MARKUP_Definition Markup is the blueprint for a portal library resource (desktop, book, page, portlet, placeholder, menu, Look And Feel, layout, shell or theme). Default values: MaxEntries=500; TimeToLive=60000 (one minute).

# WSRP Caches

Table 0-8 remoteProducerInfoCache

Cache | remoteProducerInfoCache
Use | Caches the metadata for producers added to a consumer application.
Key | Name of the consumer web application.
Value | A java.util.HashMap containing producer metadata. This map is keyed with the producerHandle of each producer.
Notes | This cache is used to look for producer metadata when a user or administrator is trying to interact with a remote portlet or a producer. Default values: MaxEntries=500; TimeToLive=-1

Table 0-9 registrationHandleCache

Cache | registrationHandleCache
Use | Used to store registrationHandles of all registered consumers, for all producers.
Key | The registrationHandle of the consumer.
Value | A java.lang.boolean object with a value of true/false.
Notes | This cache is used to cache whether or not a particular registrationHandle is valid. Default values: MaxEntries=500;TimeToLive=-1.

# Content and Ad Caches

Table 0-10 binaryCache.<repository_name>

Cache | binaryCache.<repository_name>
Use | Used to store binary property values for a repository node.
Key | String (node ID + Property ID)
Value | A byte array associated with the binary property.
Notes | Set this according to the number and size of binary property values. Default values: MaxEntries: 10; TimeToLive:60000 (one minute)

Table 0-11 adServiceCache

Cache | adServiceCache
Use | Used to store the results of searches for content rendered in a placeholder (ads). Used by the AdHelper to increase the speed of ad queries.
Key | The ad query (java.lang.String)
Value | A Content []
Notes | Set this according to the number of ad queries and the amount of content expected to be retrieved. Consider basing the maximum size on the total number of ad queries. If the ads returned from a particular query do not change, consider increasing the TTL. Default values: MaxEntries=32; TimeToLive=300000 (five minutes)

Table 0-12 nodePathCache.<repository_name>

Cache | nodePathCache.<repository_name>
Use | Used to store a list of nodes for a repository based on a path.
Key | A String (NodeID).
Value | A Node.
Notes | Set according to the number of nodes in a repository. Default values: MaxEntries=50; TimeToLive=60000 (one minute)

Table 0-13 searchCache

Cache | searchCache
Use | Used to store an array of IDs for nodes that satisfy a content search.
Key | A Search, which contain parameters for a query.
Value | An ID array of nodes that satisfy a query.
Notes | There is only one search cache used for all repositories. Default values: MaxEntries=20; TimeToLive-=60000 (one minute)

Table 0-14 nodeCache.<repository_name>

Cache | nodeCache.<repository_name>
Use | Used to store repository nodes. Each repository has its own cache setting.
Key | A String representing the node ID.
Value | A node.
Notes | Set this according to the number of nodes in a repository. Default values: MaxEntries=50; TimeToLive=6000 (one minute)

# User Management Caches

Table 0-15 entityIdCache

Cache | entityIdCache
Use | Caches the id for an entity (user or group id)
Key | A com.bea.p13n.property.PropertyLocator. PropertyLocator is based on a user or group name (ENTITY.ENTITY_NAME) and entity type (ENTITY.ENTITY_TYPE).
Value | The entity id (java.lang.Long).
Notes | Use the ENTITY table as a guide for the maximum size. The object being stored is a Long, which is fairly small. Therefore, it might be possible to set this cache's maximum size to the number of entries in the ENTITY table. Consider how often the ENTITY table might change when setting the TTL. Default values: MaxEntries=500;TimeToLive=600000

Table 0-16 jndiNameCache

Cache | jndiNameCache
Use | Stores the JNDI names of entity property managers and UUP managers.
Key | An entity ID.
Value | The home name, which is a string value.
Notes | Set this according the combination of the number of entity property managers and the number of UUP managers. Default values: MaxEntries=500;TimeToLive=600000

Table 0-17 entityPropertyCache

Cache | entityPropertyCache
Use | Caches property values for users and groups.
Key | A com.bea.p13n.property.PropertyLocator. PropertyLocator is based on the user or group name (ENTITY.ENTITY_NAME), entity type (ENTITY.ENTITY_TYPE, user or group) and property set type (PROPERTY_KEY.PROPERTY_SET_TYPE, usually USER).
Value | A com.bea.p13n.property.EntityPropertyCache object. This object contains a Map that stores property values keyed off the property set name and property name.
Notes | The larger you can afford to make this cache, the better. Use the ENTITY table as a guide for maximum size. The number of entries in this table should be the maximum number of cache entries that would ever be created. In most cases, there will be more entries here than you would want for a maximum cache size. So consider the average number of users you expect to be using your application at the same time. Consider a TTL based on how often new properties will be added to the property sets. If they are not being modified often, then a higher TTL might be appropriate. Default values: MaxEntries=500;TimeToLive=600000

Table 0-18 profileTypeCache

Cache | profileTypeCache
Use | Caches user profile types that are used to look up the appropriate user manager profile manager when retrieving a user profile.
Key | A String (the user name).
Value | A String (the profile type).
Notes | This should be set based on the number of concurrent users. Set the TimeToLive never to expire Default values: MaxEntries=100;TimeToLive=3600000

Note: If profileTypeCache is not available, you will need to create it. You can do so by editing the respective application-config.xml file for the associated application. Within the application's application-config.xml file, rename 'unifiedProfileTypeCache' to 'profileTypeCache'. The application-config.xml file is located in the respective application's //META-INF directory. For example:

>     //<BEA_HOME>/USER_PROJECTS/<APPLICATION_NAME>/META-INF/application-config.xml

Table 0-19 propertyKeyIdCache

Cache | propertyKeyIdCache
Use | Caches the unique id associated with a property set type, property set and property name combination (primary key in the PROPERTY_KEY database table).
Key | Based on a property set type, property set, and property name combination (inner class called PropertyKeyLocator).
Value | The id (java.lang.Long)
Notes | Maximum size should be set with an eye towards the maximum number of properties in the application (use the PROPERTY_KEY table as an indicator). Consider a TTL based on how often these unique id combinations are likely to change. Default value: MaxEntries=500;TimeToLive=600000

# Campaign and Discount Caches

Table 0-20 globalDiscountCache

Cache | globalDiscountCache
Use | Stores computed global discount definitions. This is the set of global discounts that is applicable to all users.
Key | The globalDiscountSet name (java.lang.String)
Value | The java.util.Set of qualificationDiscountDef objects.
Notes | Set this to the number of global discounts in your application. The frequency of changes to the global discounts should determine TTL. Default values: MaxEntries=10; TimeToLive-=300000 (five minutes)

Table 0-21 discountCache

Cache | discountCache
Use | Used to store computed discount definitions (applicable to individual customers or to customer segments).
Key | A QualificationDiscountId. This is essentially a wrapping around a java.lang.Integer that represents the ID of a discount.
Value | The java.util.Set of qualificationDiscountDef objects
Notes | Set this to the number of discounts in your application. Frequency of changes to the global discounts should determine TTL. Default values: MaxEntries=100; TimeToLive-=300000 (five minutes)

# Commerce Caches

Table 0-22 categoryCache

Cache | categoryCache
Use | Stores the root com.beasys.commerce.ebusiness.catalog.Category, the total number of categories in the product catalog (java.lang.Integer) and the CategoryInfo for each category. CategoryManagerImpl gets the cache name from the ejb-jar.xml in commerce.jar
Key | The key for the root Category is a static final String variable in the CategoryManagerImpl class. The key for the total number of categories is also a static final String variable in the CategoryManagerImpl class. The key for a given CategoryInfo object is a com.beasys.commerce.ebusiness.catalog.CategoryKey.
Value | The value for the root Category is com.beasys.commerce.ebusiness.catalog.Category. The value for the total number of categories is a java.lang.Integer. The value for the category info objects is a com.beasys.commerce.ebusiness.catalog.service.category.CategoryInfo.
Notes | The root Category and the total number of categories occupy two slots in the cache and the remaining slots are occupied by the CategoryInfo objects, so consider the total number of categories in the product catalog plus 2 when setting the maximum cache size. Consider how often these categories will change when setting TTL. Default values: MaxEntries:1000;TimeToLive: 8640000

Table 0-23 productItemCache

Cache | productItemCache (ProductItemManagerImpl gets the cache name from the ejb-jar.xml in commerce.jar.)
Use | Stores the total number of product items in the catalog as well as the product items
Key | The key for the total number of product items is a static final String variable in ProductItemManagerImpl. The key for the product items is a com.beasys.commerce.ebusiness.catalog.ProductItemKey.
Value | The value for the total number of product items is a java.lang.Integer. The value for the product item is a com.beasys.commerce.ebusiness.catalog.ProductItem.
Notes | Consider the total number of product items when setting the maximum cache size. Consider how often these product items will change when setting the TTL. Default values:MaxEntries=1000;TimeToLive=21600000