ISML Tag - ISCACHEKEY

Name

ISCACHEKEY

Short Description

deletes page cache according to keyword or object

Table of Contents

Product Version

6.5

Product To Version


Statusfinal

1 Introduction

Cache keys are used for selective page cache deletion. Using the <ISCACHEKEY> tag you can provide keywords or objects which you can use to invalidate page cache entries.
Via <ISCACHEKEY> tags you can assign keywords to a specific storefront template. This keyword can be used to invalidate those pages that are based on the template to which the keyword has been assigned. Use either a pipelet or the <ISCACHEKEY> tag for invalidating page caching selectively. Refer to the section Page Cache Deletion of the Application Programming Guide for more information on how to implement an AddPagecacheKeyword pipelet.

Note

Do not hold too many pages in cache (e.g., one million) and use too many keywords per page (e.g., 10 keywords). Otherwise, the performance of your system will decrease significantly.

2 Syntax

<iscachekey
(
keyword = "( {String} | {ISML expression} )"
object = "( {String} | {ISML expression} )"
)>

3 Example

The first example shows how to bind the PrimeTechSpecials_hotdeals keyword to the current page (= the URL that requested the page):

ISCACHEKEY keyword="PrimeTechSpecials_hotdeals"

For every incoming request, the Web Adapter generates a URL hash and sends it to the application server. The application server uses this hash to assign the keyword to the request URL. The keyword is simply added to the Intershop 7 URL.
If an Intershop 7 pipeline recognizes a keyword, all pages that are generated by calling the pipeline are removed from the cache.
When you invalidate the keyword, the page is removed from the cache (see section Page Cache Deletion of the Application Programming Guide for more information).
The second example shows how to assign a number of product-related keywords to the product_item_1 template:

<!-- TemplateName : product_item_1.isml -->
<iscache type="relative" hour="48">
<iscachekey keyword="product_item_1">
<iscachekey keyword="#Product:SKU#">
<iscachekey keyword="#Product:Name#">

In the example, the template contains a static keyword ( product_item_1) and two dynamic keywords ( Product:SKU, Product:Name). If you change the specified product details (e.g., SKU, name), all pages that are based on the product_item_1 template are removed from the cache, and hence can be updated regularly.

Note

Keywords of static content are automatically assigned to images via the path name.

The attribute object provides a way to create several keywords and assign them to a template.
An example of a Java class that can convert an object to keywords is com.intershop.sellside.appbase.b2c.internal.pagecache.ProductBOCacheClearKeyProvider. This Java class uses the object ProductBO and generates keywords.

<iscachekey object="#ProductBO#">

By doing this, the same keywords are generated when one used the following tags.

<iscachekey keyword="com.the.java.className">
<iscachekey keyword="com.the.java.productInterfaceName">
<iscachekey keyword="#ProductBO:SKU#">
<iscachekey keyword="#ProductBO:UUID#">

The consistency is increased, since all the keywords of an object are known and are identical for every web page which uses a template to which the <ISCACHEKEY> is assigned. Moreover, you do not have to write so many <ISCACHEKEY> statements.
Additionally, it is easy to find the necessary keywords for cache invalidation, as this is done by the same Java class.

4 Attributes

One of the following attributes is required.

Note

Use only one of the two allowed attributes in a single <ISCACHEKEY> tag. To create multiple conditions for selective page cache deleting, use multiple <ISCACHEKEY> tags.

4.1 keyword

keyword = "( { String} | { ISML expression} )"
String or ISML expression for defining a value. A value uses the Unicode standard. Its length must not exceed 2000 byte.

4.2 object

object = "( { String} | { ISML expression} )"
String or ISML expression for defining a value. A value uses the Unicode standard. Its length must not exceed 2000 byte.

Reference - ISML Tags

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