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.
<iscachekey ( keyword = "( {String} | {ISML expression} )" object = "( {String} | {ISML expression} )" )>
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.
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.
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.
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.