SlideShare a Scribd company logo
1 of 23
Download to read offline
xCP 2.0 PERFORMANCE BEST PRACTICES
AND GUIDELINES

Abstract
This white paper summarizes best practices and
guidelines for designing and configuring an xCP 2.0
application to get better performance. Intended
audiences include xCP 2.0 designers and administrators.
January 2013
Copyright © 2013 EMC Corporation. All Rights Reserved.
EMC believes the information in this publication is
accurate as of its publication date. The information is
subject to change without notice.
The information in this publication is provided “as is.”
EMC Corporation makes no representations or
warranties of any kind with respect to the information in
this publication, and specifically disclaims implied
warranties of merchantability or fitness for a particular
purpose.
Use, copying, and distribution of any EMC software
described in this publication requires an applicable
software license.
For the most up-to-date listing of EMC product names,
see EMC Corporation Trademarks on EMC.com.

xCP 2.0 Performance Best Practices and Guidelines

2
Table of Contents
Executive Summary ............................................................................................. 5
Audience .............................................................................................................. 5
Abbreviation ........................................................................................................ 5
Background.......................................................................................................... 5
Architecture and Scalability ............................................................................... 6
Design Time .......................................................................................................... 6
General Recommendations ......................................................................................... 7
Limit Business Object Hierarchy Depth .................................................................... 7
Limit Number of Items in a Folder ............................................................................. 7
Limit Number of Grids on a Page ............................................................................. 7
Minimize Nesting of Column Boxes .......................................................................... 7
Minimize Use of Expression on Tab Group ............................................................... 8
Set Height to Tree or Tab Group ............................................................................... 8
Data Services .................................................................................................................. 8
Avoid triggering multiple queries ............................................................................. 8
Avoid Operators “Contains”, "Ends with" or "Does not contain" .......................... 8
Limit Number of Sortable Output Columns – Full-Text ........................................... 9
Avoid Operators "Does not contain", "!=" and "Ends with" – Full-Text .................. 9
Use Selective Criterion – Full-Text............................................................................ 10
Avoid Fuzzy Search – Full-Text ................................................................................. 10
Discovered Metadata ................................................................................................. 10
Limit Discovered Metadata Usage ........................................................................ 11
Avoid Adding Discovered Metadata of Type Entity Detection ........................ 11
Case and Process (BPM) ............................................................................................. 11
Use package instead of relationship to access BO in task-list query................ 11
Use business object package to encapsulate many process variables .......... 12
Viewer ............................................................................................................................ 12
Turn Off Thumbnails .................................................................................................. 12
Designer ......................................................................................................................... 12
Limit Number of Open Pages ................................................................................. 12

Deployment Time............................................................................................... 13
Use tomcat.util.scan.DefaultJarScanner.jarsToSkip to exclude jars from
annotation scanning ............................................................................................... 13
xPlore .............................................................................................................................. 13
Use Small Repository at Design Time...................................................................... 13
Bypass Index Rebuilding .......................................................................................... 13

xCP 2.0 Performance Best Practices and Guidelines

3
BAM ................................................................................................................................ 14
Use Different MQ Creation Strategies.................................................................... 14
Create Multiple Pipe Jobs ....................................................................................... 14
Move Runtime jars to bam-server.war .................................................................. 14
Content Transformation Services ............................................................................... 15
Minimize Storage Requirement .............................................................................. 15

Runtime ............................................................................................................... 15
Database Tuning .......................................................................................................... 15
General Guidelines .................................................................................................. 15
Sorting with Business Object.................................................................................... 16
Filtering with Business Object .................................................................................. 16
Recommended Tunings with Oracle..................................................................... 16
Recommended Tunings with SQL Server 2008 ..................................................... 16
Content Server .............................................................................................................. 17
Use DM_NO_EXTRA_JOINS....................................................................................... 17
Use Group Address to Reduce Mail Sending ....................................................... 17
Case and Process (BPM) ............................................................................................. 18
Oracle Tuning for Complex Task-List Query .......................................................... 18
Business Activity Monitor .............................................................................................. 18
Optimizing Historical Query Aggregation Frequency ......................................... 18
Content Transformation Services ............................................................................... 19
CTS JVM Tuning ......................................................................................................... 19
Change MaxParallelDecoding .............................................................................. 20
Tune Asynchronous CTS Thread Model ................................................................. 20
Tune Synchronous CTS Thread Model ................................................................... 20
Use ACS to Download Content from Content Server ......................................... 20
Viewer ............................................................................................................................ 21
Use Dedicated CTS Instances for Real-Time Requests ........................................ 21
Content Intelligence Services ..................................................................................... 21
Tune CIS ..................................................................................................................... 21
Do Not Allow a backlog of CIS Requests .............................................................. 22
Search ............................................................................................................................ 22
Use Debug Flag to Trouble-Shoot Performance Issue ......................................... 22

Conclusion ......................................................................................................... 23

xCP 2.0 Performance Best Practices and Guidelines

4
Executive Summary
This document summarizes performance best practices and guidelines
based on internal performance studies using xCP 2.0.
The document is divided into the three major phases in the lifecycle of an
xCP application: design, deployment, and runtime.

Audience
This white paper is intended for xCP 2.0 designers and administrators.

Abbreviation
The following list contains terms, abbreviations, and acronyms that appear
in the white paper.


ACS

Accelerated Content Services



BAM

Business Activity Monitor



BE

Business Event



BO

Business Object



BPM

Business Process Manager



CS

Content Server



CIS

Content Intelligence Services



CTS

Content Transformation Services



DM

Discovered Metadata



MQ

Message Queue

Background
xCP 2.0 is a platform used to develop end user applications. The design,
configuration, and tuning of the system impact the performance of the
end user application. This white paper provides best practices to follow
and guidelines to consider when you develop an xCP 2.0 application. The
content for this white paper is taken from a series of internal performance
and scalability studies using xCP 2.0 with Documentum 7.0.

xCP 2.0 Performance Best Practices and Guidelines

5
Architecture and Scalability
An xCP application can involve multiple products and components. To
ensure support for a large number of concurrent users, an xCP application
can be deployed with scalability provided for different layers.
The following diagram illustrates a typical deployment where the system
uses more than one instance for each Documentum product. You can
also deploy multiple database instances (for example, Oracle RAD) at the
database layer.

The diagram above illustrates how the BAM server can be deployed in a
clustered environment to provide high availability for end user report
viewing. The EMC Documentum xCelerated Composition Platform 2.0
Deployment Guide provides guidelines on deploying BAM in a clustered
environment.

Design Time
You should carefully plan the design of your xCP application because
there are limitations on the ability to adjust it later. You should make critical
decisions when you are designing the system that impact how the
application performs and scales during runtime.

xCP 2.0 Performance Best Practices and Guidelines

6
General Recommendations
Limit Business Object Hierarchy Depth
A business object type can be a subtype of dm_sysobject or another
business object type. Each additional level results in additional joins when a
database query includes the business objects. Consequently, the query
takes more time to execute and negatively impacts application
performance.
Limit the BO hierarchy to three levels, which includes the dm_sysobject
level.
Limit Number of Items in a Folder
System performance is negatively impacted when an end user navigates
to a folder that contains a large number of items. This occurs even when
the application includes pagination.
For better performance limit the number of items/objects in a folder to
2000.
Placing a limit on the number of items in a folder may seem like a runtime
issue only. However, a decision made during the design of the application
could make it impossible to limit the number of items in a folder during
runtime.
For example, you might create a folder and for each new customer, a subfolder is created in the folder to store customer documents and artifacts.
When your business expands, you might end up with a large number of
customers and navigating to that folder might not have a satisfactory
performance.
Limit Number of Grids on a Page
A data grid is an important widget often used in an xCP application.
However, the display of data grids can take time, particularly when the
end user uses Internet Explorer. For better performance, it is recommended
that you limit the number of grids on a page.
An alternative is to use tabs so that each page can be loaded and
displayed quickly.
Minimize Nesting of Column Boxes
The nesting of column boxes results in a DOM (Document Object Model)
nesting and more JavaScript executions.

xCP 2.0 Performance Best Practices and Guidelines

7
Minimize Use of Expression on Tab Group
When you bind a tab to an expression, all of the tab contents in the
containing tab group are rendered when the page loads. Without
expression, only the contents of the first tab in the tab group are rendered
when the page loads.
Set Height to Tree or Tab Group
Specifying the height of a tree or a tab group can significantly improve the
layout performance.

Data Services
Avoid triggering multiple queries
When you select On page load or When an input value changes the
system could trigger queries unnecessarily, resulting in a greater load on
the server.
For example, when you select When an input value changes, and an end
user types in a word of four letters for search, the system can trigger the
same query four times.
This guideline applies to real-time, historical, full-text, and task-list queries.

Avoid Operators “Contains”, "Ends with" or "Does not contain"
Do not use the operators Contains, Ends with, or Does not contain when
defining a user input for a real-time, historical, or task-list query.
These operators make the database query non-sargable and results in
poor system performance.

xCP 2.0 Performance Best Practices and Guidelines

8
Limit Number of Sortable Output Columns – Full-Text
Do not enable sorting for all columns of a full-text search. Enable sorting
only for the columns that provide the most value to the end user. The
system creates an index in xPlore for each attribute enabled for sorting. This
increases the size of the index which can negatively impact system
performance.

Avoid Operators "Does not contain", "!=" and "Ends with" – Full-Text
Do not use the Does not contain, !=, or Ends with negative operators when
configuring a user input for a full-text search. Queries that contain these
operators can impact system performance.

xCP 2.0 Performance Best Practices and Guidelines

9
Use Selective Criterion – Full-Text
Add user inputs to a full-text query to make it more selective. The system
processes selective queries more efficiently than unselective queries. When
you configure an unselective query, especially those issued by an end user
without sufficient privileges, system performance can be impacted.
xPlore performs a security check when an end user issues a query. It takes
more system resources to complete a security check for users that do not
have sufficient privileges.
Avoid Fuzzy Search – Full-Text
Fuzzy search is a term to describe including variation, misspelling, and
typos in your full-time search. You should use this type of search sparingly
because it uses more processing power to generate the matches.
By default this option is not enabled.

Discovered Metadata
The CIS server computes metadata values by analyzing the content of an
object. This computation is performed asynchronously. The volume and
format of the content can impact the amount of CPU resources needed
to perform the computation.
The following table provides example performance metrics for the entity
detection and the categorization and pattern detection processing types:
Type of
Processing

Entity detection

Categorization
&
Pattern detection

Discovered Metadata
Fax number
Organization
People
Phone number
Place
postal address
Business terms (USA)
Science and Engineering
Email address
SSN (USA)
URL

Throughput

Example with
Documents of 4KB

10 MB/hour

2,500
documents/hour

1 GB/hour

250,000
documents/hour

xCP 2.0 Performance Best Practices and Guidelines

10
This example shows that entity detection is less efficient than
categorization and pattern detection.
Limit Discovered Metadata Usage
Do not add discovered metadata to a content model unless it is used by
the end user. This guideline is particularly important for entity detection
discovered metadata.
Avoid Adding Discovered Metadata of Type Entity Detection
The cost of adding a DM is a function of the DM type.
Adding the first Categorization DM has a low impact on system
performance. The impact of adding a second Categorization DM is lower
than the first DM and is almost unnoticeable.
Adding the first Pattern detection DM has a low impact on system
performance. The impact of adding a second Pattern detection DM has
the same impact as adding the first Pattern detection DM.
Adding the first Entity detection DM has a high impact on system
performance. The impact of adding a second Entity detection DM does
not have any impact on the current Entity detector. It does not cost more
to have many entity detection DM computed for a Content Model when
compared to a single entity detection DM.
The following table summarizes the differences:
Type of Processing

Cost of First Discovered
Metadata

Cost of Additional Discovered
Metadata

Entity detection

High

Unnoticeable

Categorization

Low

Much lower

Pattern detection

Low

Low

Case and Process (BPM)
Use package instead of relationship to access BO in task-list query
You introduce additional table joins when you configure a task-list query
that includes attributes of a non-package business object which is
accessed through a relationship with another type of business object.
You can improve system performance by adding the related business
object to a package so that the task-list query can access its attributes
directly.

xCP 2.0 Performance Best Practices and Guidelines

11
Use business object package to encapsulate many process variables
The performance of a task page slows when a process contains multiple
packages and process variables. Using a single business object to replace
multiple process variables can improve task page performance, especially
when there are a large number of process variables.
The cost in system resources to save or update a package is comparable
to the cost for a process variable. A single business object can contain
multiple attributes.

Viewer
Turn Off Thumbnails
If an end user views documents that contain mostly text (for example,
Word or PDF documents), clear the Display thumbnail navigator checkbox.
Displaying a thumbnail for a text page does not add value to the end user
and because the system downloads thumbnails, system performance can
be negatively impacted. The impact can be significant under WAN
conditions.
However, it is important to note that clearing this option also turns off the
page modification feature.

Designer
Limit Number of Open Pages
Limit the number of pages open in xCP Designer. Depending on native
memory and java heap settings you could experience performance issues
with xCP Designer when you keep a large number of pages open.


Native memory: Each page consumes native memory and when
you open many pages the system may run short of memory.



Java heap: Each page consumes memory in the Java heap and
with many open pages the JVM can spend much time doing
garbage collection. xCP Designer is a 32-bit application that limits
the maximum heap size.

xCP 2.0 Performance Best Practices and Guidelines

12
In addition, the number of pages that can be opened without impacting
performance is a function of the complexity of the pages.

Deployment Time
Use tomcat.util.scan.DefaultJarScanner.jarsToSkip to exclude jars from
annotation scanning
Tomcat 7 includes support for Servlet 3.0 annotations which require more
heap memory and results in a longer start up time for the server because
of higher heap usage and additional processing.
xCP 2.0 does not require support for annotations. You can configure
Tomcat to exclude annotation JARs from being scanned during start up.
The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide
provides instructions on how to exclude JARs from being scanned.

xPlore
Deploying or redeploying an xCP application could cause the xPlore index
to be rebuilt. Rebuilding the xPlore index is a synchronous operation that
negatively impacts the overall deployment performance if the index is
large.
Based on EMC internal tests, the throughput is 10-30 documents per
second with small to medium document size.
Use Small Repository at Design Time
This is the preferred way before the deployment to the production
environment. For example, a repository with 1000 documents can be used
during the design time since the purpose at the design time is to ensure the
correctness of the application.
Bypass Index Rebuilding
You can use xMS Server to deploy an xCP application to bypass xPlore
index rebuilding. However you cannot bypass index rebuilding when you
use xCP Designer to deploy an application.
1. Use xCP Designer to package the WAR and config.xml files.
2. Use xMS Server to deploy an application and specify -xploreindexing
false during deployment
For example:

xCP 2.0 Performance Best Practices and Guidelines

13
xms>deploy-xcp-application --war-file
C:packageCasual_and_Property_Insurance.war -configuration-file
C:packageCasual_and_Property_Insurance_capins_1.0.0_config
.xml --environment C24-DIY --xploreindexing false
Once deployed, use the xPlore admin console to rebuild the index. If the
index is not rebuilt, the system does not make changes in the Full-Text
search model available to end users at runtime. For example, if you add a
facet to an application and xPlore does not rebuild the index, the end user
does not see the facet.

BAM
Use Different MQ Creation Strategies
Content Server message queues hold business event data generated by the
runtime application. The message queue strategy determines the number of
message queues the system creates. The strategy correlates with system
performance. Generally, the more message queues the system creates the better
the BAM server performs.
The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide
provides instructions.
Create Multiple Pipe Jobs
The BAM server runs one pipe job for each message queue, taking data from the
queue and inserting it into the BAM database. If you have a backlog of data you
can add pipe jobs to a message queue as a way to improve system performance.
The EMC Documentum xCelerated Composition Platform 2.0 Deployment
Guide provides instructions.
Move Runtime jars to bam-server.war
When you deploy xCP, the runtime JAR files are placed in
CATALINA_BASE/lib. You can improve system performance by moving the
runtime JAR files to CATALINA_BASE/webapps/bam-server/WEB-INF/lib.
BAM throughput can be improved by 50-100%.
The EMC Documentum xCelerated Composition Platform 2.0 Deployment
Guide provides more information.

xCP 2.0 Performance Best Practices and Guidelines

14
Content Transformation Services
Minimize Storage Requirement
The cost to store renditions and storyboards can be up to five times greater
than the cost for the content. Storyboards are required when using xCP
Viewer. Storyboards are not required for Daeja Viewer.
You can specify when storyboards are not generated, for example, for
Microsoft Excel documents. Set richmedia_enabled to 0 for the
excel12book format:
update dm_format objects set richmedia_enabled=0 where
name='excel12book'

Runtime
Database Tuning
General Guidelines
In general, database tuning is expected in order to get satisfactory
performance.


Index creation
o This is application and data model specific and not all the
required indexes are created out of the box.
o For example, 24 indexes were created for the reference
application used during the internal performance study.



Statistics gathering
o Gathering statistics involves a number of options and
configuration parameters. It is the responsibility of the DBA to
determine the best options based on the application and how
it is used.
o For Oracle:
http://docs.oracle.com/cd/E11882_01/server.112/e16638/stats
.htm#PFGRF003
o For SQL Server 2008: http://msdn.microsoft.com/enus/library/dd535534(v=sql.100).aspx



(Oracle) SQL Baseline or SQL Profile
o Using hints might be needed to influence CBO (Cost Based
Optimizer).

xCP 2.0 Performance Best Practices and Guidelines

15
o It is found that SQL Baseline/Profile is efficient if the
performance of a query can be improved by passing a hint
(without query structure change).
Sorting with Business Object
The system does not automatically create indexes for each business object
type. If an end user experiences inadequate system performance while
sorting the results of a real-time or task-list query, manually create an index
to help resolve the issue. For example:


Business object: Person with attribute “last_name”



Enable sorting for “last-name” with a query



Create an index on (last_name, r_object_id)

For full-text queries the system automatically creates an index in xPlore.
Filtering with Business Object
When an attribute is added to a user input, creating a corresponding
index can improve system performance. . This is similar to the case above
where manually creating an index for sorting can help system
performance.
Recommended Tunings with Oracle


Set cursor_sharing=FORCE



Consider turning off auditing or writing database audit records to OS
with large file sizes.



The following is not a general recommendation but it can be tried if
the execution plan for some queries is not optimal.
optimizer_index_caching=95
optimizer_index_cost_adj=5

