Monday, July 27, 2009

Achieving optimal Authoring performance in v6 of Web Content Management

How can you achieve optimal performance for Authoring in Web Content Management version 6? If you do not tune the system, users can experience slow Authoring performance, which can slow down the content creation process. Performance degradation can manifest itself during save or delete operations, during UI navigation, and during other key Web Content Management functions.

Cause
As with any application, Web Content Management needs to be performance tuned for each specific customer environment and implementation.

Solution
Achieving optimal Authoring or content creation performance is a must for all Web Content Management customers. Below we have captured some key steps that all customers should implement to ensure from that the Web Content Management application is running optimally.

Recommended performance tuning parameters and guidelines:

1. Consult the Web Content Management 6.0 Best Practices guide
2. Consider Authoring Template design
3. Apply recommended fixes
4. Consult the Web Content Management Specific 6.0 Tuning Guide
5. Consult the WebSphere Portal v6.0 Tuning Guide
6. Tune the Web Content Management database within JCR
7. Disable automatic versioning


1. Consult the Web Content Management 6.0 Best Practices guide

The article "Best practices for using IBM Workplace Web Content Management V6" is available on the developerWorks Web site at the following address:

http://www.ibm.com/developerworks/websphere/library/techarticles/0701_devos/0701_devos.html

This guide also contains tuning recommendations. You should perform all tuning steps, taking note of the DB2 collation settings (if using DB2) and recommended caching and optimization steps.

NOTE: The Performance section includes Do's and Don'ts within Web Content Management as well as key parameters for general Web Content Management use and DB2 use. The best practices guide should be used in conjunction with this technote and the Information Center to gain or maintain optimal authoring performance.


2. Consider Authoring Template design

A well-designed Authoring Template is a prerequisite to achieving optimal Web Content Management authoring performance. Performance of various authoring actions varies significantly based on these early design decisions. Special consideration must be given to choosing the number of elements for your Authoring Template Content Prototype. Each element in Content prototype creates a separate node in the Web Content Management repository and creates additional overhead when performing authoring actions. For optimal performance of authoring actions, it is recommended to limit the number of elements to 10 - 15 elements. Having templates larger than this will affect performance of key authoring functions.

NOTE: If there is a requirement to have large number of elements in the content prototype, they should be normalized across multiple Authoring Templates.


3. Apply recommended fixes

You might need to apply key code changes packaged as fixes (also called ifixes for interim fixes) to your current version for both Web Content Management (WCM) and the Java Content Repository (JCR). To identify the recommended fixes for the v6.0.x versions of WCM and JCR, refer to the following documents:

6.0.0.1: Recommended fixes for Web Content Management 6.0.0.1 performance and syndication

6.0.1 and 6.0.0.3: Recommended Fixes for Web Content Management (WCM) versions 6.0.1 and 6.0.0.3

NOTE: The recommended fixes for v601, v6003, and v6001 are included in v6011 and v6004.


4. Consult the Web Content Management Specific 6.0 Tuning Guide

The "IBM WebSphere Portal Version 6.0 Web Content Management Tuning Guide Document version 1.0" is available at the following address:

http://www.ibm.com/support/docview.wss?rs=1041&uid=swg27008780


5. Consult the WebSphere Portal v6.0 Tuning Guide

The "IBM WebSphere Portal Version 6.0 Tuning Guide" is available at the following address:

http://www.ibm.com/support/docview.wss?rs=688&uid=swg27008511

NOTE: A section for Oracle specific tuning has been added.


6. Tune the Web Content Management database within JCR

The JCR Database absolutely must be tuned. To do so, follow the Portal tuning documentation in the WebSphere Portal Information Center, the v6 Best Practices Guide, the WebSphere Portal tuning guide as well as the Web Content Management specific tuning guide. The Web addresses for these resources are all listed above.

For DB2 server Only:

Make sure to Run Statistics on the Web Content Management database within DB2. In the Web Content Management tuning guide, we have provided a more robust reorg command than the basic reorg commands. An excerpt follows:

"We have determined a technique that has the same convenience of the reorgchk command and provides the detailed statistics preferred by the optimizer.

db2 -x -r "runstats.db2" "select rtrim(concat('runstats on table ',concat(rtrim(tabSchema),concat('.',concat(rtrim(tabname),' on all columns with distribution on all columns and sampled detailed indexes all allow write access'))))) from syscat.tables where type='T'"

db2 -v -f "runstats.db2"

The first command is used to create a file, runstats.db2, which contains all of the runstats commands for all of the tables. The second command uses the db2 command processor to run these commands. "



7. Disable automatic versioning

An additional tuning recommendation is to disable automatic versioning of objects on save (or publish) where possible. This step can have an impact on save and publish performance, and therefore should only be used on object types where it is required.

The following configuration options have been added to the \wcm\shared\app\config\wcmservices\WCMConfigService.properties file to control versioning:

versioningStrategy.AuthoringTemplate
versioningStrategy.Component
versioningStrategy.Content
versioningStrategy.PresentationTemplate
versioningStrategy.Site
versioningStrategy.Taxonomy
versioningStrategy.Workflow


Valid values are as follows:

* Never - To disable versioning for the specified object type

* Always - To enable versioning for the specified object type

* Manual - To enable manual versioning for the specified object type. Typically used for Content objects. Note that the "manual" option adds a Save & Version command option to authoring UI so that authors can create versions manually.


NOTE: If a setting (for example, versioningStrategy.Content) is not specified, then the option will default to 'Always'.