When caching is disabled for an item, its property values are cached only during the current transaction, and only if the transaction requires one or more of that item’s properties. This ensures a consistent view of item data while the transaction is in progress. Thus, multiple calls to getPropertyValue() for the same property within the same transaction require only one database query. Cached item properties are reloaded from the datastore for each transaction.

Caching should generally be disabled for application data that is exposed to changes by non-Oracle ATG Web Commerce repository applications—for example, online banking data, where caching might need to be disabled in order to ensure display of up-to-date user account balances. In some circumstances, you might configure integration so the repository cache is invalidated when data is modified by an external application.

You can disable caching for items of a specified type, or for specific item properties:

Caution: If caching is disabled for an item type or individual item properties, any code that retrieves that item requires access to the database, which can noticeably degrade application performance.

Global disabling

You can globally set item and query cache sizes to 0 for the entire repository, which effectively disables caching; this is typically done for debugging purposes only. In order to set cache sizes to 0 on application startup, set two SQL Repository component properties to true: