Creating Documentum objects with content by using the content file in CENTERA

martin.dimitrov
edited August 19, 2016 in Documentum #1

Hello,

A client is using CENTERA for storing content files. Now the client wants to create Documentum objects using the content file stored in CENTERA. I understand that I have to create dmr_content object and dm_document objects. I understand the relationship between dm_document and the dmr_content objects but I am not sure what how to identify the file stored in CENTERA. Also, I understand thatI need to determine where the file will be stored in the file system by determining the data_ticket.

Has anyone the same issue - creating Documentum objects with content by using the content file in CENTERA?

Best Answer

  • DCTM_Guru
    edited August 19, 2016 #2 Answer ✓

    "...All of this said, Centera should have deduplication functionality. This means that when the exact same file is stored in Centera several times, it should always return the same C-Clip."

    - So does this mean if a file already exists on Centera and you try to import same file into Documentum repository, the Content Server will store the same C-Clip value that points existing file and will not try to calculate a new one?

Answers

  • DCTM_Guru
    edited August 16, 2016 #3

    If you map Centera as filestore, then the Content Server will create objects in Centera automatically when you import the document into the repository.  Content Server treats Centera like any other file store (eg SAN, NAS, etc).

  • martin.dimitrov
    edited August 16, 2016 #4

    Thanks for the answer!

    I think I didn't describe the case fully.

    The client uses CENTERA as a storage.

    Several vendors are working for this client.

    1. The first group of vendors writes the files directly into the CENTERA storage and uses the CENTERA API to get/write the files and their metadata

    2. The second group of vendors (indeed just the company I am working in) uses Documentum to store the files. Our applications write in the same CENTERA storage, not directly but using Documentum and DFC.

    Now the client wants us to to write a program which will create Documentum objects for each CENTERA content file stored in the CENTERA storage, that was created by the group 1 vendors.

    How can I do this?

    Thanks a lot.

  • DCTM_Guru
    edited August 16, 2016 #5

    Not sure if this is possible.  Documentum used to have a way to define the content "linking" without having it imported into repository.  They have since deprecated the method.  I would contact EMC support and get the official word on whether this is possible.

  • martin.dimitrov
    edited August 16, 2016 #6

    Thank you!

    I have downloaded the C# Wrapper for CENTERA: .NET wrapper for the Centera SDK download | SourceForge.net

    1. My idea is to read the Clip ID's for the files stored in CENTERA (only those created by the vendors of the first group).

    2. Then using DFC to create dmr_document objects for each of them and set the relevant data in the newly created objects.

    For the 1st part: I still don't know how to sequentially read the clip's ids. I reached the conclusion that I need the clip ID because I found the following command: $ dmemcshow -a mtlsvro003 -s -c 8J6C0S0EPQM57eCV1N8OLR9S6G4

    The last parameter is the CLIP ID, so I guess the r_object_id of the dmr_content object is somehow related to the CLIP ID stored in CENTERA. I don't know the relationship though but clearly, there is one.


    P.S. It's OK to import it into a Documentum Repository (indeed this is the idea of the project - all documents in CENTERA produced by the vendors of the first group to be migrated into Documentum), I just don't know how to make the relationship between a newly dmr_content object and the CLIP ID for the document stored in CENTERA.

  • dnvhariprasad
    edited August 16, 2016 #7

    It is not possible unless you "import" the documents into repository.  if the first group is writing the files to centera, still they are foreign files for DCTM.  You need to write a DFC utility or (something else) to monitor the storage and import files into repository automatically.

    Do you need the files for group 1 again?

  • martin.dimitrov
    edited August 17, 2016 #8

    Hello.

    "Do you need the files for group 1 again?" -  this is the problem, if I import the content files into a repository then they will be doubled in CENTERA.

    This is kind of a reversed task, meaning:

    1. generally, when we import file to a repository that stores the files into CENTERA then the file is stored in both CENTERA and Documentum

    2. Now I need the reverse task - creating Documentum objects that already have content files in CENTERA


    "It is not possible unless you "import" the documents into a repository.  "  - I will import the documents into a repository but then I will have stored them twice, which is not OK because we are talking for millions of content files that are not into any repository.


    That's why I am asking for the relationship between Documentum r_object_id of a dmr_content object and the CLIP ID of the content file in CENTERA?

  • DCTM_Guru
    edited August 17, 2016 #9

    "...generally, when we import file to a repository that stores the files into CENTERA then the file is stored in both CENTERA and Documentum"

    - No. The object and its metadata is created within the Documentum repository/database.  The file is stored on filestore and pointer is associated with the object.  The filestore can be various kinds of storage devices (ie Centera).


    "...I will import the documents into a repository but then I will have stored them twice"

    - Not necessarily.  Once you import into Documentum, you may be able to dispose the files that were imported by Centera APIs.  You may be able to allow group 1 to get access to the file from the Documentum filestore using Centera APIs.  My concern is that Documentum typically requires the permissions of the filestore be owned by Documentum install owner.  You may be able to provide access to group1.  I would definitely test this in DEV env first.


    "...That's why I am asking for the relationship between Documentum r_object_id of a dmr_content object and the CLIP ID of the content file in CENTERA?"

    - The documentation isnt really clear on this.  First thing you need to do is create CA filestore within the repository so that files will get imported to Centera instead of default filestore.  After you do this, I would run sample import and the perform API dumps on dmr_content object to see how it is linked back to the sysobject


  • Andrea Paci
    edited August 19, 2016 #10

    Hi ,

    provided a pretty good run down.

    As for your last question regarding object relationship, the System Object Reference Guide is the document to check: Documentum Content Server 7.1 System Object Reference

    For dm_sysobject, the property i_contents_id stores the r_object_id of the associated dmr_content object. The attribute a_storage_type shows the storage area name.

    A dmr_content object points back to its dm_sysobject parent(s) through the parent_id property. The storage_id stores the r_object_id of the storage area that contains the content. The data_ticket is a value used internally to retrieve the content. In the scope of Centera storage areas, the data_ticket is a number used internally only and has no external meaning (it's not the C-Clip).

    Due to data_ticket representation and the fact that dmr_content objects are generated by Content Server and read only, you will not be able to create an "empty shell" and link it to your existing content in Centera (you cannot manipulate dmr_content objects).

    All of this said, Centera should have deduplication functionality. This means that when the exact same file is stored in Centera several times, it should always return the same C-Clip.

    You can test this by importing the same file twice in the repository as two different objects (using the Centera storage area) and check the C-Clip associated to those objects with a Getpath API:

    API> getpath,c,<r_object_id>

    The above will calculate and return the C-Clip. It should be the same if deduplication is present on the Centera side.

    As for the content already stored in Centera, if you know the C-Clip, you can run a similar test and check that the C-Clip is reused.

    Good luck!

  • DCTM_Guru
    edited August 19, 2016 #11 Answer ✓

    "...All of this said, Centera should have deduplication functionality. This means that when the exact same file is stored in Centera several times, it should always return the same C-Clip."

    - So does this mean if a file already exists on Centera and you try to import same file into Documentum repository, the Content Server will store the same C-Clip value that points existing file and will not try to calculate a new one?

  • martin.dimitrov
    edited August 19, 2016 #12

    Thanks for the information. Next week I will go to the client in order to query some of the data stored in CENTERA and in Documentum. I will write you about the progress and my revelations.

    The question of Johnny Gee is essential in the way that if I receive the content files from the other vendors I can just import them into a repository and then I would not have any duplication in CENETERA.

    The other vendors probably can give me not only the CLIP IDs but the content files.

    Thanks

  • MVK4Atos
    edited March 7, 2020 #13

    very interesting information. I have reverse scenario, where I have to perform containerization of Documentum server , I need to first make sure existing CENTERA filestore to get converted into SAN/NAS filestore so, I can migrate or copy content to containerization instance.
    Anyone knows how to migrate or extract content from CENTERA filestore to normal SAN/NAS file store of same repository , so i can perform required content / repository copy operation.

    Or any alternate approach ? I believe Centera storage not supported for containerization, hope my query is clear , kindly provide expert inputs.

    thank you.

  • See the Content Server / Admin documentation for "Migrate Content".

    That will help you to move all content files from Centera to another attached Documentum filestore while only changing the a_storage_type attribute of the dm_sysobject.