Recommended Tunings with SQL Server 2008


Parameterization = forced



Consider setting "Maximum degree of parallelism" if the host has
more than 4 CPUs



Enable Snapshot Isolation
ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON
ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON



Set "maximum server memory" if the SQL Server is deployed on a
shared host

xCP 2.0 Performance Best Practices and Guidelines

16
o SQL Server would use as much memory as possible and it may
result in poor performance with other components/products
deployed on the same machine.


Auto Create Statistics = false



Auto Update Statistics = true

Content Server
Use DM_NO_EXTRA_JOINS
When views are created, extra/redundant join predicates are added by
default.


It was to help DB optimizer to choose the best execution plan based
on Documentum's past performance investigation.

However, it is found that with Oracle 11g, the redundant join predicates
present challenges to Oracle optimizer and can result in much worse
performance because the Oracle optimizer might choose a sub-optimal
execution plan.


A support case (Bug 14033569) has been opened with Oracle.

It is recommended to use DM_NO_EXTRA_JOINS to eliminate redundant
join predicates.
Refer to Content Server 7.0 Administration and Configuration Guide for
detail.
Use Group Address to Reduce Mail Sending
By default, the system sends an event notification email to each member
of a workqueue group. This setting places a load on the method server
and can impact system performance. Set the use_group_address
parameter to 1 so that the system sends an event notification email to the
address of the group instead of each member of the group.
If you are not using email, turn off mail sending:
1. Open server.ini.
2. Locate the [SERVER_STARTUP] section.
3. Set mail_notification = false.
These two guidelines are helpful when troubleshooting
DM_SERVER_E_NO_MTHD_BUF issues.
The EMC Documentum Content Server 7.0 Administration and
Configuration Guide provides more information on email settings.

xCP 2.0 Performance Best Practices and Guidelines

17
Case and Process (BPM)
Oracle Tuning for Complex Task-List Query
System response time can be slow when processing a complex task-list
query. For example, response time slows when a task-list query includes the
attributes of a non-package BO accessed through a relationship.
Use the following parameters to improve query performance:


optimizer_index_caching=95



optimizer_index_cost_adj=5

These parameters are global and the impact on the performance of other
types of queries is not clear.
Test and validate this setting in a test environment before using it in a
production environment.

Business Activity Monitor
Optimizing Historical Query Aggregation Frequency
The system aggregates data for all historical queries every 5 minutes. If too
many aggregation jobs run simultaneously, system performance suffers
and charts do not load quickly. The following figure shows spikes in system
CPU usage occurring in 5-minute intervals as the number of historical
queries increases:

To avoid future performance issues, you can adjust two aspects of
historical query aggregation jobs: LAST_RUN and STEP_SIZE.
LAST_RUN is the time an aggregation job starts. By default, the system starts
all aggregation jobs at the same time, for example, 10:20 a.m., 10:25 a.m.,

xCP 2.0 Performance Best Practices and Guidelines

18
10:30 a.m., and so on. To enhance system performance, stagger
aggregation jobs so they begin at different times, which can decrease the
load on the CPU. The system accepts LAST_RUN values expressed in whole
minutes. For example, use a LAST_RUN value of 1, 2, 3, and so on. If CPU
usage is still too high, adjust STEP_SIZE.
STEP_SIZE controls how often an aggregation job runs. The default STEP_SIZE
is 5 minutes, which means the system starts aggregation jobs every 5
minutes. You can increase or decrease STEP_SIZE. Decreasing STEP_SIZE
can enhance system performance because the system aggregates fewer
rows of data. The system accepts STEP_SIZE values as whole minutes
expressed in seconds. For example, the system accepts 60, 120, and 180,
but does not accept 90, 150, or 210.
Adjust LAST_RUN and STEP_SIZE by running scripts against the BAM
database.
In the following example, the script adjusts LAST_RUN so the aggregation
jobs for three historical queries start 1 minute later than the rest of the
aggregation jobs.
UPDATE BAM_S_JOBS SET LAST_RUN=DATEADD(mi,1,LAST_RUN) WHERE NAME in
(’QueryLabel_1’,’QueryLabel_2’,’QueryLabel_3’)
In the following example, the script adjusts LAST_RUN so the aggregation
jobs for two historical queries run 2 minutes before the rest of the
aggregation jobs.
UPDATE BAM_S_JOBS SET LAST_RUN=DATEADD(mi,-2,LAST_RUN) WHERE NAME
in ’QueryLabel_4’,’QueryLabel_5’)
In the following example, the script changes step_size to 60 seconds for all
historical queries with Customer in the name.
UPDATE BAM_S_JOBS SET STEP_SIZE=60 WHERE NAME like
’Customer%’
This information also appears in the xCP Designer online help
documentation.

Content Transformation Services
CTS JVM Tuning
Depending on the configuration of the system and the required throughput, JVM
memory options should be changed accordingly.
The Windows registry is used for CTS JVM configuration and the location is
at HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->services>DocumentumCTS->Parameters->AppParameters.

xCP 2.0 Performance Best Practices and Guidelines

19
It is also recommended to disable explicit GC by using the JVM Option XX:+DisableExplicitGC.
Change MaxParallelDecoding
On a powerful machine (e.g. with 8 cores or plus), setting
MaxParallelDecoding to a large value can significantly improve the CTS
throughput.


pdfstoryboard.xml
<MaxParallelDecoding>8</MaxParallelDecoding>



doc2.xml
<MaxParallelDecoding>8</MaxParallelDecoding>

Tune Asynchronous CTS Thread Model
To tune the asynchronous thread model update the CTSServerService.xml
file. For example:
<MaxTaskThreadJobTime>30</MaxTaskThreadJobTime>
<MonitorThreadSleepTime>20</MonitorThreadSleepTime>
<CTSServer AttributeName="queueInterval" AttributeValue="5"/>
<CTSServer AttributeName="maxThreads" AttributeValue="30"/>
<CTSServer AttributeName="maxQueueItemsToSignOff" AttributeValue="8"/>
<CTSServer AttributeName="thresholdForQueueItemsToSignOff"
AttributeValue="8"/>

Tune Synchronous CTS Thread Model
To tune the synchronous thread model update the WebServerService.xml
file. For example:
<ServerProperty Key="maxWorkingThreads" Description="Number of working
threads" Type="Integer" Value="30"/>
<ServerProperty Key="thresholdForSignOff" Description="Threshold for
maxium number of requests signed off" Type="Integer" Value="30"/>
<ServerProperty Key="TPMMonitorMaxTaskJobTime" Description="Maxium
allowed task running time (minutes)" Type="Integer" Value="30"/>
<ServerProperty Key="TPMMonitorSleepTime" Description="Sleep time for
tasks monitor (minutes)" Type="Integer" Value="20"/>

Use ACS to Download Content from Content Server
Enable content transfer using ACS to improve the content transfer time.
1. Use DA to create a network location ID. For example, ctsn1.
2. Update the CTSServerService.xml file with the network Location ID.
<BocsConfig allowBocsTransfer="true" allowSurrogateTransfer="true"
networkLocationId="ctsnl" preferAcsTransfer="true"
processOnlyParked="false"/>
<CTSServer AttributeName="networkLocationId"
AttributeValue="ctsnl"/>

xCP 2.0 Performance Best Practices and Guidelines

20
<CTSServer AttributeName="preferAcsTransfer"
AttributeValue="true"/>

3. Restart CTS.

Viewer
Use Dedicated CTS Instances for Real-Time Requests
Configure one or more CTS instances to process real-time requests.
1. Access each machine that sends real-time requests.
2. Edit the preferences.xml file. For example:
<ServerProperty Key="AvailabilityWait" Description="Number
of seconds to wait for rechecking availability"
Value="4"/>
<ServerProperty Key="CTS_SkipList" Description=" list of
cts instances (semicolon separated) to skip (scalability)"
Value=“A-CTS1;A-CTS2"/>
3. Edit the CTSServerService.xml file for each real-time instance to ensure
that a dedicated real-time CTS instance is not processing asynchronous
requests. For example:
<QueueProcessorContext DocbaseName="xcprepo">
<CTSServer AttributeName="queueItemName"
AttributeValue="dm_mediaserver_temp"/>
<QueueProcessorContext DocbaseName="xcprepo">
<CTSServer AttributeName="queueItemName"
AttributeValue="dm_autorender_win31_temp"/>

Content Intelligence Services
Tune CIS
There are two major tuning options with CIS:



cis.server.execution.threads
cis.entity.luxid.annotation_server.cpu

The default value of cis.entity.luxid.annotation_server.cpu is 1
and it is usually too small in a production environment.
It is recommended to start with
cis.entity.luxid.annotation_server.cpu set to the total number of
CPUs of all Luxid nodes.
cis.server.execution.threads should be set to a value sufficiently
large so that each Luxid node does not stay idle while there are
documents to process.

xCP 2.0 Performance Best Practices and Guidelines

21


Usually, the processing speed of the CIS server
(Categorization/Pattern Detection) is much faster than the Luxid
server (Entity Detection).



Tune by starting with cis.server.execution.threads = 1

Do Not Allow a backlog of CIS Requests
If a newly created document/object is processed by CIS after it is
processed by xPlore, xPlore trigger a new processing. It is important to
ensure that CIS can process newly created documents/objects with a
short delay.

