Skip to main content link. Accesskey S
  • Log In
  • Help
  • IBM Logo
  • IBM Digital Experience wiki
  • All Wikis
  • All Forums
  • ANNOUNCEMENT: WIKI CHANGE TO READ-ONLY. LEARN MORE...
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • IBM Redbooks
  • API Documentation
Search
  • New Article
  • Share Show Menu▼
  • Subscribe Show Menu▼

About the Original Author

Click to view profileJohn James
Contribution Summary:
  • Articles authored: 10
  • Articles edited: 7
  • Comments Posted: 11

Recent articles by this author

Social Media Publisher V1.0 for Web Content Manager V7.0

The Social Media Publisher for Web Content Manager is an extension to Web Content Manager that allows businesses to promote their web content on social networks, as well as provide some basic statistics about the promoted content.

IBM Web Content Manager Home Page 7.0

The home page is an additional, simplified, UI for WCM. It is intended to be used by content authors who want to complete simple tasks through WCM, such as creating new content. For such users, the existing library explorer UI is unnecessarily complex and feature-rich.

Beta preview: Nested Navigation

This video is a quick demonstration of the new nested navigation design feature in the latest BETA of IBM Web Content Manager.

Beta preview: Site Area Templates

This video is a quick overview of the site area template feature available in the latest BETA of IBM Web Content Manager:

New Authoring UI Features in IBM Web Content Manager 7.0 (missing video)

(52714 - Video does not exist) This short video describes some new user interface features in the authoring portlet of IBM Web Content Manager 7.0
Community articleWeb Content Management Caching and pre-rendering
Added by John James | Edited by IBM contributorDeAnna Steiner on June 25, 2008 | Version 8
expanded Abstract
collapsed Abstract
No abstract provided.
Tags: 6.0, web content, WCM, cache, caching, pre-render, pre-rendering, performance
Workplace Web Content Management caching, servlet caching (dynamic cache service), and pre-rendering are tools you can use to improve the performance of Workplace Web Content Management Web sites. Although pre-rendering is the fastest option, it has limitations.

Determining which cache to use

The following figure shows the caching options available from HTTP Server, WebSphere Application Server, and WebSphere Portal.  



The shortest path shows that pre-rendering is the fastest option.  However, the choice of which cache to use is not as easy as picking the fastest option.

Use the following set of considerations to decide which cache to use:

Consideration  

Type of cache to use

If the site is not using personalization and is not planned to use personalization in the future

Pre-rendering or Servlet Caching

If the site is using a mixture of personalized and non-personalized content

Servlet caching if you want to cache only the non-personalized content.

 

Web Content Management caching solely, or a combination of it and servlet caching if you want to cache all content.

If the site is using personalization or plans to use personalization in the future

Web Content Management caching

If you decide to use Web Content Management cache, use the following additional set of considerations to determine the type of Web Content Management cache to use:

Consideration  

Type of Web Content Management cache to use

If the site is not using personalization and is not planned to use personalization in the future

Use "Basic" caching or the "Site" option of advanced caching, so that every user can access the same cached items.

If the site content is personalized and unique for different groups of users

Use the "Secured" option of advanced caching, so users who belong to the same groups can access the same cached items.

If the site content is personalized and content is unique for different personalization profiles Use the "Personalized" option of advanced caching, so users who share the same personalization profile can access the same cached items .
If the site content is unique for every user Use the "User" option of advanced caching, so that all users gets their own cached items.
If the site content is unique for every session Use the "Session" option of advanced caching, so that every session gets its own cached items.

Servlet caching (Dynamic Cache Service)

Servlet caching involves caching the request at the WebSphere Application Server layer. This type of caching is not as fast as pre-rendering, but it is faster than Web Content Management caching and, depending on your needs, can be more flexible.

 

Although servlet caching cannot cache personalized content, it can be used to selectively cache or not cache individual pages. Depending on the type of rendering that is used, servlet caching can be enabled to either cache the results of portlets or the Web Content Management servlet.

Servlet caching limitations

  • Servlet caching must be re-enabled after a fix pack or cumulative-iFix is applied.  Keep a backup of your cachespec.xml file, so you can easily re-enable servlet caching.

  • Restart the server after making changes to the cachespec.xml file.

  • When specifying "pathinfo" components in a cache-id, include the Web Content Management library name in any "non-value" and "value" attributes. Additionally remove any "+" characters from the URLs.

  • Error responses from the portlets and servlet are cached (such as file not found and exceptions), which is typically not expected and can cause problems in documents are removed from the live website temporarily.

  • Specifying a URL to a site or site area in either the "non-value" or "value" attributes does not also specify the site or site area's children. The only way to do selective caching is to either:

    • Use the "non-value" attribute to specify the URL of every page that should not be cached.

    • Use the "value" attribute to specify the URL of every page that should be cached.

  • For rendering portlets, the default context of the portlet cannot be cached.

  • For rendering portlets, if alternate page design is enabled after caching, then the design will not display until after the cache is cleared.

