Skip to content

A tool to export Documentum (custom) object model as a graph

Helpful tool

Stephane Marcon´s Blog

One of Documentum’s strengths is its strong object orientation and the possibility to define custom object types (the so-called doctypes) which inherit both attributes and behaviors from their ancestor type.

There are many cases when exporting a portion or the complete types’ hierarchy of a given repository in a readable format is really useful:

  • inserting a description of a subset of a doctypes in a documentation
  • quickly visualizing the hierarchy of doctypes while discussing design decisions

Although it has not always been officially publicly published, the “Documentum Object Relational Diagram” has always been one of the most useful technical documentation of the platform. This diagram presents the different “system” object types of the platform and their relations.

extract_documentum_or_diagram Extract from the Documentum Object Relational Diagram for 6.0

But what if you want to easily visualize your custom doctypes (and ideally link those to the existing out-of-the-box/system doctypes)?…

View original post 970 more words

Some Not-So-Obvious iDQL and iAPI Commands

dm_misc: Miscellaneous Documentum Information

I am willing to wager you are already familiar with the iAPI32* and iDQL32 command line clients for Documentum.  (If not, these clients allow you to run API commands and DQL queries from the operating system command line.  They can be found on the Content Server at %DM_HOME%bin.) But did you know there are a few not-so-obvious commands that these clients posses that make them easier to use?

iAPI32

?

You can run DQL queries and retrieve query results directly from the iAPI32 interface by using the ‘?’ command. The ? command allows you to enter a DQL SELECT statement in iAPI32 and returns the results immediately, just like iDQL32.  This is a very handy if you are working in iAPI32 and need to run a quick query.

API>?,c,select r_object_id, object_name from dm_document where folder('/Temp');

----------------  -------------------------------------
090000018000151b  Room Upgrade Fri Oct 16 14:28:27 PDT
0900000180001d05  TargetSetup.Result
0900000180007941  VD…

View original post 442 more words

How to Reset ‘Stuck’ Documentum Jobs

dm_misc: Miscellaneous Documentum Information

One of my Documentum system administrators continued to get messages like the one below:

Job “dm_StateOfDocbase” failed to execute successfully. The message was:
“[ERROR] [AGENTEXEC 3836] Detected while processing dead job
dm_StateOfDocbase: The job object indicated the job was in progress, but the job was not actually running. It is likely that the dm_agent_exec utility was stopped while the job was in progress.”

——————————
COMPUTER-READABLE DATA
——————————
>>>begin_data_block
>>>data_block_type=docbase_event
>>>data_block_name=none
>>>docbase_name=globalregistry
>>>event_name=Job_Failure
>>>sender_name=dmadmin
>>>recipient_name=dmadmin@mail.com
>>>recipient_login_name=dmadmin
>>>object_name=dm_StateOfDocbase
>>>message_text=[ERROR] [AGENTEXEC 3836] Detected while processing dead
>>>job dm_StateOfDocbase: The job object indicated the job was in progress, but the job was not actually running. It is likely that the dm_agent_exec utility was stopped while the job was in progress.
>>>queue_item_id=1b0000000000d919
>>>end_data_block

Though not serious, it is troubling and if it doesn’t self-correct, it needs to be investigated.  Robin East wrote about this problem in depth in his post http://robineast.wordpress.com/2008/01/.  I will give…

View original post 197 more words

How to check if method server is running?

Check if your java method server is up and running. Try accessing the following url

http://<hostname&gt; : 9080/DmMethods/servlet/DoMethod
It should show “Documentum Java Method Server”.

Server and Method Server startup and shutdown order

1) Docbroker – Independent of any other application
2) Repository – Dependent on Docbroker
3) Java Method Server – Dependent on Docbroker and Repository
4) Index server – Independent of any other application
5) Index agent – Dependent on Index server

 

For startup follow the steps from 1 to 5 and for shutdown follow the reverse steps.

How big is my document?

Tech Fix

[UPDATE] In version 5.3 SP6 and later, the semantics of “first file” mentioned below is the file at page 0 of the attached content object (no matter how many times the content object has been replaced via “check in as same version”). I don’t have access to an environment where I could try to reproduce the behavior related to check in as same version discussed below. See the discussion in comments for more information on the current behavior.


Of course, I could retrieve the document using one of the available mechanisms (Webtop, DFC, API, etc.) and save it locally and then inspect the file size on the filesystem.

However, if all I wanted to know was the size of the document in the repository one would think it should be easy to tell from the metadata. Well, it is in most cases but if you really wanted to be sure…

View original post 467 more words

Auditing Queries

Query to get the all list of events registered for auditing

select r.registered_id, r.event,r.user_name
from dmi_registry r
where r.is_audittrail = 1

Query to get list of events corresponding to the object types registered for auditing
select t.name,r.event,r.user_name,t.name
from dmi_registry r, dm_type t
where r.is_audittrail = 1
and t.r_object_id = r.registered_id

Query to get list of events corresponding to the user types registered for auditing
select t.user_name,r.event,r.user_name
from dmi_registry r, dm_user t
where r.is_audittrail = 1
and t.r_object_id = r.registered_id

DQL to create new Filestore and moving the existing content to it

Query to create new location
  CREATE “dm_location” OBJECT
SET “object_name” = ‘location_name’,
SET “file_system_path” = ‘file_system_path’,
SET “path_type” = ‘directory’;
Query to create new filestore
CREATE “dm_filestore” OBJECT
   SET “name”=”filestore_name”,
  SET “root”=”‘location_name”
Query to migrate content to new filestore
Execute MIGRATE_CONTENT With
target_store=’filestore_name’,
max_migrate_count=10000,
remove_original=True,
sysobject_query=True,
log_file=’log_path’,
query=’r_object_id in (select r_object_id from dm_document)’

 

Flush and Publish data dictionary

After creating new types in documentum or updating existing type, we may come across situation that it is not getting reflected so we have to clean and publish the data dictionary.

 

Use the below API to publish Datadictionary after updating attributes using

publish_dd,session[,locale][,type][,attribute][,force_publish]

To flush any cache, use this

flush,session,cache_keyword,[object_type][,reset_change_bit][,include_subtypes]

cache_keyword can be one of the below:

querycache, to flush the user’s persistent query cache
aclcache, to flush the ACLs in the session cache
groupcache, to flush the groups in the session cache
ddcache, to flush the data dictionary objects cached on the client host
registrycache, to flush registry objects in the session’s registry cache
persistentcache, to flush the objects and query results in the user’s persistent client cache
persistentobjcache, to flush the objects in the user’s persistent client cache

 

Finding an Object’s Content File

Finding an Object’s Content File

dm_misc: Miscellaneous Documentum Information

Everyone knows that Documentum (in its default state) stores content on the file system and retains a pointer to the content in its database.  Likely, you have navigated the file store on the Content Server and discovered directories like ..datadocbasecontent_storage_0100000180 0023.  How in the world does this directory structure relate back to a particular object?

Documentum uses several objects to hold persistence information about content; we will use five of them to determine where the content for an object with r_object_id = '0900000180023d07' resides:  dmr_content, dm_format, dm_filestore, dm_docbase_config, and dm_location.  The following query will get us all the information we need to assemble the path to the object’s content.

select data_ticket, dos_extension, file_system_path, r_docbase_id from dmr_content c, dm_format f, dm_filestore fs, dm_location l, dm_docbase_config dc where any c.parent_id = ‘0900000180023d07’ and f.r_object_id = c.format and fs.r_object_id = c.storage_id and l.object_name = fs.root

Result

data_ticket = -2147474649
dos_extension = txt

View original post 268 more words