21.1 Page Caching

Page caching options are useful for speeding up page response times. This section describes portlet caching options and how to apply them. It includes the following sub-sections:

21.1.1 Changing How a Page Is Cached

To change how a page is cached:

  1. Go to the page where you will change caching options.

    For information on locating a page, see Section 8.1, "Locating Pages in Oracle Portal".

  2. Switch to Edit mode.

  3. Click the Properties link next to Page in the page toolbar.

    Be sure to click the link for the page rather than the page group.

  4. Go to the Page Caching section of the Main tab, and select a page caching option.

    See Section 21.1.2, "Page Caching Options" for a description of each caching option.

  5. Click OK to save your changes.

21.1.2 Page Caching Options

Table 21-1 lists and describes the page caching options (Edit Page: Main tab):

  • Cache Page Definition Only at User Level

  • Cache Page Definition And Content at User Level For [ ] Minutes

  • Cache Page Definition Only at System Level

  • Cache Page Definition And Content at System Level For [ ] Minutes

  • Don't Cache

Table 21-1 Page caching options

Option Description

Cache Page Definition Only at User Level

Caches the page definition for each user, in both Oracle Web Cache and the Portal Cache. The page definition includes:

  • Metadata describing the page structure

  • Identification of any portlets on the page

  • Items that exist on the page

  • Identification of styles used on the page

Choose this option for pages with dynamic portlet content and where the page definition is user specific. For example, user specific page definitions might contain:

  • Page personalizations

  • Items with item level security

  • Navigation items: Page Link, Page Path, Login/Logout Link

  • Portal Smart Link items: Edit, Personalize, Personal Page

  • Portal Smart Text: Current User

Note that:

  • Storing data for each user can impact storage and performance.

  • This option eliminates page regeneration on every request by a user. The page definition is generated the first time a user accesses a page. The portlet content is retrieved and the page is assembled on each request. This allows the page to display dynamic portlet content.

  • It is not necessary to choose this option when your page contains portlet content that is user specific. You can specify the caching level of portlets separately, at the portlet instance level. See Section 21.3, "Portlet Caching".

  • Even if the page content is user specific because it contains secure tabs and secure sub-page links, the page definition is not user specific because these are cached at the user level, separately from the page definition.

  • This option is available for Standard, Mobile, and JSP pages only.

Cache Page Definition And Content at User Level For [ ] Minutes

Caches the page definition (as described in the previous option), and the assembled page's content, including all portlet content, for a specified period of time, for each user. This is called user-level expiry-based caching.

Choose this option for pages with portlets that do not change within the specified time period and where the page content (either the page definition or portlet content) is user specific.

Note that:

  • This option reduces load on the Parallel Page Engine and Oracle Portal middle-tier servers and improves performance. It eliminates assembly of the page content and regeneration of the page definition and portlet content on every request by a user. However, expiry-based caching caches the portlet content in the assembled page and therefore some portlet content may be stale when the page is retrieved from the cache.

  • Fully-assembled pages are cached in Oracle Web Cache and the browser, but not in the Portal Cache.

  • When the page definition changes, the cached, fully-assembled page in Oracle Web Cache is invalidated.

  • If the page includes a Refresh Smart Link (either directly in the page or within a navigation page portlet in the page), the link will be displayed to logged-in users. When you click this link, the page is regenerated from the database.

  • This option is available for Standard and Mobile pages only.

Cache Page Definition Only at System Level

Caches the page definition once for all users. The page definition is the same for all users and includes:

  • Metadata describing the page structure

  • Identification of any portlets on the page

  • Items that exist on the page

  • Identification of styles used on the page

Choose this option for pages with dynamic portlet content, where the page definition is the same for all users.

This option greatly reduces storage requirements and improves performance. It eliminates regeneration of the page definition on every request, by any user. The page definition is generated the first time any user accesses the page. The portlet content is retrieved and the page is assembled on each request and this allows the page to display dynamic portlet content.