Additional Servlet Caching Limitations with Servlet Rendering

  • When using dynamic cache service with servlet rendering, be careful not to overwrite the existing cachespec.xml file.  Add your cache-id sections after the existing one.

  • Unlike for rendering portlets, when using servlet rendering caching, if the following arguments are not specified in the cache-id, then the following behavior is observed:

    Argument  

    What happens if it is not specified

    id

    Dynamic cache service does not distinguish between Draft and Published copies of the same object.

    pagedesign

    Dynamic cache service does not distinguish between the default and alternate pagedesigns of the same content.

    version

    Dynamic cache service does not distinguish between the current and previous versions of the same object.

    source

    Library and content components do not render under some conditions.

    cmpntname

    Library and content components do not render under some conditions.

    cmpntid

    Library and content components do not render under some conditions.

  • It’s recommended the specific ‘component’ entry below be added to disable Servlet-Caching for Web Content Management’s Utility Modules and Syndication, as caching these elements will break both the Utility Modules and Syndication:

<cache-id>  

   

   - Normal ‘component’ sections describing what to cache

   

   <component id="MOD" type="parameter">
       <required>false</required>
       <not-value>Subs</not-value>
       <not-value>Synd</not-value>
       <not-value>ItemDispatcher</not-value>
       <not-value>Syndication</not-value>
       <not-value>MemberFixer</not-value>
       <not-value>VersioningEnablement</not-value>
       <not-value>WorkflowEnablement</not-value>
      <not-value>PlutoUploadFile</not-value>
       <not-value>PlutoDownloadFile</not-value>
       <not-value>AJPECatSelect</not-value>

       <not-value>RefreshAllItems</not-value>
       <not-value>Template</not-value>
   </component>

</cache-id>

How to configure local rendering caching

  1. Ensure that the dynamic caching service is enabled for the WebSphere Application Server.  

  2. Define what is and is not cached in your cachespec.xml file.

  3. Use the following commands to backup, then update the Local-Rendering portlet:

    • From a command-prompt, navigate to [WPS_ROOT]\installableApps

    • Copy ilwwcm-localrendering-portlet.war to ilwwcm-localrendering-portlet.war.backup

    • Make a new directory called wcm_lrp_war and navigate to it.

    • Run the following command:

  • [WAS_ROOT]/java/bin/jar –xf ../ilwwcm-localrendering-portlet.war
    • Copy your cachespec.xml file to [WPS_ROOT]/installableApps/wcm_lrp_war/WEB-INF

    • Run the following command:

  • [WAS_ROOT]/java/bin/jar –cf ../ilwwcm-localrendering-portlet.war *
  1. Use the WebSphere Portal Administration page to re-deploy any modified portlets from the [WPS_ROOT]\installableApps directory.

  2. [Optional] Install the dynamic cache monitor on the WebSphere Application Server.

How to configure remote rendering caching

  1. Ensure that the dynamic caching service is enabled on the WebSphere Application Server.    

  2. Define what is and is not cached in your cachespec.xml file for the WebSphere Application Server.

  3. Use the following commands to backup, then update the Remote Rendering portlet:

    • From a command-prompt, navigate to [WPS_ROOT]\installableApps

    • Copy ilwwcm-remoterendering-portlet.war to ilwwcm-remoterendering-portlet.war.backup.

    • Make a new directory called wcm_rrp_war and navigate to it.

    • Run the following command:

  • [WAS_ROOT]/java/bin/jar –xf ../ilwwcm-remoterendering-portlet.war
    • Copy your cachespec.xml file to [WPS_ROOT]/installableApps/wcm_rrp_war/WEB-INF

    • Run the following command:

  • [WAS_ROOT]/java/bin/jar –cf ../ilwwcm-remoterendering-portlet.war *
  1. Use the WebSphere Portal Administration page to re-deploy the modified portlets from the [WPS_ROOT]\installableApps directory

  2. [Optional] Install the dynamic cache monitor for the WebSphere Application Server.

