Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

1/19/2016 Documentum 

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/documentum­content­server.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 non­zero 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/documentum­content­server.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( 
docbase­name, 
module­name, 
session­manager); 
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  code­sample  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/jboss­web.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/documentum­content­server.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
EB­INF\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://:/jmx­console 
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/jboss­log4j.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  jboss­log4j.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/APP­INF/classes/log4j.properties 

http://documentumgyan.blogspot.in/2009/05/documentum­content­server.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/documentum­content­server.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 start­up tracing options 
Only the last SQL statement tracing is turned on by default when a server starts. To start 
tracing other options at server start­up, 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 start­up 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/documentum­content­server.html 6/23
1/19/2016 Documentum Content Server Administration

ticket keys and operations using single­use 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 start­up 
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/documentum­content­server.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/documentum­content­server.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  user­defined
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/documentum­content­server.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 client­code obtain JDBC
Connections from a pre­configured 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  pre­configured  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/documentum­content­server.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 2­4. 

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/documentum­content­server.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/documentum­content­server.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/documentum­content­server.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/WEB­INF/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/documentum­content­server.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: 

[DM_SERVER_E_CREATE_OPERATING_SYSTEM_ACLS]:  Unable  to  create  server  context.  Error:


Access is denied. 

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/documentum­content­server.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@marmot­53> grep 12 /usr/include/sys/errno.h 
#define ENOMEM 12 /* Not enough core 

[DM_SERVER_E_LAUNCH_FAILED2]error:  "Unable  to  create  connection  for  process  because  the


creation of the execution context failed. Operating system error: errno: 12, message: Not enough space" 

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 database­specific error. In the enclosed
example  below,  "error  01017"  was  encountered  when  trying  to  establish  a  connection  to  the  underlying
Oracle database: 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA­01017 invalid username/password; logon denied 

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/documentum­content­server.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 e­Content 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/s1600­h/dmerror.bmp] 

http://documentumgyan.blogspot.in/2009/05/documentum­content­server.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 check­point " 
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. 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA­01017 invalid username/password; logon denied 

01017, 00000, "invalid username/password; logon denied" 
// *Cause: 
// *Action: 

http://documentumgyan.blogspot.in/2009/05/documentum­content­server.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. 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA­01034 ORACLE not available 

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? 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA­12203: TNS:unable to connect to destination 

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/documentum­content­server.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. 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA 12154 TNS:could not resolve service name 

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. 

DM_SESSION_E_CANT_MAKE_TEMP_CONNECTION  error:  Could  not  establish  an  internal,  temporary


database connection; database system error was: ORA­12545 TNS:name lookup failure 

12545, 00000, "TNS:name lookup failure" 
// *Cause: A protocol specific ADDRESS parameter cannot be resolved. 

http://documentumgyan.blogspot.in/2009/05/documentum­content­server.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/documentum­content­server.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/documentum­content­server.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/documentum­content­server.html 23/23

You might also like