Madan Da Deployment
Madan Da Deployment
Madan Da Deployment
Administrator
Version 7.2
Deployment Guide
EMC Corporation
Corporate Headquarters:
Hopkinton, MA 01748-9103
1-508-435-1000
www.EMC.com
Legal Notice
Copyright © 1999–2017 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. Adobe and Adobe PDF
Library are trademarks or registered trademarks of Adobe Systems Inc. in the U.S. and other countries. All other trademarks
used herein are the property of their respective owners.
Documentation Feedback
Your opinion matters. We want to hear from you regarding our product documentation. If you have feedback
about how we can make our documentation better or easier to use, please send us your feedback directly at
[email protected].
Table of Contents
Preface ................................................................................................................................ 7
List of Tables
Intended Audience
This guide is intended for administrators who are deploying Documentum Administrator. Readers
are expected to be familiar with the Windows, UNIX, or Linux operating systems and are able to
install and configure a J2EE application server.
Revision History
Revision Date Description
February 2017 Updated the Configuring IBM WebSphere, page 35 section.
January 2017 Updated the Enabling presets and preferences repositories, page 29
section.
December 2016 • Updated the procedure To disable the WDK compression filter in
the section Configuring Apache Tomcat, page 14.
Documentum Administrator
Documentum Administrator is a Content Server and repository administration tool. Documentum
Administrator runs on an application server host.
The EMC Documentum Content Server Administration and Configuration Guide and the Documentum
Administrator online help contain information on how to use Documentum Administrator to administer
and configure Content Server and Documentum repositories.
Typical configuration
When deployed on a single application server, a Documentum Administrator requires the following
network components:
• Application server host on which to deploy Documentum Administrator
• Separate Content Server host with a repository and one or more Content Servers
• Global registry repository
• Client hosts that run a supported web browser
Documentum Administrator can be deployed in supported clustered environments. The EMC
Documentum Environments and System Requirements Guide contains the information on the supported
clustered server configurations.
Caution: For security and performance reasons, do not install the Content Server and
Documentum Administrator on the same host. Also, do not deploy web applications to the
internal application server embedded in the Content Server.
Application servers
Before deploying Documentum Administrator, ensure that your J2EE application server or servlet
container is a supported version that serves sample JavaServer Pages successfully. Your selected
application server and optional external web server must be certified for Documentum Administrator.
EMC does not provide support for installing or running application servers. The documentation for
each application server contains instructions on how to install, stop, start, and run the application
server. Contact the application server vendor for technical support.
• MaxPermSize
Application servers can slow down, throw exceptions, or crash with an application that has many
JavaServer Pages. Set the MaxPermSize parameter to 128 or higher to avoid these problems.
• Session caching
Document caching can consume at least 80 MB of memory. User session caching can consume
approximately 2.5 MB to 3 MB per user. Consequently, 50 connected users can consume over 200
MB of VM memory on the application server. Increase the values to meet the demands of the
expected user load.
To achieve better performance, add these parameters to the application server startup command
line:
-server
-XX:+UseParallelOldGC
The first parameter on the command line must be -server.
Performance improves because the Java client VM is not suitable for long running server jobs.
The default Java garbage collector cannot clean up the heap quickly enough, especially when the
application server machine runs on multiple CPUs.
The Java documentation contains more information on these settings. More information on application
server performance tuning and benchmarking for Documentum products is available from your EMC
Documentum SE or EMC Documentum Consulting.
In Apache Tomcat, the HttpOnly property of cookies is enabled by default and causes the
jsessionid cookie to be unavailable to the client side script and applets. Hence, perform the
following:
1. Add the following line in the catalina.properties file located at <APACHE_TOMCAT_
HOME>\conf:
org.apache.jasper.compiler.Parser.STRICT_WHITESPACE=false
jnlp.com.rsa.cryptoj.fips140loader=true
2. Disable tag reuse in Apache Tomcat in the web.xml file of the /conf directory. Find the JSP servlet
entry in the web.xml file. Add the enablePooling initialization parameter and disable pooling:
<servlet>
<servlet-name>jsp</servlet-name>
<servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
<init-param>
<param-name>enablePooling</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>fork</param-name>
<param-value>false</param-value>
</init-param>
<init-param>
<param-name>xpoweredBy</param-name>
<param-value>false</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,application/xml,text/plain,text/css,text/
javascript,text/json,application/x-javascript,application/
javascript,application/json"
useSendfile="false"
The updated Connector tag is:
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
compression="on"
compressionMinSize="2048"
compressableMimeType="text/html,text/xml,application/xml,text/
plain,text/css,text/javascript,text/json,application/
x-javascript,application/javascript,application/json"
useSendfile="false"/>
Preparing JBoss
Configuring JBoss
1. If available, delete the dfc.keystore and wdk.keystore files in <JBoss Home>\bin
(Windows) and <JBoss Home>/bin (Linux). This will not be present in case of a fresh
installation. If present, this will be from any previous WDK application that was deployed
on JBOSS.
2. To configure the dfc.properties file for the application, refer to the section .
3. To configure encrypted passwords in the app.xml file using TrustedAuthenticatorTool, refer
to the section .
4. Encrypting the password using TrustedAuthenticatorTool creates the dfc.keystore and
wdk.keystore in the WEB-INF/classes folder.
5. Move the keystore files from <WebApp Root>\WEB-INF\classes (Windows) and <WebApp
Root>/WEB-INF/classes (Linux) to the bin folder of the <JBoss Home> directory.
6. Copy the contents of the classes folder from <WebApp Root>\WEB-INF\classes (Windows)
and <WebApp Root>/WEB-INF/classes (Linux) to a temporary location (for example,
Temp-Loc).
Execute the following command at Temp-Loc to create a web-inf-classes jar file:
jar -cvf web-inf-classes.jar *
10. Configure the binding address by replacing 127.0.0.1 with the application server host IP address
in <wsdl-host> and <interfaces> tags in standalone.xml
11. Execute the following command at <WebApp Root> to repackage the Webtop WAR file:
jar –cvf webtop.war *
3. Copy the DFC and WDK keystores from application 1 to the application 2 (classes folder) and
encrypt the preference repository password of application 2 using TrustedAuthenticatorTool.
For more information, see .
This updates the same keystore file with the encryption keys to decrypt the password for the
second repository as well.
4. Move the updated keystore files from application 2 to the JBOSS/bin folder.
Option 2
1. Encrypt the preference repository passwords for multiple applications in the same location.
For example, navigate to the <WebApp Root>\WEB-INF\classes folder of application 1
and encrypt the preference repository passwords for both the applications. The app.xml
files of both the applications are updated with the respective encrypted password generated
for the global repository mentioned in the dfc.properties file of the application. For more
information, refer to the section .
2. Move the keystore file which has both the encryption keys from <WebApp
Root>\WEB-INF\classes (Windows) and <WebAppRoot>/WEB-INF/classes (Linux)
to the bin folder of the <JBoss Home> directory.
5. For application 1 and application 2, copy the contents of the classes folder from
\WEB-INF\classes (Windows) and /WEB-INF/classes (Linux) to temporary locations. For
example, Temp-Loc1 and Temp-Loc2.
Execute the following command at Temp-Loc1 and Temp-Loc2 to create a web-inf-classes jar
files for the respective applications file:
jar -cvf web-inf-classes.jar *
6. For application1 and application 2, copy the respective web-inf-classes.jar file to <WebApp
Root>\WEB-INF\lib (Windows) and <WebApp Root>/WEB-INF/lib (Linux) folder
structure.
7. For application1 and application 2, delete the corresponding classes folder from <WebApp
Root>\WEB-INF (Windows) and <WebApp Root>/WEB-INF (Linux) folder structure.
8. If you are configuring the JBOSS application server for the first time, add the configuration entry
(in bold) to the subsystem tag in the standalone.xml file and configure the binding address as
mentioned in the steps 9 and 10 of section.
9. For both the applications execute the following command at <WebApp Root> to repackage
the Webtop WAR file:
jar –cvf webtop.war *
For the HttpOnly cookies support, navigate to \WEB-INF\web.xml and perform the following:
To
<web-app version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
metadata-complete="true"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
Policy for local user directory (non-default location) — This policy is required if the user directory
for the application server host machine is a non-default location. The default location is the same as
the location specified by the dfc.properties key dfc.data.dir.
permission java.io.FilePermission "${dfc.user}${/}-", "read, write, delete";
permission java.io.FilePermission "${dfc.user}", "read, write, delete";
Policy for checkout and export directories (non-default location) — These environment variables
must specify the same location as the value of the dfc.properties keys dfc.checkout.dir and
dfc.export.dir. The default locations for these directories are checkout and export subdirectories
of dfc.data.dir.
permission java.io.FilePermission "${dfc.checkout}${/}-", "read, write, delete";
permission java.io.FilePermission "${dfc.checkout}", "read, write, delete";
permission java.io.FilePermission "${dfc.export}${/}-", "read, write, delete";
permission java.io.FilePermission "${dfc.export}", "read, write, delete";
Policy for DFC registry file (non-default location) — The value of the dfc.registry
environment variable must match the location specified in the dfc.properties file for the key
dfc.registry.file.
permission java.io.FilePermission "${dfc.registry}${/}-", "read, write, delete";
permission java.io.FilePermission "${dfc.registry}", "read, write, delete";
Policy for non-Webtop WDK-based temporary content transfer (non-default location) — You can
use this policy for TaskSpace or another application that is not based on Webtop:
permission java.io.FilePermission "${wdk.content.xfer}${/}-", "read, write, delete";
permission java.io.FilePermission "${wdk.content.xfer}", "read, write, delete";
Policy for documentum applications directory (non-default location) — The default location is
dfc.data.dir.
permission java.io.FilePermission "${documentum}${/}-", "read, write, delete";
permission java.io.FilePermission "${documentum}", "read, write, delete";
Policy for DFC class cache directory (non-default location) — The default location is
dfc.data.dir/cache.
permission java.io.FilePermission "${dfc.cache.dir}${/}-", "read, write, delete";
permission java.io.FilePermission "${dfc.cache.dir}", "read, write, delete";
Note:
• The documentation for each application server contains instructions on adding or updating
permissions in the security policy file of the application server.
• The Webtop.example.java.policy file contains a default set of permissions that are required
for Documentum Administrator functionality.
Note:
• If you have created a repository on a Japanese operating system, then the data dictionary is
automatically populated with the Japanese data dictionary files.
• Non-xCP Documentum applications (such as Documentum Administrator, Webtop) cannot
be deployed on the application server instance where xCP runtime is hosted because of
conflicting dfc.jar instances on the classpath. Do not deploy Documentum Administrator
on the same application server where xCP is deployed.
3. Add the fully qualified host name for the connection broker to the following key. You can
increment the index number within brackets to add backup hosts.
dfc.docbroker.host[0]=host_name
4. To use a port for the connection broker other than the default of 1489, add a port key to the
dfc.properties file:
dfc.docbroker.port=port_number
6. Add the user name of the dm_bof_registry user to the following key:
dfc.globalregistry.username=dm_bof_registry_user_name
The global registry user, who has the user name dm_bof_registry, has read access only to objects
in the /System/Modules and /System/NetworkLocations.
7. Add an encrypted password value for the following key:
dfc.globalregistry.password=encrypted_password
You can either copy the username and encrypted password from the dfc.properties file on
the global registry Content Server host or you can select another global registry user and encrypt
the password using the following command:
java -cp dfc.jar com.documentum.fc.tools.RegistryPasswordUtils
password_to_be_encrypted
Note: The directory containing the javaw.exe file must be on the system path.
8. If the Content Server, connection broker, and the repository are configured in the non-anonymous
SSL mode then provide these parameters in the dfc.properties file:
a. Add the secure connection mode and set it to secure first.
dfc.session.secure_connect_default = try_secure_first
Configuring UCF
The Web Development Kit 6.8 Development Guide contains the following procedures:
• How to configure different content transfer mechanisms (UCF or HTTP) for roles.
• How to configure the UCF client content transfer directories, including client path substitution.
• How to support self-signed or unsigned SSL certificates.
• How to configure the UCF server for forward and reverse proxy servers and alternative chunking.
Note: The web server associated with an application server must support chunked requests.
The web server forwards HTTP requests using chunked transfer encoding, as described in the
HTTP/1.1 protocol, to the back-end application server. If chunked requests are not supported
then the client must use the UCF alternative chunking mode.
If users have already installed UCF, force an update of the UCF configuration every time you change
the UCF configuration on the application server. Ensure that you append a new character to the app
element’s version attribute to force the update. In the following example, 7.2.223 is changed:
<app id="shared" version="7.2.223" compatibilityVersion="7.2"/>
Element Description
<preferencesrepository> Contains a <repository> element. If this element
is not present, user preferences are stored in
the global repository, which can slow down
performance.
<repository_path> Specifies the path within the preference
repository in which to store preferences. If the
path does not exist at application startup, then it
is created.
<repository> Specifies the repository in which to store
preferences, preferably not the global repository.
To enable users to create presets using the presets editor, assign those users the
dmc_wdk_presets_coordinator role.
• To change the password for the dmc_wdk_preferences_owner user, run the following
command:
retrieve,c,dm_user where user_name='dmc_wdk_preferences_owner';
set,c,l,user_password
<enter new password>
save,c,l
3. Update the encrypted passwords in DA app.xml. Search for <presets> and update the
<password> attribute with the encrypted password. For example,
<presets>
...
<password>5P54fOKuCKM=</password>
...
</presets>
Search for <preferencesrepository> and update the <password> attribute with the encrypted
password. For example:
<preferencesrepository>
...
<password>5P54fOKuCKM=</password>
...
</preferencesrepository>
Documentum Administrator and Content Server.) If this connection has not been configured, you
cannot include external sources in your search.
4. Specify the RMI Registry host for the Federated Search server by setting the following:
dfc.search.ecis.host=host_IP
dfc.search.ecis.port=port
where
• host_IP is IP address or machine name of the Federated Search server.
• port is the port number that accesses the Federated Search server. The default port is 3005.
Modal popup
When you invoke a component that has been configured for modal popup, the user interface for the
component is displayed in a modal popup window. This modal popup window is placed on top of
the current window. The title of the modal popup window shows the title of the component page
followed by — Webpage Dialog. You can resize the modal popup window but cannot access the
parent window until you dismiss the popup window (also known as child window). When you try
to close a modal popup window by clicking the [X] button on the window, the framework treats
it as a canceling an action.
When you invoke another component that is configured for modal popup from the child window,
another modal popup window is placed on top of the child window to show the component user
interface. With stacked modal windows, you cannot access a parent window until you dismiss the
child window.
Modal popup is only supported in Internet Explorer, but in the 508 accessibility mode.
This configuration is added to the action definition because the modal popup behavior is tied to how
a component is invoked. The idea is to have the modal popup configuration in the action definition.
In the invocation element, you can specify the size of the modal popup and whether the framework
must refresh the parent window when the child window is closed. All action controls read the
configuration. If the configuration indicates that the component tied to this action displays in a modal
popup, it opens a modal popup window and submits the request to the component during action
invocation. The response is displayed in the modal popup window.
Element Description
<docbase> Specifies default repository name. When SSO
authentication is enabled but a repository
name is not explicitly spelled out by
the user nor defined in this element, the
sso_login component is called. In this
case the component prompts the user for the
repository name.
<domain> Specifies Windows network domain name.
<service_class> Specifies fully qualified name of class that
provides authentication service. This class
can perform pre- or post-processing of
authentication.
<sso_config> Contains SSO authentication configuration
elements.
<sso_config> Specifies name of the Content Server
authentication plug-in (not the authentication
<ecs_plug_in> scheme name). Valid values:
• RSA: dm_rsa
• CA: dm_netegrity
<sso_config> Specifies name of vendor-specific cookie that
holds the sign-on ticket. Valid values:
<ticket_cookie>
• RSA: CTSESSION
• CA: SMSESSION
<sso_config> Specifies name of vendor-specific header that
holds the username. Valid values:
<user_header>
• RSA: HTTP_CT_REMOTE_USER.
Prerequisites
• Set the precedence of authentication schemes in the com.documentum.web.formext.
session.AuthenticationSchemes.properties file. The Web Development Kit Development
Guide contains more information.
• Install the IBM WebSEAL server on a machine, and create an HTTP or HTTPS junction that links
the IBM WebSEAL server to Documentum Administrator.
The IBM WebSEAL documentation contains more information on installing and configuring the
IBM WebSEAL web server.
• Deploy Documentum Administrator on the application server machine, and connect to a Content
Server that has been configured for IBM WebSEAL SSO authentication. The Chapter 4, Deploying
Documentum Administrator section contains more information to deploy Documentum
Administrator on an application server. The EMC Documentum Content Server Installation Guide
and the EMC Documentum Content Server Administration and Configuration Guide contains more
information on configuring Content Server for IBM WebSEAL SSO authentication.
Note: Copy the user_header element into the authentication tag of the custom/app.xml file.
Prerequisites
• Deploy Documentum Administrator on the application server machine, and connect to a Content
Server that has been configured for Kerberos SSO authentication. The EMC Documentum Content
Server Installation Guide, and the EMC Documentum Content Server Administration and Configuration
Guide contains more information on configuring Content Server for Kerberos SSO authentication.
• Install a supported browser on the client machine.
• Register Documentum Administrator as a Service Principal in the Key Distribution Center (KDC).
The Create user account for Documentum Administrator in the active directory, page 42 section
contains more information on registering Documentum Administrator as a Service principal in
the KDC.
• On a Windows Server host, ensure that the following key and value have been added to the
registry for Java to use to acquire additional service tickets:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Value Name: allowtgtsessionkey
Value Type: REG_DWORD
Value: 0x01
Carry out the configurations specified in this section, in the <enabled>, and <domain> tags within the
<authentication> tag, and copy the configurations into the custom/app.xml file.
An application level tag is provided to specify the Kerberos domain, within the <authentication> tag.
Enter the domain name in the <domain> tag.
<kerberos_sso>
<domain><domain_name></domain>
</kerberos_sso>
The Kerberos SSO Authentication Scheme provides the option to fall back to the default login
mechanism to the web-application, on failure conditions. Set the <docbase_login_fallback> tag in
the <kerberos_sso> tag in custom/app.xml, to support the default login to the web-application,
as follows:
<docbase_login_fallback>true</docbase_login_fallback>
The following code snippet is an example of the final configuration for Kerberos in app.xml.
Copy the <authentication> tag from the custom/app.xml file into the custom/app.xml file.
You must register Documentum Administrator as a Kerberos principal in the active directory to enable
the Documentum Administrator application to participate in Kerberos authentication. A Kerberos
principal is a regular account on an Active Directory. The name of the principal can be something like
this "[email protected]". The realm name follows the "@" character in the principal. The principal
represents the Documentum Administrator application service in the Kerberos realm.
A Service Principal Name (SPN) is a unique name that identifies an instance of a service and is
associated with the login account under which the service instance runs. Windows 2008 account
names are not multi-part as Kerberos principal names. As a result, administrators cannot directly
create an account of the name HTTP/hostname.dns.com. Such a principal instance is created using
service principal name mappings. In this case, an account is created with a meaningful name and
hostname, and a service principal name mapping is added for HTTP/hostname.dns.com.
To use Kerberos after defining the SPN for the application server (on which Documentum
Administrator is deployed), the administrator must create a keytab (key table) file for Documentum
Administrator. Documentum Administrator requires the keytab file to authenticate itself to the Key
Distribution Center (KDC).
The administrator must use the ktpass command-line tool to register the SPN as a security principal
in the Windows Server Active Directory and to create a KeyTab file on the KDC. This ktpass.exe
is bundled with Windows 2008 Resource Toolkit package and must be installed separately. Run
ktpass.exe on the Active Directory Server machine and when the keytab file is generated move it to
the da_installation/WEB-INF folder on the application server machine.
ktpass /pass <password> -out <user-name>.keytab -princ <SPN> -crypto
AES128-SHA1 +DumpSalt -ptype KRB5_NT_PRINCIPAL
/mapOp set /mapUser <user-name>
Example 5-2. You can run the ktpass command with the following parameters:
ktpass /pass <password> -out da.keytab –princ
HTTP/[email protected] –crypto AES128-SHA1 +DumpSalt
-ptype KRB5_NT_PRINCIPAL /mapOp set /mapUser da
This command generates the da.keytab file on the Active Directory machine. Copy this file to the
da_installation/WEB-INF folder on the application server machine.
To configure Firefox:
1. Log in to the Windows active directory domain.
2. Open the Firefox browser.
3. In the Address field, type about:config and press Enter.
4. In the Filter field, type network.n.
All Preferences are listed.
• SPN:
http/[email protected]
Example 5-3. Create the configuration file with the following contents to specify Data Encryption
Standard (DES) as a permitted encryption type:
[libdefaults]
default_realm = WDKBLR.COM
forwardable = true
ticket_lifetime = 24h
clockskew = 72000
[realms]
WDKBLR.COM= {
kdc = WDKWIN5175.WDKBLR.COM
admin_server = WDKWIN5175.WDKBLR.COM
}
The following example is to specify the Advanced Encryption Standard (AES) as a permitted
encryption type along with the DES.
Example 5-4. Create the configuration file with the following contents to specify both DES and AES as
permitted encryption types:
[libdefaults]
default_realm = <Kerberos_domain_name>
forwardable = true
ticket_lifetime = 24h
clockskew = 72000
[realms]
<Kerberos_domain_name>= {
kdc = <KDC_server_address>
admin_server = <KDC_server_address>
}
Tomcat
WebLogic
In WebLogic_home_directory\user_projects\domains\your_
domain\bin\setDomainEnv.cmd file or the setDomainEnv.sh, set the following JAVA options:
set JAVA_OPTIONS=%JAVA_OPTIONS% -Xms256m -Xmx1024m -Xdebug -Xnoagent
-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005
-Djava.security.krb5.conf=<location of krb5.ini>
-Djava.security.auth.login.config=<location of krb5Login.conf>
-Djavax.security.auth.useSubjectCredsOnly=false
WebSphere
• In WebSphere_home_
directory\AppServer\profiles\AppSrv01\properties\wsjaas.conf, add the
following configuration:
HTTP-hostName-realm_Name { com.ibm.security.auth.module.Krb5LoginModule
required debug=true credsType="both" useKeytab="file:fullPathToKeytabfile"
principal="HTTP/hostName.realmName"; };
• Create a configuration file to specify the KDC server to which the application server should
connect, in the %WINDIR% (Windows) or in /etc/krb5 (AIX). The names of the configuration
files are krb5.ini (Windows) and krb5.conf (AIX). To support Advanced Encryption
Standard (AES) in the Websphere Application Server, specify aes128-cts-hmac-sha1-96 as a
permitted encryption type.
[realms]
WDKBLR.COM= {
kdc = WDKWIN5175.WDKBLR.COM
admin_server = WDKWIN5175.WDKBLR.COM
}
6. Experiment with other samples, especially Menu Zoo, Tree Control, and FX Control Pens.
Some samples have Create Test Cab and Destroy Test Cab buttons. Click these buttons to create
and delete a test cabinet in the repository and require Create Cabinet privileges.
Logs to monitor
It is highly recommended to check all logs periodically for errors and warnings.
Application Server
• Name: DocbaseName.log
• Location: $DOCUMENTUM\dba\log
• Purpose: Repository startup output and any warnings or errors
Index Server
Jobs
Some of the jobs discussed in this section are not active OOTB. They have to set to active and started
on a schedule. Ensure to set the run times so that they do not conflict other jobs and backup schedules.
• dm_ContentWarning: Provides warnings for low availability on DM content/fulltext disk
devices.
• dm_LogPurge: Removes outdated server/session, and job/method logs method.
• dm_StateOfDocbase: Lists the repository configuration and status information. Also, displays
the number of documents and total size of content.
• dm_AuditMgt: Removes old audit trail entries A key parameter is the cutoff in days, basically
how many days worth of audits to keep.
DQL queries
This section discusses the DQL queries to be run to check on audit trails and dmi_queue_items.
The following statements are some of the DQLs to determine the number of audit trails and queue
items that were in the repository:
Select count(*) from dmi_queue_item
Select count(*) from dm_audittrail
Sessions to monitor
This section discusses the different ways to monitor sessions.
• Documentum Administrator: Administration > User Management > Session
• DQL:
— execute show_sessions: To display all active and inactive sessions
— execute list_sessions: To display active sessions
• DocBasic ebs script: Set this script at a command line prompt to output how many active and
inactive sessions are current on the Content Server. Set the interval between output and how
many loops to run.
Improving Performance
There are several application guidelines that can significantly improve performance of your web
application. These interventions are described in the following topics.
Follow these recommendations for performance:
• Event handling
Server event handling provides code reuse across the application, state management, and better
performance.
• Queries
Set <showfolderpath> to false in the search component to speed queries.
• Tracing
Turn off tracing to improve performance. Navigate to the page wdk/tracing.jsp and deselect
all tracing flags.
Action Implementation
By default, arguments in multiple selection are passed in a query string. One query string is
created for selected object. Alternatively, you can cache arguments in the container class. The EMC
Documentum Web Development Kit Development Guide contains more information.
The states of all actions associated with dynamic action controls are evaluated when the
actionmultiselect control is rendered. A large number of selectable items or associated actions can
degrade performance. For example, if there are 10 selectable items and 100 associated actions, 1000
states will be evaluated.
Preconditions are called for each item in a list component or actionmultiselect control. The action
service checks preconditions for each control, and the control tag class renders JavaScript to
dynamically show, disable, or hide the controls based on the state of checkboxes. For 10 multiselect
items and 50 dynamic actions, this results in a possible 500 precondition calls before page rendering.
Action precondition classes must be optimized to manage performance. The actionmultiselect control
in particular should not have too many selectable items or associated actions.
You can configure the application to test action preconditions only when they are executed instead of
on page rendering. Set the onexecutiononly attribute of the precondition element to true as follows:
<precondition onexecutiononly="true" class=.../>
To reduce the query time for preconditions, you may be able to use a dm_sysobject with a custom
a_content_type attribute instead of a custom object type for type-specific actions.
Another strategy to improve action precondition performance is to cache custom attributes that are
used by the precondition by means of a custom attribute data handler. The EMC Documentum Web
Development Kit Development Guide contains more information.
String Management
The following coding practices can enhance the performance of your application:
• Replace string concatenation using "+" with string buffers, and initialize the string buffer to an
appropriate size.
• Strip white space and comments from JSP pages to reduce their size. WDK provides a utility to strip
white space and comments: CommentStripper, in WEB-INF/classes/com/documentum/web/tools.
The EMC Documentum Web Development Kit Development Guide contains more information on
using this tool.
Paging
The paged attribute on the datagrid control provides links that enable the user to jump between pages
of data within the enclosing data container. You should page your data for better performance and
display. If you set the paged attribute to true, the data provider or data container will render the
appropriate links only if the provider has returned multiple pages of data from the query.
Controls can retrieve any number of rows from a data provider unless you limit the cache size or
apply paging to the datagrid. The memory cache continues to grow as the user pages through entries,
because all attributes for displayed columns are cached in memory. An optimization setting will
limit the caching to object IDs only.
The cache size for the number of objects returned by a query is configurable in Databound.properties,
in WEB-INF/classes/com/documentum/web/form/control. This value defaults to 100, which will
cache the values for page sizes up to 100. If you increase the available page size in your application,
you should increase the cache size to match the largest page size. Paging is configured on a JSP
page that contains a datagrid. Limit the choices for page sizes by setting the pagesizevalues of the
datapagesize JSP tag.
The cache optimization setting useOptimizedResultCache in the properties file Databound.properties
located in WEB-INF/classes/com/documentum/web/form/control/databound limits caching to
object IDs only. This value is set to true by default, and object IDs are cached and data rows are
retrieved only for the current page in a listing display. An optimized cache is used for the Cabinet,
HomeCabinet, and MyFiles components. If your listing component extends objectlist, myfiles_classic,
or homecabinet_classic, you will inherit the optimization support.
To add optimization support to a listing component, you must construct an alternative,
simplified query that does not query all of the display attributes. Pass your query to the
DocbaseQueryService method buildObjectListFindByIDQuery(). Refer to the source code for DocList
in webcomponent/src/com/documentum/webcomponent/navigation/doclist for a detailed example.
Element Description
-Xms512m Starting memory heap size, in megabytes. In general, increased heap
size increases performance up until the point at which the heap begins
swapping to disk.
Element Description
-Xmx512m Maximum Heap size. For a single VM, Sun recommends that you set
maximum heap size to 25% of total physical memory on the server
host to avoid disk swapping. Increased heap size will increase the
intervals between garbage collection (GC), which thus increases the
pause time for GC.
-verbose:gc Turns on output of garbage collection trace to standard output.
Increased Java memory settings will increase the amount of time
before a major garbage collection takes and will also increase the
amount of time that garbage collection takes to execute. Garbage
collection is the greatest bottleneck in the application, and all
application work pauses during garbage collection.
Element Description
GC GC indicates minor garbage collection event, Full GC indicates full
garbage collection
776527K Amount of total allocated memory at start of minor collection
544591K Amount of total allocated memory at end of minor collection
1040384K Amount of total memory on host
0.4283872 secs Time in seconds to run garbage collection
Monitor memory usage by the Java process in the Windows task manager to determine whether your
memory allocations are optimum. Allocated memory as shown in consecutive GC traces continues
to grow until full garbage collection occurs. Full garbage collection takes much longer than minor
garbage collection, often on the order of 10 times as long.
The following table describes some memory troubleshooting inferences that can be drawn from
garbage collection.
Symptom Reason
Frequent full GC, starting point higher after Total memory too small, or memory leak
each full GC, decreasing number of GC between
full GC
Garbage collections take too long (GC 1 sec, full Too much memory allocated to JVM
GC 5 sec), server cannot create new threads
Java EE servers also have configurable settings for thread management which can significantly
affect performance. The symptom of insufficient threads is that, as the number of users increases,
performance degrades without increased CPU usage. Some users will get socket errors. In Tomcat,
the log catalina.log shows that all threads up to maxProcessors have been started, and new requests
are rejected with "Connection Reset By Peer". In WebLogic, the execute queue shows waiting threads
(0 idle threads, with queue length growing).
The symptom of too many threads is excessive context switching between live threads and degraded
response time.
Your application server documentation contains more information on these settings.
HTTP Sessions
Set the maximum number of HTTP sessions for your application in the custom/app.xml element
<application>.<session_config>.<max_sessions>. When the maximum number of sessions is reached,
subsequent requests return a serverBusy JSP page. A value of -1 indicates that there is no limit
on the number of sessions.
You can also override the normal Java EE session timeout when the top browser frame is unloaded,
such as when the user navigates to another website. Instead of the usual 60 minute HTTP timeout,
the timeout setting <client_shutdown_session_timeout> is set to 60 seconds when the main (top)
window has been closed.
Preferences
User preferences are stored as cookies and written to the repository. Since cookies are passed back
and forth with every request and response, there is a small increase in network traffic.
The configuration lookup methods lookupString, lookupInteger, and lookupBoolean have an optional
parameter consultPreference. Set to false to look up a configuration value from the component
definition and bypass a lookup of the user preference when the lookup is not needed.
Browser History
The number of history pages maintained on the server for each window or frame is set by
the requestHistorySize flag in the file FormProcessorProp.properties, which is located in
WEB-INF/classes/com/documentum/web/form. The default value is 3. If the value is empty or zero,
then history is maintained indefinitely. This setting could significantly affect performance. Decrease
the memory footprint per user by setting this value lower. If you set it higher, it will consume
more memory.
Too many form history objects can use up memory. Set the upper limit for the number of objects
as the value of maxNoOfFormHistoriesThreshold in FormProcessorProp.properties. The default
value is 50. A message will be displayed if the user tries to navigate past the maximum number of
pages in history.
Memory that is allocated to maintaining browser history is managed more efficiently on the Java EE
server if you generate framesets and frames using the <dmf:frameset> and <dmf:frame> tags. The
EMC Documentum Web Development Kit Development Guide contains more information.
Value Assistance
Performance is affected by the number of value assistance queries to be displayed in the properties
component and in other components that display a set of properties. Do the following to enhance
this performance:
• For each value assistance query, use Documentum Application Builder to turn on the option to
allow caching.
• Turn on client persistent caching in dfc.properties, which is located in WEB-INF/classes:
dfc.cache.enable_persistence = T
Limits the number of requests by telling the client browser and any intermediary caches such as
caching proxies to cache static elements such as *.gif, *.js, and *.css files, by adding a Cache-Control
response header. After the browser has received a response with this header, it will not re-get the
content until the maximum age or until the content is cleared manually from the browser cache.
The configurable value for this filter, init-param Cache-Control, is the maximum age in seconds of
the static content before revalidation, for example, max-age=86400 (one day).
Add URL patterns to specify the file types that will be cached. In the following example, *.gif
files are cached for up to two days:
<filter>
<filter-name>ClientCacheControl</filter-name>
<filter-class>com...ResponseHeaderControlFilter</filter-class>
<init-param>
<param-name>Cache-Control</param-name>
<param-value>max-age=172800</param-value>
</init-param>
</filter>
</filter>
<filter-mapping>
<filter-name>ClientCacheControl></filter-name>
<url-pattern>*.gif</url-pattern>
</filter-mapping>
Note: Safari browser does not apply this header. IE does not support both the cache-control and
compression mechanisms at the same time.
Tracing for these filters can be enabled through the standard tracing mechanism
(TraceProp.properties) or by adding the debug <init-param> element to the application deployment
descriptor (WEB-INF/web.xml).
<qualifiers>
<qualifier>com.documentum.web.formext.config.DocbaseTypeQualifier
</qualifier>
<qualifier>com.documentum.web.formext.config.AppQualifier
</qualifier>
</qualifiers>
For better performance, your qualifier should implement the IInquisitiveQualifier interface. At
startup, this interface is used to inform the qualifier of all relevant scopes defined in the action and
component definitions. The qualifier can return an empty scope value that is cached, when the
runtime context is not relevant.
Import Performance
You can limit the number of files that can be imported by a user during a single import operation.
This configuration setting is the <max-import-file-count> element with a default of 1000 in the
importcontainer component. Extend this component definition to configure a different maximum
value.
Certain environments have forward or reverse proxy web servers that do not support HTTP 1.1
chunking, which is used by UCF for content transfer. For those environments, you must configure
UCF to use alternative chunking, and you can tune the chunk size for the web server. In general, the
default chunk size works best for large file transfers. Smaller chunk sizes may enhance performance
for small (less than 1MB) files but degrade performance for large files. The EMC Documentum Web
Development Kit Development Guide contains more information.
Load Balancing
WDK applications can be load balanced using network load balancers. Session "stickiness" (or
affinity) must be used. That is, once a session has been established between a browser and a back-end
application server then all subsequent traffic from that browser must be routed to that server by the
load balancer for the duration of the session. The affinity can be done by IP address or by session
cookie depending on the available settings in the load balancing software.
Because content transfer is disk-intensive, best performance spreads the I/O of the WDK content
directory over a striped disk volume.
To fix this error, provide the correct BOF registry connection information in the dfc.properties
file or do not provide any connection information at all. The EMC Documentum Content Server
Installation Guide contains information on enabling a repository as a global registry.
No connection to repository
If a connection broker is not specified in the dfc.properties file of the Documentum Administrator
WAR file, the application server log contains the following error during application initialization:
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)
Caused by: DfDocbrokerException:: THREAD: main; MSG: [DFC_DOCBROKER_REQUEST_FAIL
ED] Request to Docbroker "10.8.3.21:1489" failed; ERRORCODE: ff; NEXT: null
Slow performance
A system sizing guide is on EMC Online Support (https://support.emc.com).
Set dfc.diagnostics.resources.enable to false in the dfc.properties file unless you are
using the DFC diagnostics. This setting uses a significant amount of memory.
Caution: After you disable tag pooling, clear the cached JSP class files which can still contain
pooled tags. Refer to your application server documentation to find the location of the generated
class files. For example, Apache Tomcat displays the following error message:
com.documentum.web.form.control.TagPoolingEnabledException: JSP tag
pooling is not supported.
Use the following checklist to verify that you have performed all required tasks when you install or
upgrade a DA.