How to configure servlet rendering caching

  1. Ensure that the dynamic caching service is enabled for the WebSphere Application Server.

  2. Define what is and is not cached in your cachespec.xml file.

  3. Use the following commands to backup, then update the WCM ear file:

    • From a command-prompt, navigate to [WPS_ROOT]\wcm\installableApps

    • Rename wcm.ear to wcm.ear.backup .

    • Run the following command:
      [WAS_ROOT]/bin/earexpander.bat –ear wcm.ear –operationDir ./wcm_ear –operation expand

    • Merge your cachespec.xml file with the one already existing in ./wcm_ear/ilwwcm.war/WEB-INF .  Do not overwrite the existing cachespec file.

    • Run the following command:
      [WAS_ROOT]/bin/earexpander.bat –ear wcm.ear –operationDir ./wcm_ear –operation collapse

    • Run the following Portal Config command(s) to redeploy the updated wcm.ear file: [WPS_ROOT]/config/WPSconfig.bat update-wcm-ear

  4. [Optional] Install the dynamic cache monitor on the WebSphere Application Server.

Rendering Portlet Examples

  • Cache everything for 300 seconds:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>/jsp/html/view.jsp</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

         <component id="WCM_GLOBAL_CONTEXT" type="parameter">

           <required>true</required>

          </component>

         <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

  • Cache everything except for ‘/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent’ and ‘/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent2’:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>/jsp/html/view.jsp</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

         <component id="WCM_GLOBAL_CONTEXT" type="parameter">

           <required>true</required>

           <not-value>/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent</not-value>

           <not-value>/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent2</not-value>

         </component>

         <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

  • Cache only ‘/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent’ and ‘/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent2’:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>/jsp/html/view.jsp</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

         <component id="WCM_GLOBAL_CONTEXT" type="parameter">

           <required>true</required>

           <value>/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent</value>

           <value>/wps/wcm/connect/MyLibrary/MySite/MySiteArea/MyContent2</value>

         </component>

         <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

Servlet Rendering Examples

  • Cache everything for 300 seconds:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>com.presence.connect.ConnectServlet.class</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

        <component id="" type="pathinfo">

           <required>true</required>

        </component>

        <component id="source" type="parameter">

           <required>false</required>

        </component>

        <component id="cmpntname" type="parameter">

           <required>false</required>

        </component>

        <component id="cmpntid" type="parameter">

           <required>false</required>

        </component>

        <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

  • Cache everything except for ‘/MyLibrary/MySite/MySiteArea/MyContent’ and ‘/MyLibrary/MySite/MySiteArea/MyContent2’:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>com.presence.connect.ConnectServlet.class</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

        <component id="" type="pathinfo">

           <required>true</required>

           <not-value>/MyLibrary/MySite/MySiteArea/MyContent</not-value>

          <not-value>/MyLibrary/MySite/MySiteArea/MyContent2</not-value>

        </component>

      ...........

        <component id="cmpntid" type="parameter">

          <required>false</required>

        </component>

        <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

  • Cache everything for 300 seconds, differentiate between draft and published:

<?xml version="1.0" ?>

<!DOCTYPE cache SYSTEM "cachespec.dtd">

<cache>

  <cache-entry>

     <class>servlet</class>

     <name>com.presence.connect.ConnectServlet.class</name>

     <property name="store-cookies">false</property>

     <property name="consume-subfragments">true</property>

     <cache-id>

        <component id="" type="pathinfo">

           <required>true</required>

        </component>

      ...........

      <component id="cmpntid" type="parameter">

           <required>false</required>

        </component>

       <component id="id" type="parameter">

           <required>false</required>

        </component>

        <timeout>300</timeout>

     </cache-id>

  </cache-entry>

</cache>

 

expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (54)
collapsed Versions (54)
Version Comparison     
VersionDateChanged by              Summary of changes
54Jan 29, 2019, 10:28:14 PMHoward Mak  Adding custom caching links for 8.0.0 and 8.5
53Jan 29, 2019, 10:23:40 PMHoward Mak  
52Feb 28, 2012, 12:05:55 PMAlex Lang  IBM contributor
52Jan 29, 2019, 10:22:59 PMHoward Mak  
51Feb 28, 2012, 12:04:35 PMAlex Lang  IBM contributor
51Jan 29, 2019, 10:21:37 PMHoward Mak  
50Feb 28, 2012, 12:03:47 PMAlex Lang  IBM contributor
50Jan 29, 2019, 10:18:08 PMHoward Mak  
49Jan 16, 2012, 7:28:14 PMDavid De Vos  IBM contributor
49Jan 29, 2019, 10:16:18 PMHoward Mak  Adding links to 8.0 and 8.5 caching pages
48Jan 16, 2012, 7:05:18 PMDavid De Vos  IBM contributor
47Jan 16, 2012, 7:03:05 PMDavid De Vos  IBM contributor
46Jan 16, 2012, 6:53:09 PMDavid De Vos  IBM contributor
45Jan 16, 2012, 6:50:33 PMDavid De Vos  IBM contributor
44Jan 16, 2012, 1:13:58 AMDavid De Vos  IBM contributor
43Sep 1, 2011, 7:29:19 AMMatthew K Thomas  IBM contributor
42Sep 1, 2011, 7:28:10 AMMatthew K Thomas  IBM contributor
41Apr 27, 2011, 9:07:20 AMMatthew K Thomas  IBM contributor
39Apr 20, 2011, 2:21:36 PMMatthew K Thomas  IBM contributor
38Apr 20, 2011, 10:25:18 AMMatthew K Thomas  IBM contributor
37Mar 8, 2011, 9:55:20 PMDavid De Vos  IBM contributorCorrected reference to IBM Omnifind product
37Apr 20, 2011, 10:09:23 AMMatthew K Thomas  IBM contributor
35Dec 6, 2010, 9:25:42 PMDavid De Vos  IBM contributor
34Dec 6, 2010, 9:19:17 PMDavid De Vos  IBM contributor
33Nov 18, 2010, 8:25:47 PMDavid De Vos  IBM contributor
32Nov 18, 2010, 7:56:51 PMDavid De Vos  IBM contributor
32Jan 25, 2011, 1:30:18 AMJeffrey Tran  IBM contributorchanged secured caching now details that users require identical group...
31Nov 18, 2010, 7:41:19 PMDavid De Vos  IBM contributorFixed Servlet-Caching examples
30Sep 22, 2009, 12:54:13 AMJohn James  IBM contributor
29Sep 22, 2009, 12:38:23 AMJ A James  IBM contributor
27Aug 12, 2009, 1:08:33 PMDeAnna Steiner  IBM contributor
26Jul 26, 2009, 10:28:28 PMDavid De Vos  IBM contributor
25Jul 26, 2009, 10:28:28 PMDavid De Vos  IBM contributor
24Dec 3, 2008, 11:44:43 PMMelissa Howarth  IBM contributor
24Jul 26, 2009, 10:28:28 PMDavid De Vos  IBM contributor
23Nov 3, 2008, 8:43:17 PMMelissa Howarth  IBM contributor
22Jul 22, 2008, 11:57:49 PMDavid de Vos  IBM contributor
21Jul 22, 2008, 11:48:10 PMDavid de Vos  IBM contributor
20Jul 22, 2008, 11:40:16 PMDavid de Vos  IBM contributor
19Jul 22, 2008, 11:33:29 PMDavid de Vos  IBM contributor
18Jul 22, 2008, 2:13:44 AMDavid de Vos  IBM contributor
17Jul 22, 2008, 1:41:48 AMDavid de Vos  IBM contributor
16Jul 22, 2008, 1:13:09 AMDavid de Vos  IBM contributor
15Jul 22, 2008, 12:21:05 AMJohn A James  IBM contributor
13Jul 21, 2008, 10:36:05 PMJohn James  IBM contributor
12Jul 10, 2008, 7:39:18 PMJohn A James  IBM contributor
10Jul 10, 2008, 7:08:05 PMJohn James  IBM contributor
This version (8)Jun 25, 2008, 1:41:48 PMDeAnna Steiner  IBM contributor
7Jun 15, 2006, 7:17:05 PMJohn James  IBM contributor
6Jun 3, 2008, 7:45:20 PMJohn James  IBM contributor
5Jun 3, 2008, 7:39:11 PMJohn James  IBM contributor
4Jun 3, 2008, 12:35:35 AMJohn James  IBM contributor
3Jun 2, 2008, 6:02:31 PMJohn James  IBM contributor
2Jun 1, 2008, 11:43:35 PMJohn James  IBM contributor
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedHelpAbout
  • IBM Collaboration Solutions wikis
  • IBM developerWorks
  • IBM Software support
  • Twitter LinkIBMSocialBizUX on Twitter
  • FacebookIBMSocialBizUX on Facebook
  • ForumsLotus product forums
  • BlogsIBM Social Business UX blog
  • Community LinkThe Social Lounge
  • Wiki Help
  • Forgot user name/password
  • About the wiki
  • About IBM
  • Privacy
  • Accessibility
  • IBM Terms of use
  • Wiki terms of use