Professional Documents
Culture Documents
Documentum Content Server Administration
Documentum Content Server Administration
Content Server Administration
Documentum Content Server Administration
How to change storage location?(on windows)
run the following dql to get your current storage_01 file system path:
select r_object_id, r_object_id, object_name, file_system_path from dm_location
then run an update DQL with the new storage location:
update dm_location object set file_system_path='E:\DOCUMENTUM\data\ \ 'content_storage_01' where
object_name='storage_01'
How to change the default storage of object type (may be your custom object type)
check filestore first, then change filestore location
select default_storage from dmi_type_info where r_type_name = 'custom type'
it will return the object id of the storage object for that type
default_storage
28000fa380000722
select name from dm_store where r_object_id='28000fa380000722'
shows the name of the current (store)
filestore_01
RUN DQL:
alter type custom_type set default_storage = 'filestore_02'
This query gives objecttype, storageid, filestorename,filesystempath
select a.name as object_type, b.default_storage as storage_ID,c.name as filestore_name,
e.file_system_path from dm_type a , dmi_type_info b , dm_store c ,dm_filestore d, dm_location e where
a.r_object_id = b.r_type_id
and b.default_storage = c.r_object_id and b.default_storage =d.r_object_id
and d.root = e.object_name order by 3
How to figure out which filestore is assigned to object types
select t.r_type_name TYPE, nvl(s.name,'filestore_01') FILESTORE, nvl(f.root,'storage_01') STORAGE,
s.media_type
from dmi_type_info_s t, dm_store_s s, dm_filestore_s f
where t.default_storage=s.r_object_id (+)
and t.default_storage=f.r_object_id (+)
select t.name TYPE, nvl(s.name,'filestore_01') FILESTORE, nvl(f.root,'storage_01') STORAGE,
s.media_type
from dm_format_s t, dm_store_s s, dm_filestore_s f
where t.default_storage=s.r_object_id (+)
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 1/23
1/19/2016 Documentum Content Server Administration
and t.default_storage=f.r_object_id (+)
Please find below the steps need to be performed for adding new mount point in DocMS.
1) create the new directory
2) create location object
DQL> CREATE "dm_location" OBJECT
DQL> SET "object_name" = 'storage_05',
DQL> SET "file_system_path" = 'x:\documentum\data\\content_storage_05',
DQL> SET "path_type" = 'directory'
DQL> GO
If this returns a valid r_object_id then it was created correctly. You can verify all your dm_locations if you
want:
DQL> select object_name, file_system_path from dm_location
DQL> go
3) Crate File Store
DQL> CREATE "dm_filestore" OBJECT
DQL> SET "name" = 'filestore_05',
DQL> SET "root" = 'storage_05'
DQL> GO
Again, this should return a valid r_object_id.
4) Change default storage to new created file store
DQL> ALTER TYPE dm_sysobject SET DEFAULT STORAGE 'filestore_05'
DQL> GO
5) Reinitialize
API> reinit,c
API>flush,c,querycache
API>flush,c,persistentcache
API>flush,c,persistentobjcache
API>flush,c,ddcache,
API>flushcache,c
*Note: *
All subtypes inherit changes to the default filestore for the parent type UNLESS a default filestore has
been specifically set for that child object type. To determine the default filestore for all object types issue
the following query:
select r_type_name, default_storage from dmi_type_info
Any object types (other than dm_sysobject) which have nonzero values for default_storage will have to be
changed individually by issuing an alter default filestore DQL statement for each type .
alter type dm_sysobject set default storage 'filestore_02'
go
exec reinit
go
6) Stop the docbase and app server of your webtop
7) Clean the dmcl cache, search in the Content Server and app server machine for all the dmcl
directories and clean them up
Weblogic Cache: in admin server\user_projects\domains\base_domain\servers\AdminServer\tmp\
And from managed server cache also need to be cleaned.
CS Cache:
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 2/23
1/19/2016 Documentum Content Server Administration
/home1/documentum/cache
/home1/documentum/dfc/cache
Method server cache:
/home1/documentum/dfc /jboss4.2.0/server/DctmServer_MethodServer/work/jboss.web/localhost
8) Start Docbase and app server
Documentum 6.5 JBoss details
In 6.5, JBoss is the application server that serves as the Java Method Server.
1.)
Q: Where is JBoss server instance directory located"
A Jboss server instance is created in the following directory:
\server\
Example: c:\documentum\jboss4.2.0\server\DctmServer_MethodServer
2.)
Q: Where is the staging/deployment directory for my web application"
A: Web application files are installed in the following location:
\server\\deploy\
Example, for MethodServer, it is installed at
\server\DctmServer_MethodServer\deploy\ServerApps.ear
3.)
Q: How do I run BOF modules via the Java Method Server"
A: BOF modules can be invoked in java code like:
myModuleObject = IDfSession.getClient().newModule(
docbasename,
modulename,
sessionmanager);
However, to run modules as jobs or methods via the Java Method server, simply set the method_verb to
the module name in the dm_method object.
Trying to invoke them like the codesample above within java method code running in the Java Method
Server will not work due to the way modules are loaded. The easier and recommended way is to simply
use the module name in the method_verb parameter.
4.)
Q: What is the user name and password for the JBoss jmx console and web console"
A: User name is "admin". The password is what you have entered during installation.
5.)
Q: What is the port number for my server instance"
A: The http port number for your server instance is what you have entered during installation. You can
also find it in ../deploy/jbossweb.deployer/server.xml, under tag.
Example:
maxThreads="250" maxHttpHeaderSize="8192"
emptySessionPath="true" protocol="HTTP/1.1"
enableLookups="false" redirectPort="9082" acceptCount="100"
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 3/23
1/19/2016 Documentum Content Server Administration
connectionTimeout="20000" disableUploadTimeout="true" />
6.)
Q: Where should I place my java method server classes"
A:The java_method folder is deprecated since 6 and should not be used.
d6.x webapp are sandboxed now, so it is a standard j2ee deployment.
Here is an example path directory:
C:\Documentum\jboss4.2.0\server\DctmServer_MethodServer\deploy\ServerApps.ear\DmMethods.war\W
EBINF\lib
7.)
Q: How do I start window service for my server instance"
A: Go to your service control panel, you can find the service for your instance. Start it as you would for any
other services. Below is the display name for BOCS, Java Method Server, IndexAgent, DMS, DFS and
DSCR:
Documentum Branch Office Caching Services
Documentum Java Method Server
Documentum IndexAgentn
Documentum Messaging Application Server
EMC Documentum Foundation Services
EMC| Documentum Solution Catalog Repository
8.)
Q: How to find out if my server instance is up and running"
A:
a)You can easily check the status by accessing
http://:/jmxconsole
if you see the page up, your instance is started.
b) You can also use the following command to check your server status:
cd to /bin directory and run
twiddle.bat s u admin p get "jboss.system:type=Server" Started
Where is :,
Example: SDETEST1:8990
You can find the value of in the stop scripts that the installer created for your server instance.
9.)
Q: How do I change logging level for my server instance"
A: You can modify your logging configuration for your server instance by editing /conf/jbosslog4j.xml.
Example, if you want to set org.jboss.* to TRACE level, you can change the following:
Note: By default, any category that is not defined in jbosslog4j.properties, the logging level is set to
DEBUG.
10.)
Q: How do I change logging level for my applications"
A: You can modify your logging configuration for your application by editing
ServerInstanceDir/deploy/appName.ear/APPINF/classes/log4j.properties
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 4/23
1/19/2016 Documentum Content Server Administration
First thing you need to do is to create a startup and shutdown script with proper logging settings :
Please make these two scripts in /opt/Documentum/dba(assuming /opt is installation directory)
StartDocumentum.sh
#!/bin/bash
sh dm_launch_Docbroker
sh dm_start_cbec_repo otrace_workflow_agent onettrace otraceauthentication odocbroker_trace
osqltrace
cd ../product/5.3/tomcat/bin
sh setenv.sh
sh startup.sh
echo "All services started"
StopDocumentum.sh
#!/bin/bash
cd /opt/Documentum/product/5.3/tomcat/bin
sh shutdown.sh
cd /opt/Documentum/dba
sh dm_shutdown_cbec_repo
sleep 10
sh dm_stop_Docbroker
echo "All services stoped"
As a Administrator it is a vital thing to know the logs location
and their significance($DOCUMENTUM=/opt/Documentum):
Docbase Logs:
/opt/Documentum/dba/log
Here your current log will be with name <>.log
Old logs will be created with old date and timestamp.
Index Server
Index Agent: opt/Documentum/shared/logs
Index Server: opt/Documenum/fulltext/IndexServer/var/log
Docbroker Log:
/opt/Documentum/dba/log/docbroker.<>.1489.log
Old logs will be created with old date and timestamp.
Method Server logs:
/opt/Documentum/dba/log//MethodServer
/opt/Documentum/product/5.3/tomcat/logs/catalina.out
Old logs will be created with localhost_log.<>.txt
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 5/23
1/19/2016 Documentum Content Server Administration
Ldap Sync report:
/opt/Documentum/dba/log/<>/sysadmin/LDAPSynchronizationDoc.txt
/opt/Documentum/dba/log/<>/sysadmin/080*.txt
Ldapsync trace file:
/opt/Documentum/share/temp/ldif/cbec_repo/trace_ldapsync_dmcl.txt
Few Important Reports:
/opt/Documentum/dba/log/<>/sysadmin/StateOfDocbaseDoc.txt
/opt/Documentum/dba/log/<>/sysadmin/ContentWarningDoc.txt
/opt/Documentum/dba/log/<>/sysadmin/DBWarningDoc.txt
/opt/Documentum/dba/log/<>/sysadmin/UpdateStatsDoc.txt
Documentum also provides different jobs that can be run using DA and they will
give you a report that can be very useful for you at times.
In the repository, job reports are stored in /System/Sysadmin/Reports. Each time a job
executes, the job report in this location is versioned.
The reports are also stored in the file system in %DOCUMENTUM%\dba\log\repository_
id\sysadmin ($DOCUMENTUM/dba/log/repository_id/sysadmin). The reports in this
directory are overwritten each time the job executes.
The job reports are also stored in %DOCUMENTUM%\share\temp\ldif\repository_name
($DOCUMENTUM/share/temp/ldif/repository_name) for access through Documentum
Administrator.
The syntax of the Trace method is:
dmAPIExec("trace,session,severity_level[,apilogfile],
option|facility")
Give trace level 10 to see the time taken to execute a session
Server startup tracing options
Only the last SQL statement tracing is turned on by default when a server starts. To start
tracing other options at server startup, specify the trace flags for the options with the o
option in the command line. The name of the option must immediately follow the o. No
space is allowed between the o and the option name. On Windows platforms, add the o
option to the command line by editing Content Server’s service entry.
Server startup trace options
Option name Captures this information in the server log
debug Session shutdown, change check, launch and fork
information
docbroker_trace connection broker information
i18n_trace Session locale and client code page usage
lock_trace Windows locking information
net_ip_addr IP addresses of client and server for authentication
nettrace Turns on RPC tracing (traces Netwise calls,
connection ID, client host address, and client host
name)
sqltrace SQL commands sent to the underlying RDBMS
for subsequent sessions
ticket_trace Traces import and export operations for login
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 6/23
1/19/2016 Documentum Content Server Administration
ticket keys and operations using singleuse login
tickets
trace_authentication Detailed authentication information
trace_complete_launch Unix process launch information
trace_workflow_agent Trace messages generated by the workflow agent
Changing server tracing after startup
Use the SET_OPTIONS administration method to turn tracing on or off after starting
the server. The syntax is:
EXECUTE set_options
WITH option='option_name',"value"=true|false
or
apply,session,NULL,SET_OPTIONS,OPTION,S,option_name,
VALUE,B,T|F
Set the value argument to true to start tracing and to false to turn it off.
Trace level severity values
Severity level Meaning
0 No messages, tracing is turned off
1 Level 1 trace messages
2 Level 2 trace messages
3 Level 3 trace messages
4 Level 4 trace messages
8 Dump and Load object information
10 Timing information
11 Information messages
Session tracing
The Trace method turns on session tracing at a specified severity level.
Trace levels define a minimum severity level for the trace messages sent to the
session log file, stored in %DOCUMENTUM%\dba\log\hex_repository_id\username
($DOCUMENTUM/dba/log/hex_repository_id/username), where hex_repository_id is the
repository ID expressed as a hexadecimal value and username is the account under which
the session is running. The server creates a separate session log for each new connection.
The syntax of the Trace method is:
dmAPIExec("trace,session,severity_level[,apilogfile],
option|facility"
Types of tracing
The areas for tracing are:
• Server based
• Session based
• Client based
Trace messages are sent to different types of log files:
• The server log file records root server activities.
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 7/23
1/19/2016 Documentum Content Server Administration
• The session log file records all SQL commands generated from DQL commands and
other messages determined by the specified severity level. Informational, warning,
error, and fatal error messages are always written to the session log file, even if
tracing is turned off.
• The api.log file, on the client, records all user API method calls and the responses
generated by the API.
The agent exec process generates generate trace log files for all jobs. The log files are put
in Temp/Jobs/job_name/job_name_and_date. The job_name_and_date is a concatenation
of the name of the job that generated the report and the date on which the report
was generated. Each time the job runs, a new file is generated. Previous files are not
overwritten.
To delete these files, you can use DQL:
DELETE dm_document OBJECT
WHERE FOLDER('/Temp/Jobs/jobname')
Substitute the job’s name for jobname.
Tracing from client(for 5.3 only)
Tracing from the dmcl.ini file:
to trace all operations from a client machine, regardless of the application you can enable
tracing from the dmcl.ini file.
Locate the appropriate dmcl.ini file and add the following lines to the
[DMAPI_CONFIGURATION] section:
trace_file=file_or_directory_name
trace_level=10
In most cases, the application must be reinitialized for the changes to take effect, and the
tracing to start.
For WDK applications you should restart the app server.
I was getting DM_SERVER_E_POOL_FULL in my log.I tried to resolve
the issue and I got it also.To resolve you can increase
concurrent_sessions parameter in the server.ini & restart the
content server.Default is 100, Better to set it at 500.
Please visit this URL by entering your user_id and password
https://solutions.emc.com/emcsolutionview.asp?id=esg16194
Also,
https://solutions.emc.com/emcsolutionview.asp?id=esg98347
Cause
1) you can run netstat an | grep 1489 to calculate how many
docbroker connect, total number of docbroker, if there is 20
established docbroker there. That means no more available
docbroker connect. No new connect will be accepted by docbroker.
This situation should not be occurred, definitely, something is
wrong, those connects connect be released by docbroker.
2) as this point, we need to go further and find out who
create those 20 docbroker connect and never release, you can
run the following command, the return results will tell which
process create docbroker connection, check why those process
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 8/23
1/19/2016 Documentum Content Server Administration
do not close connect to docbroker
unix command : netstat p | grep 1489
window command : netstat b | grep 1489
Resolution
you can run netstat b | grep 1489, and found that one third party
application (ProActiveNet agent) generated 20 connect to docbroker
and never release it. It definitely blocks all docbroker connection
port. shutdown this application, everything goes back to normal.
If not able to connect to content server
telnet 192.168.0.1 1489 from client machine.
10000 is the default port for the docbase service.
client_session_timeout in server.ini default is 5 minutes
and it is set in minutes.
You should check how many Active sessions are being created on
the Content Server. Use DA or run the Execute LIST_SESSIONS dql
(you'll have to count the active sessions yourself) or if you
have a windows machine with DFC installed you can download and
use the Xense Sessions Manager.If the number of Active Sessions
is roughly the same as the number of database sessions then it
does suggest that your client application is not releasing
sessions properly. Are you calling release() on the SessionManager
object (or possibly disconnect on the IDfSession if you have chosen
to use explicit session creation).If the number of Active Sessions
is much lower than the number of database sessions then you may well
have some sort of bug in the Content Server.
How many connections to Oracle does Documentum make?
In general Documentum needs at least one connection per *active* Documentum user. When we say
active user we understand that if a DM user does no work for longer than five minues then his sessions
are timed out and will be reconnected when and if needed.
Each connection to Documentum can use more than one Oracle connection. For example issuing the
query method or execquery with the readquery flag=false will use another one. Also fulltext queries use a
separate Oracle connection. Furthermore, if a separate process is launched (eg: by a userdefined
method) which makes its own connection to the docbase, then this process will require a new database
connection. As above, if this process then issues a 'query' or 'execquery' statement, for instance, yet
another database connection will be required.
How do I determine who has logged into Documentum, when they did and for how long?
Everytime a user connects to a Documentum server the connect method is logged in the following
directory:
$DOCUMENTUM/dba/log//
refers to a 16 digit hex filename which the session log is creates during the connect method. This log
shows, amongst other things when the user first connected, when and if their session was paused, when
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 9/23
1/19/2016 Documentum Content Server Administration
their session quit, and any errors that may have occurred in their session.
Using Unix utilities like find, sed, grep, etc it would be an easy task to prepare shell scripts that computed
how often users logged in, how long they stayed logged in for, etc.
What are the different types of 'Connection Pooling' that a Documentum developer?
There are three kinds of Connection Pooling in the Documentum World:
1) The Documentum eConnector JDBC Driver provides Connection Pooling.
In this, the eConnector manages the JDBC Connection Resources and helps the clientcode obtain JDBC
Connections from a preconfigured set of Connections.
2) The Application Server provides Connection Pooling.
The App Server manages the JDBC Connection Resources. The APP Server is configured to use
eConnector for JDBC as the internal Connection to be managed. Different App Servers need different
configuration.
3) The eContent Server provides Connection Pooling.
The eContent Server creates some preconfigured sessions to the Docbase, a disconnect does not
disconnect the session from the Docbase but merely puts it back in the Pool of available sessions. A
"connect" call will use one of the available sessions by impersonating the User whose credentials were
passed in the "connect" call.
Why is the command name displayed in square brackets when using UNIX ps?
Symptoms
Several old processes owned by the Documentum Install owner have the command name [document].
Cause
Hung or looping documentum session process.
Resolution
[document] references the documentum executable on UNIX.
A process in this state may safely be killed to free up resources.
The command name is displayed as [document] because the ps command cannot find the command
name or parameters originally stored in memory when the process was created. So, the command name
stored in the Kernel is displayed in square brackets.
dm_bof_registry
Starting in 6.0 every installation must have a Docbase designated as
a global registry even if you only plan to have the one Docbase and
even if you're not using distributed Content Servers. Specifying a
Docbase as a global registry is optional during Content Server
installation but a global registry must be configured before
connecting to the Docbase with any client applications.
To use BOF (TBO/SBO) requires that at least one of your Repositories
be designated as the BOF Global Registry. Each Application Server
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 10/23
1/19/2016 Documentum Content Server Administration
must identify the BOF Global Registry it will use via the
dfc.properties file.
There are two parts to setting up the BOF Global Registry:
1) making sure the "dm_bof_registry" Repository user is active.
2) making sure that the dfc.properties file on your Application
Server(s) are correctly referencing the Repository that is acting as
the BOF Global Registry and has the listed the correct user
information for the dm_bof_registry user.
1. Verifying that a Repository is the BOF Global Registry:
===================================
Using Documentum Administrator (DA), log into the Repository that
should be the BOF Global Registry, using an administrator account.
In Classic view, in the left navigation tree, click on the
Administration node. In the page that appears, under the
heading "User Management", click on "Search for Users".
Search for the following user: 'dm_bof_registry" (enter this value
next to the User Name label, and click Search).
View the properties of this user "dm_bof_registry" (click the (i)
icon).
Make note of the user's 'State' and 'User Login Name'.
If the user State is 'Inactive', then this Repository is not the BOF
Global Registry. To make this Repository the BOF Global Registry,
follow Steps 24.
If the BOF Global Registry user is 'Active', you need to verify some
information in your dfc.properties file on your Application Server
(s).
From the Application Server machine, locate the dfc.properties file.
Open this file in any text editor. Ensure the following three
attributes are set in the dfc.properties file:
dfc.bof.registry.repository =
dfc.bof.registry.username =
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 11/23
1/19/2016 Documentum Content Server Administration
dfc.bof.registry.password =
Without the above three entries, the BOF Global Registry will not be
set.
If these entries are missing or values are not complete, you will
need to add and populate these values. See the following steps for
more details.
2. Enabling the BOF Global Registry
===================================
The following section outlines the steps required to enable the BOF
Global Registry using the Documentum Administrator (DA) application.
Log into Documentum Administrator (DA) as an Administrator in the
Repository where you want to enable TBO/SBO functionality.
In Classic view, in the tree, click on the Administration node. In
the page that appears, under the heading "User Management", click
on "Search for Users".
Search for the following user: 'dm_bof_registry" (enter this value
next to the User Name label, and click Search).
View the properties of this user 'dm_bof_registry" (click the (i)
icon).
The properties page will appear. From the properties page, ensure
the following options and values are set to the following:
User State: Active
User Source: Inline Password
Restrict Folder Access: System
For security purposes, change the default password (make a note of
the new password).
Click OK on the 'dm_bof_registry' user 'Properties' page.
3. Verifying the dfc.properties file
====================================
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 12/23
1/19/2016 Documentum Content Server Administration
On each Application Server, locate the dfc.properties file. Open
this file in any text editor. Ensure the following three attributes
are set in the dfc.properties file:
dfc.bof.registry.repository =
dfc.bof.registry.username =
dfc.bof.registry.password =
Without the above three entries, the BOF Global Registry will not be
set.
Note: The password supplied in the entry 'dfc.bof.registry.password'
must be consistent with the password provided when setting
the 'dm_bof_registry' password via Documentum Administrator (DA).
The password must also be encrypted. For information on how to
encrypt the password, see the next section in this document,
entitled 'Encrypting Passwords for the dfc.properties file'.
4. Encrypting Passwords for the dfc.properties file
===================================================
The password provided in the 'dfc.properties' file must be
encrypted. A utility is provided to encrypt this password. The
following section outlines the steps required to invoke the password
utility program to encrypt a password.
From a command prompt, execute the following:
java com.documentum.fc.tools.RegistryPasswordUtils
Note If you are using java methods that use the TBOs/SBOs then you
will need the following entries on the %
DM_Home/config/dfc.properties file as well
dfc.bof.registry.repository =
dfc.bof.registry.username =
dfc.bof.registry.password =
===================================================
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 13/23
1/19/2016 Documentum Content Server Administration
Hope this will help you to understand more of Global Registry..
Documentum Uninstallation
Always run this query in order to clear database also after content server
uninstallation
/* */
DROP TABLESPACE DM_yourdocbasename_docbase including contents;
DROP TABLESPACE DM_yourdocbasename_index including contents;
disconnect;
exit;
You will get it in c:/documentum/server_uninstall/yourdocbasename/dm_DeleteTableSpace.sql
Method Server
If java method server is not running
It could have crashed due to an error. check the log in:
%DM_HOME%\tomcat\logs\
ACS Server
URL: http://:8080/ACS/servlet/ACS
Check if it is the same as the attribute acs_base_url in dm_acs_config.
Check if the URL http://:9080/ACS/servlet/Status
gives the output "Status: OK"
URL http://:9080/ACS/servlet/TestACS
check its output also.
If you are not getting AcsServer.log then check these two properties in
acs.properties file
mode.debug=true
tracing.enabled=true
If you are getting error related with ACS server problem may be because of
1. java method server is not running.
2. dm_acs_config object not configured properly.
3. acs.properties file on the Content Server not configured properly.
You have to do following:
1. check your acs.properties file on the Content Server.
/opt/Documentum/product/5.3/tomcat/webapps/ACS/WEBINF/classes/config/acs.properties.
a. Make sure the following is specified, check and compare acs config name with the real acs config object
in documentum. Make sure name is identical.
b. update the repository name, to be .
repository.acsconfig=BEY53SP2ACS1
repository.name=bey53sp2.bey53sp2
repository.login=dmadmin
c. Open the acs.properties file. If you have multiple docbases in there, which you may have. This will
interfere with ACS. So, they either have to all be up or you comment out all of the lines in there that refer
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 14/23
1/19/2016 Documentum Content Server Administration
to other repositories names and other login names and other. Leave only one in there , if you only have
one docbase that is currently running.
2. stop and restart the JMS and the one docbase.
Try the ACS url again and if it still doesn't work,then proceed to next steps.
3. edit the ACS config object
using Documentum Administrator
select Configuration node > ACS Server > Select Properties.
On Info tab.
select Manually enter projection targets, network locations and near stores.
you then specify your connection broker only. Network location leave empty,
same for near stores.
4. stop and restart the JMS and docbase.
If you aren't using a distributed configuration then try to disable the ACS server, you can do it from DA or
customizing your app.xml file.You can navigate to the following location on the app server to disable it
X:\virtual_root\webtop\wdk\app.xml
And modify the following tag.
false
true
true
Things to Check when an eContent Server Fails to Start Up
1. Check the Docbase log in $DOCUMENTUM/dba/log/.log for error messages.
Some common problem areas that will cause the Docbase to fail to start include: RDBMS problems,
operating system problems, or Docbroker problems.
OS PROBLEMS
Examples of operating system (OS)related problems include no access to the PDC by the Documentum
installation owner (Windows), not enough swap space, not enough semiphores, environmental variables
are incorrect, etc (UNIX). The errors reported in the Docbase log will be key.
This is an error that will appear in the log if the Documentum installation owner is unable to access the
PDC or BDC on Windows:
To resolve this, make sure the eContent Server machine can access the domain controller
This error will occur if the Server can't attach to the port that's specified in the services file:
Wed Feb 06 18:31:57 2002 796000 [DM_SERVER_I_START]info: "Starting server using service name:
prod
Wed Feb 06 18:31:57 2002 828000 [DM_SERVER_E_REGISTER_IN_USE]error: "The server failed to
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 15/23
1/19/2016 Documentum Content Server Administration
register itself as there is already a server on port (10000). Error (515) Server name already in use.
Winsock error: 10048."
To resolve this, see if any Documentum process are still running for this Docbase. If there aren't any, try
changing the port number in the Services file for the Docbase. The $DOCUMENTUM/dba/config//
server.ini file shows the Service that the Docbase is using.
Here's an example of an error that will occur on UNIX if $DM_HOME/bin is not included in the library path
on UNIX:
ld.so.1: documentum: fatal: libvdk200.so: open failed: No such file or directory
Whenever you get a Unix error, use the grep utility to retrieve the error in /usr/include/sys/errno.h:
dmadmin@marmot53> grep 12 /usr/include/sys/errno.h
#define ENOMEM 12 /* Not enough core
RDBMS PROBLEMS
When the Server comes up, it must talk to the database. The Server attempts to connect to the database
as the user specified as the value of "database_owner" parameter in the server.ini file and using the
password in the dbpasswd.txt file. Both the server.ini and the dbpasswd.txt files are stored in the path
$DOCUMENTUM/dba./config/.
The most important piece of information you are looking for is the databasespecific error. In the enclosed
example below, "error 01017" was encountered when trying to establish a connection to the underlying
Oracle database:
In Oracle, the quickest and easiest way to find out a specific error is to use the error utility. This utility will
sometimes give additional information on what is wrong and/or how to fix the resulting problem:
marmot% oerr ora 01017
01017, 00000, "invalid username/password; logon denied"
// *Cause:
// *Action:
INTERNAL DOCBASE PROBLEMS:
Sometimes the server will not start because of the current state of the Docbase (the underlying database
tables).
Example of eContent Server startup failing:
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 16/23
1/19/2016 Documentum Content Server Administration
# Making Superuser psmdmadmin cabinet completed.
Tue Dec 09 12:30:13 1997 781000 [DM_GROUP_E_CANT_ADD_USER_TWICE]error: "Cannot add user
psmdmadmin to the docu group more than once."
[DM_GROUP_E_CANT_ADD_USER_TWICE]error: "Cannot add user psmdmadmin to the docu group
more than once."
# Adding PSMDMADMIN to docu group fail.
Tue Dec 09 12:30:13 1997 796000 [DM_SESSION_E_INIT_FAILURE1]error: "Failure to complete Start
Up initialization." Parms(1)=2147483647
The problem occurs because in the server.ini the docbase owner is specified in lower case but the
Windows logon is in uppercase. The problem was resolved by starting up the server with the "osqltrace"
option.
Sometimes the log will only show:
Documentum eContent Server (Version 4.1.5.05 AIX.Oracle)
(c) Copyright Documentum, Inc., 1991 2000
All rights reserved.
Fri Apr 19 14:47:36 2002 179801 [DM_SERVER_I_START_SERVER]info: "Docbase prod attempting to
open"
Fri Apr 19 14:47:36 2002 181913 [DM_SERVER_I_START_SERVER]info: "Docbase prod process identity:
user(dmadmin)"
Fri Apr 19 14:47:39 2002 101234 [DM_SERVER_I_START_ID]info: "Docbase prod was not successfully
opened. Docbase id: (11101)"
To get more information on why this is failing, restart the Docbase using the osqltrace option.
This problem can occur for a number of different reasons, the rows that's being queried for doesn't exist, a
database error is actually occurring, or something returned in the data is not what the Server expects,
etc...
Run the query that is shown directly before the message saying that the docbase was not successfully
opened, directly in SQL to get a better idea of why this is failing.
2. To get more information of the error messages in the log file, use the dm_error utility. Here is an
example of the utility's output:
marmot% dm_error DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION
or visit /opt/Documentum/product/5.3/bin and user dm_error
[http://3.bp.blogspot.com/_27J8JyIGGuU/SjiNVD9oWjI/AAAAAAAAAUQ/tkt6ojI9UU4/s1600h/dmerror.bmp]
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 17/23
1/19/2016 Documentum Content Server Administration
/export/disk4/dm41/product/4.1.5/messages/dmsess.e:
[DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION]
"Could not establish an internal, temporary database connection (database_name = %s, docbase_owner
= %s, connection_string = %s); database system error was: %s"
CAUSE: A failure occurred during an attempt to establish an internal, temporary database connection. The
database system refused the connection attempt.
ACTION: Check the database system error message, and resolve the database problem it describes. This
may be temporary; repeat the operation. If the problem persists, intervention by your database system
administrator may be required.
3. How do I tell if the Server is up & running?
If you see this line in the Docbase log, then the Server is running successfully:
Thu May 16 07:38:19 2002 616482 [DM_SERVER_I_LISTENING]info: "The server is listening on network
address (Service Name: s28o426, Host Name: akira)"
Users will be able to connect to the Docbase after the Server successfully sends a checkpoint to the
DocBroker, letting it know that's it's available for connections:
Thu May 16 07:38:19 2002 617617 [DM_SERVER_I_START]info: "Sending Initial Docbroker checkpoint "
Thu May 16 07:38:19 2002 675048 [DM_DOCBROKER_I_PROJECTING]info: "Sending information to
Docbroker located on host (akira) with port (1489). Information: (Config(s28o426), Proximity(1),
Status(Open))."
If the Docbase was started using osqltrace, sometimes it's hard to tell when the Server is running
because so many queries are being written to the log. Note that when starting the Docbase using
osqltrace, queries will continue to write to the log even after the Server is running, because other Docbase
operations are running.
If you see this query in the log, the Server is running:
select all r_object_id from dmi_workitem_s where r_runtime_state in (0,1) and r_auto_method_id !=
'0000000000000000' order by r_priority desc, r_creation_date desc
If you see queries from dm_job_s and/or dmi_change_record_s this also indicates that the Server is up
and running.
Documentum and Oracle database connection issues
Installation fails when 'Configure Docbase' attempts to connect to the Oracle database. Below is a list of
possible problems which may be reported from the Oracle database. To troubleshoot the problem identify
the error associated with the error and its possible resolutions.
01017, 00000, "invalid username/password; logon denied"
// *Cause:
// *Action:
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 18/23
1/19/2016 Documentum Content Server Administration
Generally, this problem occurs when you are starting a docbase and it fails to connect due to an incorrect
password or can not access the dbpasswd.txt file.
1. Verify the docbase owner specified in server.ini and the password specified in the dbpasswd.txt file is
the correct database password. Both of the files are located in
DOCUMENTUM\dba\config\. Attempt to connect to Oracle using the name and password listed.
plus33 /@
Is your connect successful?
If your connect was not successful verify the Oracle password of the docbase owner or alter the password
of the docbase owner by connecting to Oracle as the system user and issuing the following statement
'alter user identified by .
2. If your connect was successful then verify the path to the dbpasswd.txt file the server.ini file is correct
and contains the proper password.
01034, 00000, "ORACLE not available"
// *Cause:
// *Action:
1. Verify that the OracleService has been started. You can do this from Control Panel/Services
2. Verify that the ORACLE_SID and ORACLE_HOME environmental variables are set and defined
correctly in your TNS alias. Ensure that your TNS alias is configured properly.
Is the ORACLE_SID correct?
Is the host name correctly identified?
Is the protocol identified tcp/ip?
Are you spelling the TNS alias correctly in your connect string?
12203, 00000, "TNS:unable to connect to destination"
// *Cause: Invalid TNS address supplied or destination is not listening.
// *Action: Ensure that the listener is running at the remote node, or ensure
// that the ADDRESS parameters specified are correct.
1. Verify that the OracleTNSListener Service has been started. You can do this from Control
Panel/Services
2. Ensure that your TNS alias is configured properly. See section 1.4.4.5.5.
Is the ORACLE_SID correct?
Is the host name correctly identified?
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 19/23
1/19/2016 Documentum Content Server Administration
Is the protocol identified tcp/ip?
Are you spelling the TNS alias correctly in your connect string?
3. Test your alias by connecting to Oracle with plus32/plus33.
plus33 @
4. Check the permissions on the tnsnames.ora file Everyone should have change permission.
5. Check the location of the tnsnames.ora file. It should be in the directory \ORANT\NETWORK\ADMIN.
12154, 00000, "TNS:could not resolve service name"
// *Cause: The service name specified is not defined correctly in the
// TNSNAMES.ORA file.
// *Action: Make the following checks and correct the error:
// Verify that a TNSNAMES.ORA file exists and is in the proper
// place and accessible. See the operating system specific manual
// for details on the required name and location.
// Check to see that the service name exists in one of the
// TNSNAMES.ORA files and add it if necessary.
// Make sure there are no syntax errors anywhere in the file.
// Particularly look for unmatched parentheses or stray characters.
// Any error in a TNSNAMES.ORA file makes it unusable. See
// Chapter 4 in the SQL*Net V2 Administrator's Guide. If
// possible, regenerate the configuration files using the Oracle
// Network Manager.
1. Verify that the OracleTNSListener Service has been started. You can do this from Control
Panel/Services
2. Ensure that your TNS alias is configured properly. See section 1.4.4.5.5.
Is the ORACLE_SID correct?
Is the host name correctly identified?
Is the protocol identified tcp/ip?
Are you spelling the TNS alias correctly in your connect string?
3. Test your alias by connecting to Oracle with plus32/plus33.
plus33 @
4. Check the permissions on the tnsnames.ora file Everyone should have change permission.
5. Check the location of the tnsnames.ora file. It should be in the directory \ORANT\NETWORK\ADMIN.
12545, 00000, "TNS:name lookup failure"
// *Cause: A protocol specific ADDRESS parameter cannot be resolved.
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 20/23
1/19/2016 Documentum Content Server Administration
// *Action: Ensure the ADDRESS parameters have been entered correctly;
// the most likely incorrect value is the node name.
Things to check for when getting this error are:
1.. Verify that the OracleTNSListener Service has been started. You can do this from Control
Panel/Services
2. Ensure that your TNS alias is configured properly. See section 1.4.4.5.5.
Is the ORACLE_SID correct?
Is the host name correctly identified?
Is the protocol identified tcp/ip?
Are you spelling the TNS alias correctly in your connect string?
3. Is the host name and the computer name of the machine you are running on the same.
From the command prompt type in 'hostname' is the value returned the hostname you have identified in
the TNS alias. hat is the Computer Name listed in Control Panel/Network/Idenfication. Does it agree with
the host listed in your TNS alias.
What is the host name listed in Control Panel/ Network/ Protocols/TCP IP/DNS? Does it agree with the
host listed in your TNS alias?
If there are inconsistencies this should be corrected. Please note hostname and computer name are NOT
case sensitive.
Session Management and Connection Pooling
A session is established once a connect API call is invoked by the client program. The connect API call is
discussed later in this paper. The following happens once a session is established:
1. A thread is created by dmcl for this session on the client.
2. Content server creates a thread/process for this session on the server side.
Client side dmcl sessions ( point 1 above) do not have a timeout. A client side session stays in the client
process memory until an explicit disconnect is called on the session.
However, server side session processes (point 2 above) has a timeout controlled by
'client_session_timeout' in the server.ini file. The default timeout is 5 minutes. In a default configuration, if
there is no activity by the client side session for 5 minutes, the corresponding process/thread on the server
side is killed. Inactivity means no API calls are invoked using the session but a disconnect API call is not
called.
If an API call is invoked after 5 minutes, a new process/thread is created behind the scenes on the content
server for this client session without requiring a new login or connects and the API call goes through
without any error provided the arguments are correct.
There is a limit to the number of sessions that can be handled at a time. This limit is different for dmcl
(client) and server. For dmcl, the max_session_count key in dmcl.ini controls the max number of sessions
allowed at a particular time. For the server, this is indicated by concurrent_sessions in the server.ini.
Please note that the number of open sessions on the client side may not match the number of open
sessions on the content server. A client might create a session and may be sitting idle for more than the
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 21/23
1/19/2016 Documentum Content Server Administration
client_session_timeout. In this scenario, the content server kills the process and the session does not
count towards the session limit on the server side. However, as a disconnect has not been called, this
session is still counted toward the max_session_count limit by the dmcl and it the session still consumes
memory on the client side.
Session Management (Connection Pooling)
The information in the previous section details the behavior without connection pooling still applies to
session management with connection pooling. The major difference is calling a disconnect on a session
causes the session to go back (released) to an internal pool instead of being cleaned up. Once a session
is released to the pool it is marked as 'free' and can be used for other requests. The client programs using
DMCL are not aware of connection pooling. Sessions are still created using the 'connect' call.
A simplified version of the algorithm DMCL follows when a session is requested when connection pooling
on is presented below:
1. Check if a session for the same user/docbase exists in the pool. If yes, return that session.
2. Check if a session for a different user exists in the pool for the docbase that we are trying to connect. If
yes, change the user, clean up the user caches, authenticate the user and return the session.
3. If the above two steps fail, create a new session and return.
New API command 'assume' is provided to support connection pooling at application level. Command
assume authenticates a user over an existing connection and makes the user the new owner of the
session. Sessions in the pool are disposed (an actual disconnect) after the same session has lived for a
defined number of seconds, if the session is in the 'free' state. The default is 300 seconds (5 mins) and is
controlled by the connect_retry_interval in the dmcl.ini file.
The 'connect_pooling_enabled' flag in the dmcl.ini turns on connection pooling and is true by default if not
specified. The 'dumpconnectpool' API call is used to examine the session pool on the client side. It lists all
the free and used connections in the pool. Similarly, the SHOW_SESSIONS and LIST_SESSIONS
methods can be used on the server side to find out the current active sessions.
Unlike traditional connection pooling, a bunch of sessions are not created on startup. Instead, the
connection pool grows as the client program starts making connect calls. This is because a user session is
not a shared resource.
Advantages of Connection Pooling
It is always advisable to use connection pooling because of its distinct advantages. It utilizes existing
sessions and hence improves the session connection time. It may also reduce the overhead on the
content server by reducing session usage. Each content server session corresponds to two or more
connections to the database.
Finally, all EMC Documentum web applications like Webtop, WebPublisher, and DA etc have been
designed to take advantage of connection pooling. A user who logs on to a WDK based application
creates and releases multiple content server sessions as part of the same HTTP session. Typically, a
session is created/released every time a user navigates to a different page. Disabling connection pooling
in this scenario will have a huge impact on performance.
Connection pooling should only be disabled for troubleshooting and debugging session related issues.
Posted 14th May 2009 by prabhakant shukla
2 View comments
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 22/23
1/19/2016 Documentum Content Server Administration
chethana October 4, 2009 at 7:47 AM
Hi,
Noticed that ur blog contains useful info. It wud be great if u cud please let me know about the following,
or at least give me some links that may contain the info to the following:
1) What does a client see when a content server graceful shutdown is run? What happens with an
immediate shutdown?
2) How graceful shutdown could lead to webtop application errors seen by users
Reply
prabhakant shukla October 14, 2009 at 11:32 AM
We generally create script for shutdown and startup.
Please create your own script and see the logs generated while shutdown process.
ps ef|grep combination should be used to see the process currently running.
Please ask any specific question if you have any.For me the question is not clear.
Reply
Enter your comment...
Comment as: Google Account
Publish
Preview
http://documentumgyan.blogspot.in/2009/05/documentumcontentserver.html 23/23