Search
Use Debug Flag to Trouble-Shoot Performance Issue
The debug mode for query data services can be activated at runtime by
adding the debug parameter in the URL calling the services. The debug
information is useful to troubleshoot issues such as performance issues. It
allows you to check results, execution events, and the query sent to the
source.
The following example shows how to add the debug parameter to the
URL:
http://<host>:<port>/<application_name>/application/documents?type=ft_do
c&q=active&page=1&start=0&limit=10&debug

The following table shows the output from the debug operation. Search for
the statistics section which includes four entries all prefixed with JAMon
Label:
Step

Real-Time

Full-Text

1
2
3
4

RealtimeAttributeMapperFactory.createMapper
RealtimeQueryAdapter.adapt
RealtimeQueryExecutor.execute
RealtimeResultAdapter.adapt

DfcAttributeMapperFactory.createMapper
DfcSearchQueryAdapter.adapt
DfcSearchExecutor.execute
DfcSearchResultAdapter.adapt

Each entry represents a step in the service call execution.


Steps 1 and 2: The application server prepares and builds the query



Step 3: The Content Server database or xPlore execute the query



Step 4: The application server processes the results

The system calculates the following metrics for each step:
"executor":"JAMon Label=DfcSearchExecutor.execute, Units=ms.:
(LastValue=969.0, Hits=59.0, Avg=777.8135593220339, Total=45891.0,
Min=217.0, Max=8952.0, Active=0.0, Avg Active=1.0, Max Active=1.0, First
Access=Tue Oct 30 01:33:43 PDT 2012, Last Access=Wed Oct 31 05:52:21 PDT
2012)"

xCP 2.0 Performance Best Practices and Guidelines

22
In this example the execute query step took 969ms (LastValue) and there
were 59 query executions (Hits) since application server startup.
Label

Description

LastValue
Hits

Duration (ms) of this step for the current execution
Count of executions since application server startup
Avg/Total/Min/Max duration of this step since application server
startup

Avg/Total/Min/Max

The EMC Documentum xCelerated Composition Platform 2.0 Deployment
Guide provides more information.

Conclusion
xCP is not an application but a composition platform for developing
applications. Performance should be considered in all the three major
phases: design, deployment and runtime. In particular, tuning is generally
required at the database level in order to get satisfactory performance.
The whitepaper is written based on findings and experience gained
through EMC’s internal performance study. Most recommendations in the
whitepaper are not application specific and depending on how an
application is designed and used, additional tuning is required on case-bycase basis.
In general, each recommendation should be taken within a context.
Depending on the use case and the data volume in a repository, the
performance might be satisfactory without following the
recommendations. For example, you can use fuzzy search without
impacting much the performance if the data volume is small.
Performance tuning and optimization is a continuous process and it is the
same case with xCP 2.0. Many discussions and articles are expected to be
posted on EDN (EMC Developer Network) on solutions to address common
or specific xCP 2.0 performance issues. We encourage you to use EDN as a
first step when you encounter a performance issue.

xCP 2.0 Performance Best Practices and Guidelines

23

More Related Content

What's hot

Abap coding standards
Abap coding standardsAbap coding standards
Abap coding standardssurendra1579
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New FeaturesAli BAKAN
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Justin Lin
 
Java RMI Presentation
Java RMI PresentationJava RMI Presentation
Java RMI PresentationMasud Rahman
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java Abdelmonaim Remani
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptionsİbrahim Kürce
 
Best Great Ideas on Java Research Papers
Best Great Ideas on Java Research PapersBest Great Ideas on Java Research Papers
Best Great Ideas on Java Research Paperssuzanneriverabme
 
CallShaper Outbound Software Manual 1 - Setting Up your Account
CallShaper Outbound Software Manual 1 - Setting Up your AccountCallShaper Outbound Software Manual 1 - Setting Up your Account
CallShaper Outbound Software Manual 1 - Setting Up your AccountCallShaper, LLC
 
Sap basis made_easy321761331053730
Sap basis made_easy321761331053730Sap basis made_easy321761331053730
Sap basis made_easy321761331053730K Hari Shankar
 
Nfs version 4 protocol presentation
Nfs version 4 protocol presentationNfs version 4 protocol presentation
Nfs version 4 protocol presentationAbu Osama
 
OCA Java SE 8 Exam Chapter 5 Class Design
OCA Java SE 8 Exam Chapter 5 Class DesignOCA Java SE 8 Exam Chapter 5 Class Design
OCA Java SE 8 Exam Chapter 5 Class Designİbrahim Kürce
 
探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用Yi-Wei Lai
 

What's hot (15)

Java Strings
Java StringsJava Strings
Java Strings
 
Abap coding standards
Abap coding standardsAbap coding standards
Abap coding standards
 
Java 10 New Features
Java 10 New FeaturesJava 10 New Features
Java 10 New Features
 
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
Servlet & JSP 教學手冊第二版 - 第 1 章:簡介Web應用程式
 
Java RMI Presentation
Java RMI PresentationJava RMI Presentation
Java RMI Presentation
 
The Art of Metaprogramming in Java
The Art of Metaprogramming in Java  The Art of Metaprogramming in Java
The Art of Metaprogramming in Java
 
OCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 ExceptionsOCA Java SE 8 Exam Chapter 6 Exceptions
OCA Java SE 8 Exam Chapter 6 Exceptions
 
JVM Under The Hood WDI.pdf
JVM Under The Hood WDI.pdfJVM Under The Hood WDI.pdf
JVM Under The Hood WDI.pdf
 
Best Great Ideas on Java Research Papers
Best Great Ideas on Java Research PapersBest Great Ideas on Java Research Papers
Best Great Ideas on Java Research Papers
 
Manual alv
Manual alvManual alv
Manual alv
 
CallShaper Outbound Software Manual 1 - Setting Up your Account
CallShaper Outbound Software Manual 1 - Setting Up your AccountCallShaper Outbound Software Manual 1 - Setting Up your Account
CallShaper Outbound Software Manual 1 - Setting Up your Account
 
Sap basis made_easy321761331053730
Sap basis made_easy321761331053730Sap basis made_easy321761331053730
Sap basis made_easy321761331053730
 
Nfs version 4 protocol presentation
Nfs version 4 protocol presentationNfs version 4 protocol presentation
Nfs version 4 protocol presentation
 
OCA Java SE 8 Exam Chapter 5 Class Design
OCA Java SE 8 Exam Chapter 5 Class DesignOCA Java SE 8 Exam Chapter 5 Class Design
OCA Java SE 8 Exam Chapter 5 Class Design
 
探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用探索海量文章,Elasticsearch 建置和應用
探索海量文章,Elasticsearch 建置和應用
 

Similar to xCP2 0 Performance Best Practices and Guidelines

S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guideguestd2fe1e
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guideguestd2fe1e
 
Modifying infor erp_syte_line_5140
Modifying infor erp_syte_line_5140Modifying infor erp_syte_line_5140
Modifying infor erp_syte_line_5140rajesh_rolta
 
ESM 6.5c SP1 Installation and Configuration Guide
ESM 6.5c SP1 Installation and Configuration GuideESM 6.5c SP1 Installation and Configuration Guide
ESM 6.5c SP1 Installation and Configuration GuideProtect724mouni
 
White Paper: EMC Compute-as-a-Service
White Paper: EMC Compute-as-a-Service   White Paper: EMC Compute-as-a-Service
White Paper: EMC Compute-as-a-Service EMC
 
Presentation data center deployment guide
Presentation   data center deployment guidePresentation   data center deployment guide
Presentation data center deployment guidexKinAnx
 
Manual guia power flex525
Manual guia power flex525Manual guia power flex525
Manual guia power flex525Charles Santos
 
520com um001 -en-e
520com um001 -en-e520com um001 -en-e
520com um001 -en-eOsama Rizwan
 
H4160 emc solutions for oracle database
H4160 emc solutions for oracle databaseH4160 emc solutions for oracle database
H4160 emc solutions for oracle databasevoyna
 
Oracl apps api usages
Oracl apps api usagesOracl apps api usages
Oracl apps api usagesrakhe_r
 
Esm install guide_5.5
Esm install guide_5.5Esm install guide_5.5
Esm install guide_5.5Protect724v2
 
Managing disk subsystems using ibm total storage productivity center sg247097
Managing disk subsystems using ibm total storage productivity center sg247097Managing disk subsystems using ibm total storage productivity center sg247097
Managing disk subsystems using ibm total storage productivity center sg247097Banking at Ho Chi Minh city
 
Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Sal Marcus
 
Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Sal Marcus
 
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...Banking at Ho Chi Minh city
 
Presentation data center design overview
Presentation   data center design overviewPresentation   data center design overview
Presentation data center design overviewxKinAnx
 
software-eng.pdf
software-eng.pdfsoftware-eng.pdf
software-eng.pdffellahi1
 

Similar to xCP2 0 Performance Best Practices and Guidelines (20)

S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guide
 
S Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+GuideS Pii Plus+C+Library+Programmer+Guide
S Pii Plus+C+Library+Programmer+Guide
 
Oracle sap
Oracle sapOracle sap
Oracle sap
 
Modifying infor erp_syte_line_5140
Modifying infor erp_syte_line_5140Modifying infor erp_syte_line_5140
Modifying infor erp_syte_line_5140
 