This option can be used when:

  • Portlet content is user specific - The cache level of portlets on the page can be specified separately at the portlet instance level. See Section 21.3, "Portlet Caching".

  • Page contains secure tabs and secure sub-page links - These are cached at the user level, separately from the page definition.

Do not choose this option when:

  • Pages are personalizable - Page personalizations are not possible given that the page is the same for all users. With this option, the Personalize link and all other personalization controls are disabled.

  • Items must display differently based on the user - Items display the same for all users.

  • Approvals and notifications are enabled - System level caching is not appropriate for approval-enabled pages, as these pages are not expected to display the same content to all users. See also Section 5.4.2, "Enabling Approvals and Notifications for a Page Group".

If page performance is critical, you might use this option if the page definition contains certain user specific items:

- Items with item level security,

- Navigation items (Page Link, Page Path, Login/Logout),

- Portal Smart Link items (Edit),

- Portal Smart Text (Current User).

If you do this, these items are displayed the same to all users, regardless of their access privileges. Whilst this is not ideal visually, users can still perform only the actions for which they have the appropriate access privileges. For example, if your page contains an Edit link, every user viewing the page sees the Edit link even if they do not have Edit privileges. All security checks are deferred until a user clicks on the link.

Note: This option is available for Standard, Mobile, and JSP pages only.

Cache Page Definition and Content at System Level for [ ] Minutes

Caches the page definition (as described in the previous option), and the assembled page's content, including all portlet content, for a specified period of time, for all users. This is called system-level expiry-based caching.

Choose this option for pages with portlets that do not change within the specified time period and where the page content (both the page definition and portlet content) is the same for all users.

Note that:

  • The page is not dynamically assembled when any user requests the page, so this is the best choice for minimizing the load on the Parallel Page Engine and Oracle Portal middle-tier servers. However, expiry-based caching caches the portlet content in the assembled page, so some content may be stale when the page is retrieved from the cache.

  • Fully-assembled pages are cached in Oracle Web Cache and the browser, but not in the Portal Cache.

  • When the page definition changes, the cached, fully-assembled page in Oracle Web Cache is invalidated.

  • If the page includes a Refresh Smart Link (either directly in the page or within a navigation page portlet in the page), the link will be displayed to logged-in users. When you click this link, the page is regenerated from the database.

  • This option is available for Standard and Mobile pages only.

Do not choose this option when:

  • Pages are personalizable - Page personalizations are not possible given that the page is the same for all users. With this option, the Personalize link and all other personalization controls are disabled.

  • Content must display differently based on the user - A single copy of the page is displayed to all users. Portlets display only public content. All of the page's tabs, sub-page links, and items are displayed to all users. Users can still perform only the actions for which they have the appropriate access privileges.

  • Approvals and notifications are enabled - System level caching is not appropriate for approval-enabled pages, as these pages are not expected to display the same content to all users. See also Section 5.4.2, "Enabling Approvals and Notifications for a Page Group".

Don't Cache

Disables page caching.

Note that the use of this option will adversely impact portal performance. Do not use this option except where absolutely necessary. Do not use this option on frequently accessed pages. Keep the number of pages that require this option to a minimum.

You may want to disable page caching in the following circumstances:

  • Your page contains PL/SQL items or URL items that are displayed in place (that is, they are displayed directly on the page) and that produce dynamic content that must always be up-to-date (a portlet that is not cached or that uses a short expiry would be a better choice for this kind of content).

  • You are concerned that a soft-invalidation event, such as a change to user group membership, may result in a cached version of a page being viewed by an active user who has recently lost privileges on the page.


21.1.3 Clearing the Cache for a Page

You can manually clear the cache entries associated with a page. For example, this might be useful if you revoke a user's privileges on a page and you want to make sure that your privilege level changes are applied immediately. If you do not clear the cache, the user will still be able to access the page if it is in the cache.

To clear the cache for a page:

  1. Go to the page whose cache must be cleared.

  2. Switch to Edit mode.

  3. Click the Properties link next to Page in the page toolbar.

    Be sure to click the link for the page rather than the page group.

  4. Go to the Page Caching section of the Main tab, and select Clear Cache.

  5. Click OK to return to the page.