ESM 6.5c SP1 Installation and Configuration Guide
ESM 6.5c SP1 Installation and Configuration GuideESM 6.5c SP1 Installation and Configuration Guide
ESM 6.5c SP1 Installation and Configuration Guide
 
White Paper: EMC Compute-as-a-Service
White Paper: EMC Compute-as-a-Service   White Paper: EMC Compute-as-a-Service
White Paper: EMC Compute-as-a-Service
 
Presentation data center deployment guide
Presentation   data center deployment guidePresentation   data center deployment guide
Presentation data center deployment guide
 
HRpM_UG_731_HDS_M2
HRpM_UG_731_HDS_M2HRpM_UG_731_HDS_M2
HRpM_UG_731_HDS_M2
 
Manual guia power flex525
Manual guia power flex525Manual guia power flex525
Manual guia power flex525
 
520com um001 -en-e
520com um001 -en-e520com um001 -en-e
520com um001 -en-e
 
H4160 emc solutions for oracle database
H4160 emc solutions for oracle databaseH4160 emc solutions for oracle database
H4160 emc solutions for oracle database
 
Oracl apps api usages
Oracl apps api usagesOracl apps api usages
Oracl apps api usages
 
Esm install guide_5.5
Esm install guide_5.5Esm install guide_5.5
Esm install guide_5.5
 
Managing disk subsystems using ibm total storage productivity center sg247097
Managing disk subsystems using ibm total storage productivity center sg247097Managing disk subsystems using ibm total storage productivity center sg247097
Managing disk subsystems using ibm total storage productivity center sg247097
 
Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2
 
Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2Maa wp sun_apps11i_db10g_r2-2
Maa wp sun_apps11i_db10g_r2-2
 
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...
Automated provisioning using ibm tivoli intelligent orchestrator and enterpri...
 
Presentation data center design overview
Presentation   data center design overviewPresentation   data center design overview
Presentation data center design overview
 
software-eng.pdf
software-eng.pdfsoftware-eng.pdf
software-eng.pdf
 
Catalog 2017-eng
Catalog 2017-engCatalog 2017-eng
Catalog 2017-eng
 

More from Haytham Ghandour

EMC Documentum - xCP 2.x Troubleshooting
EMC Documentum - xCP 2.x TroubleshootingEMC Documentum - xCP 2.x Troubleshooting
EMC Documentum - xCP 2.x TroubleshootingHaytham Ghandour
 
EMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentEMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentHaytham Ghandour
 
EMC Documentum - xCP.x Updating Endpoint
EMC Documentum - xCP.x Updating EndpointEMC Documentum - xCP.x Updating Endpoint
EMC Documentum - xCP.x Updating EndpointHaytham Ghandour
 
EMC Documentum - xCP 2.x Updating Java Services
EMC Documentum - xCP 2.x Updating Java ServicesEMC Documentum - xCP 2.x Updating Java Services
EMC Documentum - xCP 2.x Updating Java ServicesHaytham Ghandour
 
EMC Documenutm xCP 2.2 vs 1.x
EMC Documenutm xCP 2.2 vs 1.xEMC Documenutm xCP 2.2 vs 1.x
EMC Documenutm xCP 2.2 vs 1.xHaytham Ghandour
 
EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1Haytham Ghandour
 
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0EMC Documentum xCP 2.2 Self Paced Tutorial v1.0
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0Haytham Ghandour
 
Crystal Report Configuration Using xCP Designer 2.1
Crystal Report Configuration Using xCP Designer 2.1Crystal Report Configuration Using xCP Designer 2.1
Crystal Report Configuration Using xCP Designer 2.1Haytham Ghandour
 
Type Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 ApplicationsType Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 ApplicationsHaytham Ghandour
 
Alerts in EMC Documentum xCP 2.1
Alerts in EMC Documentum xCP 2.1Alerts in EMC Documentum xCP 2.1
Alerts in EMC Documentum xCP 2.1Haytham Ghandour
 
Migration & upgrades best practice upgrade pathways to emc documentum 7
Migration & upgrades   best practice upgrade pathways to emc documentum 7Migration & upgrades   best practice upgrade pathways to emc documentum 7
Migration & upgrades best practice upgrade pathways to emc documentum 7Haytham Ghandour
 
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Haytham Ghandour
 
EMC Documentum xCP 2.0 Design Patterns
EMC Documentum xCP 2.0 Design PatternsEMC Documentum xCP 2.0 Design Patterns
EMC Documentum xCP 2.0 Design PatternsHaytham Ghandour
 

More from Haytham Ghandour (15)

EMC Documentum - xCP 2.x Troubleshooting
EMC Documentum - xCP 2.x TroubleshootingEMC Documentum - xCP 2.x Troubleshooting
EMC Documentum - xCP 2.x Troubleshooting
 
EMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and DeploymentEMC Documentum - xCP 2.x Installation and Deployment
EMC Documentum - xCP 2.x Installation and Deployment
 
EMC Documentum - xCP.x Updating Endpoint
EMC Documentum - xCP.x Updating EndpointEMC Documentum - xCP.x Updating Endpoint
EMC Documentum - xCP.x Updating Endpoint
 
EMC Documentum - xCP 2.x Updating Java Services
EMC Documentum - xCP 2.x Updating Java ServicesEMC Documentum - xCP 2.x Updating Java Services
EMC Documentum - xCP 2.x Updating Java Services
 
EMC Documenutm xCP 2.2 vs 1.x
EMC Documenutm xCP 2.2 vs 1.xEMC Documenutm xCP 2.2 vs 1.x
EMC Documenutm xCP 2.2 vs 1.x
 
EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1EMC Documentum xCP 2.x Tips for application migration v1.1
EMC Documentum xCP 2.x Tips for application migration v1.1
 
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0EMC Documentum xCP 2.2 Self Paced Tutorial v1.0
EMC Documentum xCP 2.2 Self Paced Tutorial v1.0
 
Crystal Report Configuration Using xCP Designer 2.1
Crystal Report Configuration Using xCP Designer 2.1Crystal Report Configuration Using xCP Designer 2.1
Crystal Report Configuration Using xCP Designer 2.1
 
xCP Pattern Library 3.3
xCP Pattern Library 3.3xCP Pattern Library 3.3
xCP Pattern Library 3.3
 
Type Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 ApplicationsType Adoption in xCP 2.1 Applications
Type Adoption in xCP 2.1 Applications
 
xCP 2.1 Developer Guide
xCP 2.1 Developer GuidexCP 2.1 Developer Guide
xCP 2.1 Developer Guide
 
Alerts in EMC Documentum xCP 2.1
Alerts in EMC Documentum xCP 2.1Alerts in EMC Documentum xCP 2.1
Alerts in EMC Documentum xCP 2.1
 
Migration & upgrades best practice upgrade pathways to emc documentum 7
Migration & upgrades   best practice upgrade pathways to emc documentum 7Migration & upgrades   best practice upgrade pathways to emc documentum 7
Migration & upgrades best practice upgrade pathways to emc documentum 7
 
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
Best Practices & Lessons Learned from the field on EMC Documentum xCP 2.0
 
EMC Documentum xCP 2.0 Design Patterns
EMC Documentum xCP 2.0 Design PatternsEMC Documentum xCP 2.0 Design Patterns
EMC Documentum xCP 2.0 Design Patterns
 

Recently uploaded

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 

Recently uploaded (20)

The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 

xCP2 0 Performance Best Practices and Guidelines

  • 1. xCP 2.0 PERFORMANCE BEST PRACTICES AND GUIDELINES Abstract This white paper summarizes best practices and guidelines for designing and configuring an xCP 2.0 application to get better performance. Intended audiences include xCP 2.0 designers and administrators. January 2013
  • 2. Copyright © 2013 EMC Corporation. All Rights Reserved. EMC believes the information in this publication is accurate as of its publication date. The information is subject to change without notice. The information in this publication is provided “as is.” EMC Corporation makes no representations or warranties of any kind with respect to the information in this publication, and specifically disclaims implied warranties of merchantability or fitness for a particular purpose. Use, copying, and distribution of any EMC software described in this publication requires an applicable software license. For the most up-to-date listing of EMC product names, see EMC Corporation Trademarks on EMC.com. xCP 2.0 Performance Best Practices and Guidelines 2
  • 3. Table of Contents Executive Summary ............................................................................................. 5 Audience .............................................................................................................. 5 Abbreviation ........................................................................................................ 5 Background.......................................................................................................... 5 Architecture and Scalability ............................................................................... 6 Design Time .......................................................................................................... 6 General Recommendations ......................................................................................... 7 Limit Business Object Hierarchy Depth .................................................................... 7 Limit Number of Items in a Folder ............................................................................. 7 Limit Number of Grids on a Page ............................................................................. 7 Minimize Nesting of Column Boxes .......................................................................... 7 Minimize Use of Expression on Tab Group ............................................................... 8 Set Height to Tree or Tab Group ............................................................................... 8 Data Services .................................................................................................................. 8 Avoid triggering multiple queries ............................................................................. 8 Avoid Operators “Contains”, "Ends with" or "Does not contain" .......................... 8 Limit Number of Sortable Output Columns – Full-Text ........................................... 9 Avoid Operators "Does not contain", "!=" and "Ends with" – Full-Text .................. 9 Use Selective Criterion – Full-Text............................................................................ 10 Avoid Fuzzy Search – Full-Text ................................................................................. 10 Discovered Metadata ................................................................................................. 10 Limit Discovered Metadata Usage ........................................................................ 11 Avoid Adding Discovered Metadata of Type Entity Detection ........................ 11 Case and Process (BPM) ............................................................................................. 11 Use package instead of relationship to access BO in task-list query................ 11 Use business object package to encapsulate many process variables .......... 12 Viewer ............................................................................................................................ 12 Turn Off Thumbnails .................................................................................................. 12 Designer ......................................................................................................................... 12 Limit Number of Open Pages ................................................................................. 12 Deployment Time............................................................................................... 13 Use tomcat.util.scan.DefaultJarScanner.jarsToSkip to exclude jars from annotation scanning ............................................................................................... 13 xPlore .............................................................................................................................. 13 Use Small Repository at Design Time...................................................................... 13 Bypass Index Rebuilding .......................................................................................... 13 xCP 2.0 Performance Best Practices and Guidelines 3
  • 4. BAM ................................................................................................................................ 14 Use Different MQ Creation Strategies.................................................................... 14 Create Multiple Pipe Jobs ....................................................................................... 14 Move Runtime jars to bam-server.war .................................................................. 14 Content Transformation Services ............................................................................... 15 Minimize Storage Requirement .............................................................................. 15 Runtime ............................................................................................................... 15 Database Tuning .......................................................................................................... 15 General Guidelines .................................................................................................. 15 Sorting with Business Object.................................................................................... 16 Filtering with Business Object .................................................................................. 16 Recommended Tunings with Oracle..................................................................... 16 Recommended Tunings with SQL Server 2008 ..................................................... 16 Content Server .............................................................................................................. 17 Use DM_NO_EXTRA_JOINS....................................................................................... 17 Use Group Address to Reduce Mail Sending ....................................................... 17 Case and Process (BPM) ............................................................................................. 18 Oracle Tuning for Complex Task-List Query .......................................................... 18 Business Activity Monitor .............................................................................................. 18 Optimizing Historical Query Aggregation Frequency ......................................... 18 Content Transformation Services ............................................................................... 19 CTS JVM Tuning ......................................................................................................... 19 Change MaxParallelDecoding .............................................................................. 20 Tune Asynchronous CTS Thread Model ................................................................. 20 Tune Synchronous CTS Thread Model ................................................................... 20 Use ACS to Download Content from Content Server ......................................... 20 Viewer ............................................................................................................................ 21 Use Dedicated CTS Instances for Real-Time Requests ........................................ 21 Content Intelligence Services ..................................................................................... 21 Tune CIS ..................................................................................................................... 21 Do Not Allow a backlog of CIS Requests .............................................................. 22 Search ............................................................................................................................ 22 Use Debug Flag to Trouble-Shoot Performance Issue ......................................... 22 Conclusion ......................................................................................................... 23 xCP 2.0 Performance Best Practices and Guidelines 4
  • 5. Executive Summary This document summarizes performance best practices and guidelines based on internal performance studies using xCP 2.0. The document is divided into the three major phases in the lifecycle of an xCP application: design, deployment, and runtime. Audience This white paper is intended for xCP 2.0 designers and administrators. Abbreviation The following list contains terms, abbreviations, and acronyms that appear in the white paper.  ACS Accelerated Content Services  BAM Business Activity Monitor  BE Business Event  BO Business Object  BPM Business Process Manager  CS Content Server  CIS Content Intelligence Services  CTS Content Transformation Services  DM Discovered Metadata  MQ Message Queue Background xCP 2.0 is a platform used to develop end user applications. The design, configuration, and tuning of the system impact the performance of the end user application. This white paper provides best practices to follow and guidelines to consider when you develop an xCP 2.0 application. The content for this white paper is taken from a series of internal performance and scalability studies using xCP 2.0 with Documentum 7.0. xCP 2.0 Performance Best Practices and Guidelines 5
  • 6. Architecture and Scalability An xCP application can involve multiple products and components. To ensure support for a large number of concurrent users, an xCP application can be deployed with scalability provided for different layers. The following diagram illustrates a typical deployment where the system uses more than one instance for each Documentum product. You can also deploy multiple database instances (for example, Oracle RAD) at the database layer. The diagram above illustrates how the BAM server can be deployed in a clustered environment to provide high availability for end user report viewing. The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides guidelines on deploying BAM in a clustered environment. Design Time You should carefully plan the design of your xCP application because there are limitations on the ability to adjust it later. You should make critical decisions when you are designing the system that impact how the application performs and scales during runtime. xCP 2.0 Performance Best Practices and Guidelines 6
  • 7. General Recommendations Limit Business Object Hierarchy Depth A business object type can be a subtype of dm_sysobject or another business object type. Each additional level results in additional joins when a database query includes the business objects. Consequently, the query takes more time to execute and negatively impacts application performance. Limit the BO hierarchy to three levels, which includes the dm_sysobject level. Limit Number of Items in a Folder System performance is negatively impacted when an end user navigates to a folder that contains a large number of items. This occurs even when the application includes pagination. For better performance limit the number of items/objects in a folder to 2000. Placing a limit on the number of items in a folder may seem like a runtime issue only. However, a decision made during the design of the application could make it impossible to limit the number of items in a folder during runtime. For example, you might create a folder and for each new customer, a subfolder is created in the folder to store customer documents and artifacts. When your business expands, you might end up with a large number of customers and navigating to that folder might not have a satisfactory performance. Limit Number of Grids on a Page A data grid is an important widget often used in an xCP application. However, the display of data grids can take time, particularly when the end user uses Internet Explorer. For better performance, it is recommended that you limit the number of grids on a page. An alternative is to use tabs so that each page can be loaded and displayed quickly. Minimize Nesting of Column Boxes The nesting of column boxes results in a DOM (Document Object Model) nesting and more JavaScript executions. xCP 2.0 Performance Best Practices and Guidelines 7
  • 8. Minimize Use of Expression on Tab Group When you bind a tab to an expression, all of the tab contents in the containing tab group are rendered when the page loads. Without expression, only the contents of the first tab in the tab group are rendered when the page loads. Set Height to Tree or Tab Group Specifying the height of a tree or a tab group can significantly improve the layout performance. Data Services Avoid triggering multiple queries When you select On page load or When an input value changes the system could trigger queries unnecessarily, resulting in a greater load on the server. For example, when you select When an input value changes, and an end user types in a word of four letters for search, the system can trigger the same query four times. This guideline applies to real-time, historical, full-text, and task-list queries. Avoid Operators “Contains”, "Ends with" or "Does not contain" Do not use the operators Contains, Ends with, or Does not contain when defining a user input for a real-time, historical, or task-list query. These operators make the database query non-sargable and results in poor system performance. xCP 2.0 Performance Best Practices and Guidelines 8
  • 9. Limit Number of Sortable Output Columns – Full-Text Do not enable sorting for all columns of a full-text search. Enable sorting only for the columns that provide the most value to the end user. The system creates an index in xPlore for each attribute enabled for sorting. This increases the size of the index which can negatively impact system performance. Avoid Operators "Does not contain", "!=" and "Ends with" – Full-Text Do not use the Does not contain, !=, or Ends with negative operators when configuring a user input for a full-text search. Queries that contain these operators can impact system performance. xCP 2.0 Performance Best Practices and Guidelines 9
  • 10. Use Selective Criterion – Full-Text Add user inputs to a full-text query to make it more selective. The system processes selective queries more efficiently than unselective queries. When you configure an unselective query, especially those issued by an end user without sufficient privileges, system performance can be impacted. xPlore performs a security check when an end user issues a query. It takes more system resources to complete a security check for users that do not have sufficient privileges. Avoid Fuzzy Search – Full-Text Fuzzy search is a term to describe including variation, misspelling, and typos in your full-time search. You should use this type of search sparingly because it uses more processing power to generate the matches. By default this option is not enabled. Discovered Metadata The CIS server computes metadata values by analyzing the content of an object. This computation is performed asynchronously. The volume and format of the content can impact the amount of CPU resources needed to perform the computation. The following table provides example performance metrics for the entity detection and the categorization and pattern detection processing types: Type of Processing Entity detection Categorization & Pattern detection Discovered Metadata Fax number Organization People Phone number Place postal address Business terms (USA) Science and Engineering Email address SSN (USA) URL Throughput Example with Documents of 4KB 10 MB/hour 2,500 documents/hour 1 GB/hour 250,000 documents/hour xCP 2.0 Performance Best Practices and Guidelines 10
  • 11. This example shows that entity detection is less efficient than categorization and pattern detection. Limit Discovered Metadata Usage Do not add discovered metadata to a content model unless it is used by the end user. This guideline is particularly important for entity detection discovered metadata. Avoid Adding Discovered Metadata of Type Entity Detection The cost of adding a DM is a function of the DM type. Adding the first Categorization DM has a low impact on system performance. The impact of adding a second Categorization DM is lower than the first DM and is almost unnoticeable. Adding the first Pattern detection DM has a low impact on system performance. The impact of adding a second Pattern detection DM has the same impact as adding the first Pattern detection DM. Adding the first Entity detection DM has a high impact on system performance. The impact of adding a second Entity detection DM does not have any impact on the current Entity detector. It does not cost more to have many entity detection DM computed for a Content Model when compared to a single entity detection DM. The following table summarizes the differences: Type of Processing Cost of First Discovered Metadata Cost of Additional Discovered Metadata Entity detection High Unnoticeable Categorization Low Much lower Pattern detection Low Low Case and Process (BPM) Use package instead of relationship to access BO in task-list query You introduce additional table joins when you configure a task-list query that includes attributes of a non-package business object which is accessed through a relationship with another type of business object. You can improve system performance by adding the related business object to a package so that the task-list query can access its attributes directly. xCP 2.0 Performance Best Practices and Guidelines 11
  • 12. Use business object package to encapsulate many process variables The performance of a task page slows when a process contains multiple packages and process variables. Using a single business object to replace multiple process variables can improve task page performance, especially when there are a large number of process variables. The cost in system resources to save or update a package is comparable to the cost for a process variable. A single business object can contain multiple attributes. Viewer Turn Off Thumbnails If an end user views documents that contain mostly text (for example, Word or PDF documents), clear the Display thumbnail navigator checkbox. Displaying a thumbnail for a text page does not add value to the end user and because the system downloads thumbnails, system performance can be negatively impacted. The impact can be significant under WAN conditions. However, it is important to note that clearing this option also turns off the page modification feature. Designer Limit Number of Open Pages Limit the number of pages open in xCP Designer. Depending on native memory and java heap settings you could experience performance issues with xCP Designer when you keep a large number of pages open.  Native memory: Each page consumes native memory and when you open many pages the system may run short of memory.  Java heap: Each page consumes memory in the Java heap and with many open pages the JVM can spend much time doing garbage collection. xCP Designer is a 32-bit application that limits the maximum heap size. xCP 2.0 Performance Best Practices and Guidelines 12
  • 13. In addition, the number of pages that can be opened without impacting performance is a function of the complexity of the pages. Deployment Time Use tomcat.util.scan.DefaultJarScanner.jarsToSkip to exclude jars from annotation scanning Tomcat 7 includes support for Servlet 3.0 annotations which require more heap memory and results in a longer start up time for the server because of higher heap usage and additional processing. xCP 2.0 does not require support for annotations. You can configure Tomcat to exclude annotation JARs from being scanned during start up. The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides instructions on how to exclude JARs from being scanned. xPlore Deploying or redeploying an xCP application could cause the xPlore index to be rebuilt. Rebuilding the xPlore index is a synchronous operation that negatively impacts the overall deployment performance if the index is large. Based on EMC internal tests, the throughput is 10-30 documents per second with small to medium document size. Use Small Repository at Design Time This is the preferred way before the deployment to the production environment. For example, a repository with 1000 documents can be used during the design time since the purpose at the design time is to ensure the correctness of the application. Bypass Index Rebuilding You can use xMS Server to deploy an xCP application to bypass xPlore index rebuilding. However you cannot bypass index rebuilding when you use xCP Designer to deploy an application. 1. Use xCP Designer to package the WAR and config.xml files. 2. Use xMS Server to deploy an application and specify -xploreindexing false during deployment For example: xCP 2.0 Performance Best Practices and Guidelines 13
  • 14. xms>deploy-xcp-application --war-file C:packageCasual_and_Property_Insurance.war -configuration-file C:packageCasual_and_Property_Insurance_capins_1.0.0_config .xml --environment C24-DIY --xploreindexing false Once deployed, use the xPlore admin console to rebuild the index. If the index is not rebuilt, the system does not make changes in the Full-Text search model available to end users at runtime. For example, if you add a facet to an application and xPlore does not rebuild the index, the end user does not see the facet. BAM Use Different MQ Creation Strategies Content Server message queues hold business event data generated by the runtime application. The message queue strategy determines the number of message queues the system creates. The strategy correlates with system performance. Generally, the more message queues the system creates the better the BAM server performs. The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides instructions. Create Multiple Pipe Jobs The BAM server runs one pipe job for each message queue, taking data from the queue and inserting it into the BAM database. If you have a backlog of data you can add pipe jobs to a message queue as a way to improve system performance. The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides instructions. Move Runtime jars to bam-server.war When you deploy xCP, the runtime JAR files are placed in CATALINA_BASE/lib. You can improve system performance by moving the runtime JAR files to CATALINA_BASE/webapps/bam-server/WEB-INF/lib. BAM throughput can be improved by 50-100%. The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides more information. xCP 2.0 Performance Best Practices and Guidelines 14
  • 15. Content Transformation Services Minimize Storage Requirement The cost to store renditions and storyboards can be up to five times greater than the cost for the content. Storyboards are required when using xCP Viewer. Storyboards are not required for Daeja Viewer. You can specify when storyboards are not generated, for example, for Microsoft Excel documents. Set richmedia_enabled to 0 for the excel12book format: update dm_format objects set richmedia_enabled=0 where name='excel12book' Runtime Database Tuning General Guidelines In general, database tuning is expected in order to get satisfactory performance.  Index creation o This is application and data model specific and not all the required indexes are created out of the box. o For example, 24 indexes were created for the reference application used during the internal performance study.  Statistics gathering o Gathering statistics involves a number of options and configuration parameters. It is the responsibility of the DBA to determine the best options based on the application and how it is used. o For Oracle: http://docs.oracle.com/cd/E11882_01/server.112/e16638/stats .htm#PFGRF003 o For SQL Server 2008: http://msdn.microsoft.com/enus/library/dd535534(v=sql.100).aspx  (Oracle) SQL Baseline or SQL Profile o Using hints might be needed to influence CBO (Cost Based Optimizer). xCP 2.0 Performance Best Practices and Guidelines 15
  • 16. o It is found that SQL Baseline/Profile is efficient if the performance of a query can be improved by passing a hint (without query structure change). Sorting with Business Object The system does not automatically create indexes for each business object type. If an end user experiences inadequate system performance while sorting the results of a real-time or task-list query, manually create an index to help resolve the issue. For example:  Business object: Person with attribute “last_name”  Enable sorting for “last-name” with a query  Create an index on (last_name, r_object_id) For full-text queries the system automatically creates an index in xPlore. Filtering with Business Object When an attribute is added to a user input, creating a corresponding index can improve system performance. . This is similar to the case above where manually creating an index for sorting can help system performance. Recommended Tunings with Oracle  Set cursor_sharing=FORCE  Consider turning off auditing or writing database audit records to OS with large file sizes.  The following is not a general recommendation but it can be tried if the execution plan for some queries is not optimal. optimizer_index_caching=95 optimizer_index_cost_adj=5 Recommended Tunings with SQL Server 2008  Parameterization = forced  Consider setting "Maximum degree of parallelism" if the host has more than 4 CPUs  Enable Snapshot Isolation ALTER DATABASE MyDatabase SET ALLOW_SNAPSHOT_ISOLATION ON ALTER DATABASE MyDatabase SET READ_COMMITTED_SNAPSHOT ON  Set "maximum server memory" if the SQL Server is deployed on a shared host xCP 2.0 Performance Best Practices and Guidelines 16
  • 17. o SQL Server would use as much memory as possible and it may result in poor performance with other components/products deployed on the same machine.  Auto Create Statistics = false  Auto Update Statistics = true Content Server Use DM_NO_EXTRA_JOINS When views are created, extra/redundant join predicates are added by default.  It was to help DB optimizer to choose the best execution plan based on Documentum's past performance investigation. However, it is found that with Oracle 11g, the redundant join predicates present challenges to Oracle optimizer and can result in much worse performance because the Oracle optimizer might choose a sub-optimal execution plan.  A support case (Bug 14033569) has been opened with Oracle. It is recommended to use DM_NO_EXTRA_JOINS to eliminate redundant join predicates. Refer to Content Server 7.0 Administration and Configuration Guide for detail. Use Group Address to Reduce Mail Sending By default, the system sends an event notification email to each member of a workqueue group. This setting places a load on the method server and can impact system performance. Set the use_group_address parameter to 1 so that the system sends an event notification email to the address of the group instead of each member of the group. If you are not using email, turn off mail sending: 1. Open server.ini. 2. Locate the [SERVER_STARTUP] section. 3. Set mail_notification = false. These two guidelines are helpful when troubleshooting DM_SERVER_E_NO_MTHD_BUF issues. The EMC Documentum Content Server 7.0 Administration and Configuration Guide provides more information on email settings. xCP 2.0 Performance Best Practices and Guidelines 17
  • 18. Case and Process (BPM) Oracle Tuning for Complex Task-List Query System response time can be slow when processing a complex task-list query. For example, response time slows when a task-list query includes the attributes of a non-package BO accessed through a relationship. Use the following parameters to improve query performance:  optimizer_index_caching=95  optimizer_index_cost_adj=5 These parameters are global and the impact on the performance of other types of queries is not clear. Test and validate this setting in a test environment before using it in a production environment. Business Activity Monitor Optimizing Historical Query Aggregation Frequency The system aggregates data for all historical queries every 5 minutes. If too many aggregation jobs run simultaneously, system performance suffers and charts do not load quickly. The following figure shows spikes in system CPU usage occurring in 5-minute intervals as the number of historical queries increases: To avoid future performance issues, you can adjust two aspects of historical query aggregation jobs: LAST_RUN and STEP_SIZE. LAST_RUN is the time an aggregation job starts. By default, the system starts all aggregation jobs at the same time, for example, 10:20 a.m., 10:25 a.m., xCP 2.0 Performance Best Practices and Guidelines 18
  • 19. 10:30 a.m., and so on. To enhance system performance, stagger aggregation jobs so they begin at different times, which can decrease the load on the CPU. The system accepts LAST_RUN values expressed in whole minutes. For example, use a LAST_RUN value of 1, 2, 3, and so on. If CPU usage is still too high, adjust STEP_SIZE. STEP_SIZE controls how often an aggregation job runs. The default STEP_SIZE is 5 minutes, which means the system starts aggregation jobs every 5 minutes. You can increase or decrease STEP_SIZE. Decreasing STEP_SIZE can enhance system performance because the system aggregates fewer rows of data. The system accepts STEP_SIZE values as whole minutes expressed in seconds. For example, the system accepts 60, 120, and 180, but does not accept 90, 150, or 210. Adjust LAST_RUN and STEP_SIZE by running scripts against the BAM database. In the following example, the script adjusts LAST_RUN so the aggregation jobs for three historical queries start 1 minute later than the rest of the aggregation jobs. UPDATE BAM_S_JOBS SET LAST_RUN=DATEADD(mi,1,LAST_RUN) WHERE NAME in (’QueryLabel_1’,’QueryLabel_2’,’QueryLabel_3’) In the following example, the script adjusts LAST_RUN so the aggregation jobs for two historical queries run 2 minutes before the rest of the aggregation jobs. UPDATE BAM_S_JOBS SET LAST_RUN=DATEADD(mi,-2,LAST_RUN) WHERE NAME in ’QueryLabel_4’,’QueryLabel_5’) In the following example, the script changes step_size to 60 seconds for all historical queries with Customer in the name. UPDATE BAM_S_JOBS SET STEP_SIZE=60 WHERE NAME like ’Customer%’ This information also appears in the xCP Designer online help documentation. Content Transformation Services CTS JVM Tuning Depending on the configuration of the system and the required throughput, JVM memory options should be changed accordingly. The Windows registry is used for CTS JVM configuration and the location is at HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->services>DocumentumCTS->Parameters->AppParameters. xCP 2.0 Performance Best Practices and Guidelines 19
  • 20. It is also recommended to disable explicit GC by using the JVM Option XX:+DisableExplicitGC. Change MaxParallelDecoding On a powerful machine (e.g. with 8 cores or plus), setting MaxParallelDecoding to a large value can significantly improve the CTS throughput.  pdfstoryboard.xml <MaxParallelDecoding>8</MaxParallelDecoding>  doc2.xml <MaxParallelDecoding>8</MaxParallelDecoding> Tune Asynchronous CTS Thread Model To tune the asynchronous thread model update the CTSServerService.xml file. For example: <MaxTaskThreadJobTime>30</MaxTaskThreadJobTime> <MonitorThreadSleepTime>20</MonitorThreadSleepTime> <CTSServer AttributeName="queueInterval" AttributeValue="5"/> <CTSServer AttributeName="maxThreads" AttributeValue="30"/> <CTSServer AttributeName="maxQueueItemsToSignOff" AttributeValue="8"/> <CTSServer AttributeName="thresholdForQueueItemsToSignOff" AttributeValue="8"/> Tune Synchronous CTS Thread Model To tune the synchronous thread model update the WebServerService.xml file. For example: <ServerProperty Key="maxWorkingThreads" Description="Number of working threads" Type="Integer" Value="30"/> <ServerProperty Key="thresholdForSignOff" Description="Threshold for maxium number of requests signed off" Type="Integer" Value="30"/> <ServerProperty Key="TPMMonitorMaxTaskJobTime" Description="Maxium allowed task running time (minutes)" Type="Integer" Value="30"/> <ServerProperty Key="TPMMonitorSleepTime" Description="Sleep time for tasks monitor (minutes)" Type="Integer" Value="20"/> Use ACS to Download Content from Content Server Enable content transfer using ACS to improve the content transfer time. 1. Use DA to create a network location ID. For example, ctsn1. 2. Update the CTSServerService.xml file with the network Location ID. <BocsConfig allowBocsTransfer="true" allowSurrogateTransfer="true" networkLocationId="ctsnl" preferAcsTransfer="true" processOnlyParked="false"/> <CTSServer AttributeName="networkLocationId" AttributeValue="ctsnl"/> xCP 2.0 Performance Best Practices and Guidelines 20
  • 21. <CTSServer AttributeName="preferAcsTransfer" AttributeValue="true"/> 3. Restart CTS. Viewer Use Dedicated CTS Instances for Real-Time Requests Configure one or more CTS instances to process real-time requests. 1. Access each machine that sends real-time requests. 2. Edit the preferences.xml file. For example: <ServerProperty Key="AvailabilityWait" Description="Number of seconds to wait for rechecking availability" Value="4"/> <ServerProperty Key="CTS_SkipList" Description=" list of cts instances (semicolon separated) to skip (scalability)" Value=“A-CTS1;A-CTS2"/> 3. Edit the CTSServerService.xml file for each real-time instance to ensure that a dedicated real-time CTS instance is not processing asynchronous requests. For example: <QueueProcessorContext DocbaseName="xcprepo"> <CTSServer AttributeName="queueItemName" AttributeValue="dm_mediaserver_temp"/> <QueueProcessorContext DocbaseName="xcprepo"> <CTSServer AttributeName="queueItemName" AttributeValue="dm_autorender_win31_temp"/> Content Intelligence Services Tune CIS There are two major tuning options with CIS:   cis.server.execution.threads cis.entity.luxid.annotation_server.cpu The default value of cis.entity.luxid.annotation_server.cpu is 1 and it is usually too small in a production environment. It is recommended to start with cis.entity.luxid.annotation_server.cpu set to the total number of CPUs of all Luxid nodes. cis.server.execution.threads should be set to a value sufficiently large so that each Luxid node does not stay idle while there are documents to process. xCP 2.0 Performance Best Practices and Guidelines 21
  • 22.  Usually, the processing speed of the CIS server (Categorization/Pattern Detection) is much faster than the Luxid server (Entity Detection).  Tune by starting with cis.server.execution.threads = 1 Do Not Allow a backlog of CIS Requests If a newly created document/object is processed by CIS after it is processed by xPlore, xPlore trigger a new processing. It is important to ensure that CIS can process newly created documents/objects with a short delay. Search Use Debug Flag to Trouble-Shoot Performance Issue The debug mode for query data services can be activated at runtime by adding the debug parameter in the URL calling the services. The debug information is useful to troubleshoot issues such as performance issues. It allows you to check results, execution events, and the query sent to the source. The following example shows how to add the debug parameter to the URL: http://<host>:<port>/<application_name>/application/documents?type=ft_do c&q=active&page=1&start=0&limit=10&debug The following table shows the output from the debug operation. Search for the statistics section which includes four entries all prefixed with JAMon Label: Step Real-Time Full-Text 1 2 3 4 RealtimeAttributeMapperFactory.createMapper RealtimeQueryAdapter.adapt RealtimeQueryExecutor.execute RealtimeResultAdapter.adapt DfcAttributeMapperFactory.createMapper DfcSearchQueryAdapter.adapt DfcSearchExecutor.execute DfcSearchResultAdapter.adapt Each entry represents a step in the service call execution.  Steps 1 and 2: The application server prepares and builds the query  Step 3: The Content Server database or xPlore execute the query  Step 4: The application server processes the results The system calculates the following metrics for each step: "executor":"JAMon Label=DfcSearchExecutor.execute, Units=ms.: (LastValue=969.0, Hits=59.0, Avg=777.8135593220339, Total=45891.0, Min=217.0, Max=8952.0, Active=0.0, Avg Active=1.0, Max Active=1.0, First Access=Tue Oct 30 01:33:43 PDT 2012, Last Access=Wed Oct 31 05:52:21 PDT 2012)" xCP 2.0 Performance Best Practices and Guidelines 22
  • 23. In this example the execute query step took 969ms (LastValue) and there were 59 query executions (Hits) since application server startup. Label Description LastValue Hits Duration (ms) of this step for the current execution Count of executions since application server startup Avg/Total/Min/Max duration of this step since application server startup Avg/Total/Min/Max The EMC Documentum xCelerated Composition Platform 2.0 Deployment Guide provides more information. Conclusion xCP is not an application but a composition platform for developing applications. Performance should be considered in all the three major phases: design, deployment and runtime. In particular, tuning is generally required at the database level in order to get satisfactory performance. The whitepaper is written based on findings and experience gained through EMC’s internal performance study. Most recommendations in the whitepaper are not application specific and depending on how an application is designed and used, additional tuning is required on case-bycase basis. In general, each recommendation should be taken within a context. Depending on the use case and the data volume in a repository, the performance might be satisfactory without following the recommendations. For example, you can use fuzzy search without impacting much the performance if the data volume is small. Performance tuning and optimization is a continuous process and it is the same case with xCP 2.0. Many discussions and articles are expected to be posted on EDN (EMC Developer Network) on solutions to address common or specific xCP 2.0 performance issues. We encourage you to use EDN as a first step when you encounter a performance issue. xCP 2.0 Performance Best Practices and Guidelines 23