IT blok - Michal Šika

kutilovo živobytí

Příručka pro Documentum Consistency Checker – část 2.

V jednom ze svých dřívějších článků jsem ukazoval použití nástroje consistency checker pro zjišťování nekonzistencí v docbázi.
Výstupních chyb a varování je relativně hodně a dnes přinesu druhou část výčtu těchto zpráv, která navazuje na můj předchozí výčet.

Zde je přehledová tabulka této části výčtu chybových a varovných hlášení. Kliknutím na některé označení budete přesunuti na přílsušné hlášení.

WARNING CC-0041 WARNING CC-0042 WARNING CC-0043 ERROR CC-0044
ERROR CC-0045 WARNING CC-0046 ERROR CC-0047 ERROR CC-0048
ERROR CC-0049 ERROR CC-0050 ERROR CC-0051 ERROR CC-0052
ERROR CC-0053 ERROR CC-0054 ERROR CC-0055 ERROR CC-0056
ERROR CC-0057 ERROR CC-0058 WARNING CC-0059 WARNING CC-0060
ERROR CC-0061 ERROR CC-0062 ERROR CC-0063 ERROR CC-0064
WARNING CC-0065 WARNING CC-0066 WARNING CC-0067 WARNING CC-0068
WARNING CC-0069 WARNING CC-0070 WARNING CC-0071 WARNING CC-0072
WARNING CC-0073 WARNING CC-0074 WARNING CC-0075 WARNING CC-0076
WARNING CC-0077 ERROR CC-0078 ERROR CC-0079 ERROR CC-0080

 

Nyní následují jednotlivá chybová a varovná hlášení.

WARNING CC-0041

Checking for content objects with non-existent format
— Query—: select a.r_object_id as p1, a.format as p2 from dmr_content_s a where not exists (select b.r_object_id from dm_format_s b where b.r_object_id = a.format)
WARNING CC-0041: Content object with r_object_id ‚06001fa78000274e‘ has non-existent format with id ‚27001fa680000190‘

Problem:
The dmr_content object is pointing to a non-existing format

Steps:

    Get the dump of the dmr_content object and pay attention of the following attributes:
    full_format
    i_full_format
    format

  • Get the parent_id and check dm_sysobject attribute a_content_type.
  • a_content_type, full_format and format must match.
  • Check if the value of those attributes exist in dm_format table.
  • If so, get the r_object_id and update the dmr_content format attribute.
  • If not create the dm_format using DA and get the r_object_id and update the dmr_content table for that content.
DQL> select parent_id, full_format, i_full_format, format from dmr_content where r_object_id='06001a9880008500'

DQL> select a_content_type from dm_sysobject where r_object_id='09001a988000a901'

DQL> select r_object_id from dm_format where name='<a_content_type>'

If the object exist update the dmr_content_s table with the format='<r_object_id of dm_format>‘
If not create a new format with those extensions and get the r_object_id and update the dmr_content_s table.

nahoru

WARNING CC-0042

Checking for dmi_queue_item objects with non-existent queued objects
— Query—: select a.r_object_id as p1, a.router_id as p2, a.item_id as p3 from dmi_queue_item_s a where not exists (select b.r_object_id from dm_sysobject_s b where b.r_object_id = a.item_id) and a.item_id <> '0000000000000000' and a.delete_flag = 0 and a.dependency_type in ('and', 'or', 'none')
WARNING CC-0042: dmi_queue_item object with r_object_id ‚1b006e788001d911‘ and router_id ‚18006e7880096d7e‘ has non-existent queued object with id ‚09006e7880096d38‘

Problem:
The item_id that the dmi_queue_item is making reference doesn’t exist anymore.

Steps:

  • Fetch and dump the item_id 09006e7880096d38 if this doesn’t exist.
  • set the item_id to 16 zeros in API and set the delete flag to True.
  • Once the dm_QueueMgt runs this will delete this entry.
API> fetch,c,1b006e788001d911

API> set,c,1b006e788001d911,item_id
SET> 0000000000000000

API> set,c,1b006e788001d911,delete_flag
SET> 1

API> save,c,1b006e788001d911

nahoru

WARNING CC-0043

Checking for dmi_workitem objects that reference non-existent dm_workflow objects
— Query—: select a.r_object_id as p1, a.r_workflow_id as p2 from dmi_workitem_s a where not exists (select b.r_object_id from dm_workflow_s b where b.r_object_id = a.r_workflow_id)
WARNING CC-0043: dmi_workitem object with r_object_id ‚4a006e7880000119‘ references non-existent dm_workflow object with id ‚4d006e788000010c‘
WARNING CC-0043: dmi_workitem object with r_object_id ‚4a006e788000011e‘ references non-existent dm_workflow object with id ‚4d006e788000010e‘

Problem:
The workitem is pointing to a non-existing workflow instance.

Steps:

  • Dump the dmi_workitem object and set to 16 zeros the r_workflow_id.
  • Get the r_queue_item_id value and set the item_id to 16 zeros and delete_flag to true as solution of Warning CC-0042.
  • dm_QueueMgt will cleanup the queue_item and destroy the dmi_workitem object.

Workitem:

API> fetch,c,4a006e7880000119

API> set,c,4a006e7880000119,r_workflow_id
SET> 0000000000000000

API> save,c,4a006e7880000119

Queue_item:

API> fetch,c,1b006e788001d911

API> set,c,1b006e788001d911,item_id
SET> 0000000000000000

API> set,c,1b006e788001d911,delete_flag
SET> 1

API> save,c,1b006e788001d911

Workitem:

API> fetch,c,4a006e7880000119

API> destroy,c,4a006e7880000119

or
As script you can try the following:

If a workitem is referencing a non-existent workflow object, there is not enough information from dmi_workitem to recover the missing dm_workflow object. Perhaps the only thing could do is to remove this workitem object from dmi_workitem_s and dmi_workitem_r table:
In SQL as Docbase owner:

SQL> delete from dmi_workitem_s where r_workflow_id not in (select r_object_id from dm_workflow_s);

SQL> delete from dmi_workitem_r where r_object_id not in (select r_object_id from dmi_workitem_s);

SQL> commit;

nahoru

ERROR CC-0044

Checking for dmi_package objects with missing dmi_package_s entries
— Query—: select distinct a.r_object_id as p1 from dmi_package_r a where not exists (select b.r_object_id from dmi_package_s b where b.r_object_id = a.r_object_id)
ERROR CC-0044: dmi_package object with r_object_id ‚49005dcc800096e9‘ is missing an entry in the dmi_package_s table

Problem:
The dmi_package object is corruped.

Steps:

  • Since there is no way to find out which workflow instance is using this because the dmi_package_s reference is gone we need to delete the reference on this package.
SQL> delete from dmi_package_r WHERE R_OBJECT_ID='49005dcc800096e9';
SQL> delete from dmi_object_type WHERE R_OBJECT_ID='49005dcc800096e9';
SQL> commit;

nahoru

ERROR CC-0045

Checking for dmi_package objects that reference non-existent dm_workflow objects
— Query—: select a.r_object_id as p1, a.r_workflow_id as p2 from dmi_package_s a where not exists (select b.r_object_id from dm_workflow_s b where b.r_object_id = a.r_workflow_id)
ERROR CC-0045: dmi_package object with r_object_id ‚49006e7880000116‘ references non-existent dm_workflow object with id ‚4d006e788000010c‘
ERROR CC-0045: dmi_package object with r_object_id ‚49006e7880000118‘ references non-existent dm_workflow object with id ‚4d006e788000010e‘

Problem:
dmi_package is pointing to a non-existing workflow

Steps:

  • Set the r_workflow_id to 16 zeros.
  • Destroy the dmi_package object.
API> fetch,c,49006e7880000116

API> set,c,49006e7880000116,r_workflow_id
SET> 0000000000000000

API> save,c,49006e7880000116

API> fetch,c,49006e7880000116

API> destroy,c,49006e7880000116

If you get an error try the following:

Since there is not enough information in the dmi_package_r table to repair this package. Perhaps the only thing to do is to remove information from dmi_package_r:
Login in SQL as Docbase owner:

SQL> delete from dmi_package_s where r_workflow_id not in (select r_object_id from dm_workflow_s);

SQL> delete from dmi_package_r where r_object_id not in (select r_object_id from dmi_package_s);

SQL> commit;

nahoru

WARNING CC-0046

Checking for workflow objects with non-existent r_component_id
— Query—: select ws.r_object_id as p1, pr.r_component_id as p2 from dm_workflow_s ws, dm_workflow_r wr, dmi_package_s ps, dmi_package_r pr where ws.r_object_id = wr.r_object_id AND wr.r_act_state != 2 AND pr.r_component_id > '0000000000000000' AND ws.r_runtime_state IN (1,3) AND ws.r_object_id = ps.r_workflow_id AND wr.r_act_seqno = ps.r_act_seqno AND ps.r_object_id = pr.r_object_id AND not exists (select a.r_object_id from dm_sysobject_s a where a.r_object_id = pr.r_component_id)
WARNING CC-0046: dm_workflow object with r_object_id ‚4d006e7880002501‘ references non-existent sysobject with r_component_id ‚09006e788000dffd‘
WARNING CC-0046: dm_workflow object with r_object_id ‚4d006e7880000d09‘ references non-existent sysobject with r_component_id ‚09006e7880006e60‘

Problem:
The r_component_id of the dmi_package and is making reference to a workflow instance doesn’t exist anymore

Steps:

  • Set the r_component_id and r_component_chron_id (Chronicle ID of the object identified at the corresponding index position in r_component_id.) to 16 zeros and destroy it.
  • Or set r_component_id to a existing package with his chronicle_id in r_component_chron_id.
API> retrieve,c,dmi_package where r_workflow_id='4d006e7880002501'
...
490a636280000900
API> set,c,490a636280000900,r_component_id
Set >0000000000000000
...
Ok
API> set,c,490a636280000900,r_component_chron_id
Set >0000000000000000
...
Ok
API> save,c,490a636280000900
...
Ok

OR

API> set,c,490a636280000900,r_component_id
Set >090a636280004c85
...
Ok
API> set,c,490a636280000900,r_component_chron_id
Set >090a636280004655
...
Ok
API> save,c,490a636280000900
...
Ok

If this doesn’t work and you get an error:

  • Dump the attributes of the dm_workflow, dmi_package
  • Run the following commands in order to fix the problem:
SQL> select r_object_id from dmi_package_s where r_workflow_id ='4d0030f680001d03';

R_OBJECT_ID
----------------
490030f680001902
490030f680001903

SQL> select r_component_id, r_component_chron_id, i_position from dmi_package_r where r_object_id = '490030f680001903';

R_COMPONENT_ID   R_COMPONENT_CHRO I_POSITION
---------------- ---------------- ----------
090030f68000dd12                          -1

SQL> update dmi_package_r set r_component_id = '090030f680087953' where r_object_id = '490030f680001903' and i_position=-1;

1 row updated.

SQL> commit;

Commit complete.

If this doesn’t work and you get an error:

  • Dump the attributes of the dm_workflow, dmi_package.
  • Check the r_package_type.
  • Create a new dummy dmi_package of that type or use a current one.
  • Run the following commands in order to fix the problem:
SQL> select r_object_id,r_package_type from dmi_package_s where r_workflow_id = '4d0030f680001d03';

r_object_id r_package_type 
================ ========================== 
4919978f80000900 dm_document 
4919978f80000901 dm_document 
(2 rows affected)

In API: create the dummy object

API> create,c,dm_document
0919978f8003bb4d
API> set,c,l,object_name
Set >dummy package
Ok
API> save,c,l
Ok

Select the component_id that is pointing to the none-existing package

SQL> select r_component_id, r_component_chron_id, i_position from dmi_package_r where r_object_id = '4919978f80000900';

R_COMPONENT_ID   R_COMPONENT_CHRO I_POSITION
---------------- ---------------- ----------
0919978f8001025c                          -1
 
SQL> update dmi_package_r set r_component_id = '0919978f8003bb4d'  where r_object_id = '4919978f80000900 ' and i_position=-1;

1 row updated.

SQL> commit;

Commit complete.

nahoru

ERROR CC-0047

Checking for workflow objects with missing dm_workflow_s entry
— Query—: select distinct a.r_object_id as p1 from dm_workflow_r a where not exists (select b.r_object_id from dm_workflow_s b where b.r_object_id = a.r_object_id)
ERROR CC-0047: dm_workflow object with r_object_id ‚4d0a636280004900‘ is missing an entry in the dm_workflow_s table

Problem:
There are some workflow objects with non-existent entry in dm_workflow_s table

Steps:

  • Since there is not enough information in the dm_workflow_r table to repair this workflow. Perhaps the only thing to do is to remove information from dm_workflow_r.

In SQL as Docbase owner:

SQL> delete from dm_workflow_r where r_object_id not in (select r_object_id from dm_workflow_s);

SQL> commit;

And need to remove all dmi_workitem (CC-0043) and dmi_package (CC-0045) objects associated with this workflow:

SQL> delete from dmi_workitem_s where r_workflow_id not in (select r_object_id from dm_workflow_s);

SQL> delete from dmi_workitem_r where r_object_id not in (select r_object_id from dmi_workitem_s);

SQL> delete from dmi_package_s where r_workflow_id not in (select r_object_id from dm_workflow_s);

SQL> delete from dmi_package_r where r_object_id not in (select r_object_id from dmi_package_s);

SQL> commit;

nahoru

ERROR CC-0048

Checking for workitem objects with missing dm_workitem_s entry
— Query—: select distinct a.r_object_id as p1 from dmi_workitem_r a where not exists (select b.r_object_id from dmi_workitem_s b where b.r_object_id = a.r_object_id)
ERROR CC-0048: dm_workitem object with r_object_id ‚4a0a636280004509‘ is missing an entry in the dm_workitem_s table

Problem:
There are some entries in dmi_workitem_r that doesn’t have any reference in dmi_workitem_s

Steps:

  • The dmi_workitem_r table has four rows: <r_object_id>, <i_position>, <r_outpur_port>, <r_ext_performer>.
  • There is not enough information in the dmi_workitem_r table to repair this workitem.
  • The only thing can be done is to remove information from dmi_workitem_r.

In SQL as docbase owner:

SQL> delete from dmi_workitem_r where r_object_id not in (select r_object_id from dmi_workitem_s);

SQL> commit;

nahoru

ERROR CC-0049

Checking for dm_type objects with a non-existent dmi_type_info object
— Query—: select a.name as p1, a.info as p2 from dm_type_s a where not exists (select b.r_object_id from dmi_type_info_s b where b.r_object_id = a.info)
ERROR CC-0049:

Problem:

Steps:

    nahoru

    ERROR CC-0050

    Checking for dmi_type_info objects with a non-existent dm_type object
    — Query—: select a.r_object_id as p1, a.r_type_id as p2 from dmi_type_info_s a where not exists (select b.r_object_id from dm_type_s b where b.r_object_id = a.r_type_id)
    ERROR CC-0050: The dmi_type_info object with id ‚2e00fa5b80000902‘ references a non-existent dm_type object with id ‚0300fa5b80000171‘

    Problem:
    The dm_type object doesn’t exist anymore

    Steps:

    • Since the type doesn’t exis anymore you need to delete the object from SQL.

    Login into SQL as docbase owner:

    SQL> delete from dmi_object_type where r_object_id='2e00fa5b80000902';
    
    SQL> delete from dmi_type_info_s where r_object_id='2e00fa5b80000902';
    
    SQL> delete from dmi_type_info_r where r_object_id='2e00fa5b80000902';
    
    SQL> commit;

    nahoru

    ERROR CC-0051

    Checking for type objects with corrupted attribute positions
    — Query—: select a.name as p1, a.start_pos as p2, b.attr_count as p3 from dm_type_s a, dm_type_s b where a.super_name = b.name and a.start_pos <> b.attr_count
    ERROR CC-0051: The type object for ‚mcode_common‘ has an invalid start_pos value of 83. The parent type has 84 attributes.

    Problem:
    The type information for start_pos and attr_count doesn’t match with the types and supertypes

    Steps:

    • Get the dump of the type and the supertype.
    • Review the start_pos and attr_count.
    • Review the same values in SQL and fix if doesn’t match.

    In IAPI:

    API> retrieve,c,dm_type where name=’mcode_common’
    API> dump,c,l
    
    USER ATTRIBUTES
    
      name                       : mcode_common
      super_name                 : dm_document
      attr_count                 : 91
      start_pos                  : 84
      owner                      : Paul Frye
      s_index_attr               : 0000000000000000
      info                       : 2e00145180000169
      attr_name              [ 0]: object_name
                             [ 1]: r_object_type
                             [ 2]: title
                             [ 3]: subject
                             [ 4]: authors
                             [ 5]: keywords
                             [ 6]: a_application_type
                             [ 7]: a_status
                             [ 8]: r_creation_date
                             [ 9]: r_modify_date
                             [10]: r_modifier
                             [11]: r_access_date
                             [12]: a_is_hidden
                             [13]: i_is_deleted
                             [14]: a_retention_date
                             [15]: a_archive
                             [16]: a_compound_architecture
                             [17]: a_link_resolved
                             [18]: i_reference_cnt
                             [19]: i_has_folder
                             [20]: i_folder_id
                             [21]: r_composite_id
                             [22]: r_composite_label
                             [23]: r_component_label
                             [24]: r_order_no
                             [25]: r_link_cnt
                             [26]: r_link_high_cnt
                             [27]: r_assembled_from_id
                             [28]: r_frzn_assembly_cnt
                             [29]: r_has_frzn_assembly
                             [30]: i_contents_id
                             [31]: a_content_type
                             [32]: r_page_cnt
                             [33]: r_content_size
                             [34]: a_full_text
                             [35]: a_storage_type
                             [36]: i_cabinet_id
                             [37]: owner_name
                             [38]: owner_permit
                             [39]: group_name
                             [40]: group_permit
                             [41]: world_permit
                             [42]: i_antecedent_id
                             [43]: i_chronicle_id
                             [44]: i_latest_flag
                             [45]: r_lock_owner
                             [46]: r_lock_date
                             [47]: r_lock_machine
                             [48]: log_entry
                             [49]: r_version_label
                             [50]: i_branch_cnt
                             [51]: i_direct_dsc
                             [52]: r_immutable_flag
                             [53]: r_frozen_flag
                             [54]: r_has_events
                             [55]: acl_domain
                             [56]: acl_name
                             [57]: a_special_app
                             [58]: i_is_reference
                             [59]: resolution_label
                             [60]: r_is_virtual_doc
                             [61]: r_is_public
                             [62]: r_creator_name
                             [63]: r_policy_id
                             [64]: r_resume_state
                             [65]: r_current_state
                             [66]: r_alias_set_id
                             [67]: i_is_replica
                             [68]: a_effective_date
                             [69]: a_expiration_date
                             [70]: a_publish_formats
                             [71]: a_effective_label
                             [72]: a_effective_flag
                             [73]: a_category
                             [74]: language_code
                             [75]: a_is_template
                             [76]: a_controlling_app
                             [77]: r_full_content_size
                             [78]: a_extended_properties
                             [79]: a_is_signed
                             [80]: a_last_review_date
                             [81]: i_retain_until
                             [82]: i_vstamp
                             [83]: meeting_date
                             [84]: doc_status
                             [85]: effective_date
                             [86]: keyno
                             [87]: chapter
                             [88]: repealed
                             [89]: typeset_date
                             [90]: editors_notes

    Also for the supertype in this case dm_document

    USER ATTRIBUTES
    
      name                       : dm_document
      super_name                 : dm_sysobject
      attr_count                 : 84
      start_pos                  : 83
      owner                      : legtrain
      s_index_attr               : 0000000000000000
      info                       : 2e0014518000010f
      attr_name              [ 0]: object_name
                             [ 1]: r_object_type
                             [ 2]: title
                             [ 3]: subject
                             [ 4]: authors
                             [ 5]: keywords
                             [ 6]: a_application_type
                             [ 7]: a_status
                             [ 8]: r_creation_date
                             [ 9]: r_modify_date
                             [10]: r_modifier
                             [11]: r_access_date
                             [12]: a_is_hidden
                             [13]: i_is_deleted
                             [14]: a_retention_date
                             [15]: a_archive
                             [16]: a_compound_architecture
                             [17]: a_link_resolved
                             [18]: i_reference_cnt
                             [19]: i_has_folder
                             [20]: i_folder_id
                             [21]: r_composite_id
                             [22]: r_composite_label
                             [23]: r_component_label
                             [24]: r_order_no
                             [25]: r_link_cnt
                             [26]: r_link_high_cnt
                             [27]: r_assembled_from_id
                             [28]: r_frzn_assembly_cnt
                             [29]: r_has_frzn_assembly
                             [30]: i_contents_id
                             [31]: a_content_type
                             [32]: r_page_cnt
                             [33]: r_content_size
                             [34]: a_full_text
                             [35]: a_storage_type
                             [36]: i_cabinet_id
                             [37]: owner_name
                             [38]: owner_permit
                             [39]: group_name
                             [40]: group_permit
                             [41]: world_permit
                             [42]: i_antecedent_id
                             [43]: i_chronicle_id
                             [44]: i_latest_flag
                             [45]: r_lock_owner
                             [46]: r_lock_date
                             [47]: r_lock_machine
                             [48]: log_entry
                             [49]: r_version_label
                             [50]: i_branch_cnt
                             [51]: i_direct_dsc
                             [52]: r_immutable_flag
                             [53]: r_frozen_flag
                             [54]: r_has_events
                             [55]: acl_domain
                             [56]: acl_name
                             [57]: a_special_app
                             [58]: i_is_reference
                             [59]: resolution_label
                             [60]: r_is_virtual_doc
                             [61]: r_is_public
                             [62]: r_creator_name
                             [63]: r_policy_id
                             [64]: r_resume_state
                             [65]: r_current_state
                             [66]: r_alias_set_id
                             [67]: i_is_replica
                             [68]: a_effective_date
                             [69]: a_expiration_date
                             [70]: a_publish_formats
                             [71]: a_effective_label
                             [72]: a_effective_flag
                             [73]: a_category
                             [74]: language_code
                             [75]: a_is_template
                             [76]: a_controlling_app
                             [77]: r_full_content_size
                             [78]: a_extended_properties
                             [79]: a_is_signed
                             [80]: a_last_review_date
                             [81]: i_retain_until
                             [82]: i_vstamp
                             [83]: meeting_date 

    In the dumps seems to be fine, checked the info via sql:

    SQL> select start_pos, attr_count from dm_type_s where name='mcode_common';
    
     START_POS ATTR_COUNT
    ---------- ----------
            83         91
    
    SQL> select start_pos, attr_count from dm_type_s where name='dm_document';
    
     START_POS ATTR_COUNT
    ---------- ----------
            83         84 

    As you can see the start_pos of type mcode_common is incorrect.

    • attr_count is the number of attributes in the type (includes defined and inherited)
    • start_pos is the position of the first non-inherited attribute

    Saying that the start_pos of type mcode_common should be 84 instead 83:

    SQL> update dm_type_s set start_pos=84 where name='mcode_common';
    
    1 row updated.
    
    SQL> commit;

    nahoru

    ERROR CC-0052

    Checking for types with invalid attribute counts
    — Query—: select a.name as p1, a.attr_count as p2 from dm_type_s a where a.attr_count <> (select count(*) from dm_type_r b where a.r_object_id = b.r_object_id)
    ERROR CC-0052: The type object for ‚dmi_type_info‘ has an attr_count of 15 that does not match the number of attributes in the corresponding dm_type_r table.

    Problem:
    The type information is missing attributes

    Steps:

    • Get the dump of the object dmi_type_info type.

    In IAPI:

    API> retrieve,c,dm_type where name='dmi_type_info'
    
    Check the value for     
    attr_count                 : 15
    
    Then check the values for 
    attr_name              [ 0]: r_type_id
                             [ 1]: r_type_name
                             [ 2]: default_storage
                             [ 3]: default_owner_permit
                             [ 4]: default_group_permit
                             [ 5]: default_world_permit
                             [ 6]: default_group
                             [ 7]: r_supertype
                             [ 8]: acl_domain
                             [ 9]: acl_name
                             [10]: ftindex_attrs
                             [11]: r_orig_declaration
                             [12]: locally_managed
                             [13]: type_override
                             [14]: i_vstamp
    
    check which one is missing.

    Then in SQL as docbase owner:

    SQL> select r_object_id from dm_type_s where name='dmi_type_info';
    
    R_OBJECT_ID
    ----------------
    030a636280000007
    
    SQL> select i_position,attr_name from dm_type_r where r_object_id='030a636280000007';
    
    I_POSITION ATTR_NAME
    ---------- ----------------------------------------
           -15 i_vstamp
           -14 type_override
           -13 locally_managed
           -12 r_orig_declaration
           -11 ftindex_attrs
           -10 acl_name
            -9 acl_domain
            -8 r_supertype
            -7 default_group
            -6 default_world_permit
            -5 default_group_permit
    
    I_POSITION ATTR_NAME
    ---------- ----------------------------------------
            -4 default_owner_permit
            -3 default_storage
            -2 r_type_name
            -1 r_type_id
    
    15 rows selected.

    SQL Statement which produced the following data:

    SQL> select r_object_id, i_position, attr_name from dm_type_r where r_object_id=(select r_object_id from dm_type_s where name='dmi_type_info'); 
    
    r_object_id        i_position        attr_name 
    03000cef80000007        -15        i_vstamp 
    03000cef80000007        -14        type_override 
    03000cef80000007        -13        locally_managed 
    03000cef80000007        -12        r_orig_declaration 
    03000cef80000007        -11        ftindex_attrs 
    03000cef80000007        -8        r_supertype 
    03000cef80000007        -7        default_group 
    03000cef80000007        -6        default_world_permit 
    03000cef80000007        -5        default_group_permit 
    03000cef80000007        -4        default_owner_permit 
    03000cef80000007        -3        default_storage 
    03000cef80000007        -2        r_type_name 
    03000cef80000007        -1        r_type_id
    
    SQL> insert into dm_type_r values('03000cef80000007',-9,'acl_domain',2,0,32);
    
    SQL> insert into dm_type_r values('03000cef80000007',-10,'acl_name',2,0,32);
    
    SQL> select attr_name,attr_type,attr_repeating,attr_length from dm_type_r where r_object_id='03000cef80000007' and i_position=-9;
    
    ATTR_NAME                                 ATTR_TYPE ATTR_REPEATING ATTR_LENGTH
    ---------------------------------------- ---------- -------------- -----------
    acl_domain                                        2              0          32
    
    SQL> select attr_name,attr_type,attr_repeating,attr_length from dm_type_r where r_object_id='03000cef80000007' and i_position=-10;
    
    ATTR_NAME                                 ATTR_TYPE ATTR_REPEATING ATTR_LENGTH
    ---------------------------------------- ---------- -------------- -----------
    acl_name                                          2              0          32      

    nahoru

    ERROR CC-0053

    Checking for duplicate dmi_dd_attr_info objects
    — Query—: select a.type_name as p1, a.attr_name as p2, a.nls_key as p3, count(*) as p4 from dmi_dd_attr_info_sv a where exists (select b.r_object_id from dmi_dd_attr_info_sv b where a.r_object_id <> b.r_object_id and a.type_name = b.type_name and a.attr_name = b.attr_name and a.nls_key = b.nls_key and a.business_policy_id = b.business_policy_id and a.state_name = b.state_name) group by a.type_name, a.attr_name, a.nls_key order by 1, 2
    ERROR CC-0053: The dmi_dd_attr_info object for type ‚dar_document‘, attribute ‚a_content_type‘, locale ‚en‘ has 4 duplicate(s).

    Problem:
    Duplicate published data dictionary objects exist (dmi_dd_attr_info, dmi_dd_type_info)

    Steps:

      This is reported as bug 62364.

    • As an automatic part of the upgrade process, these duplicates will be cleared out when you upgrade to 5.2.x.

    nahoru

    ERROR CC-0054

    Checking for duplicate dmi_dd_type_info objects
    — Query—: select a.type_name as p1, a.nls_key as p2, count(*) as p3 from dmi_dd_type_info_sv a where exists (select b.r_object_id from dmi_dd_type_info_sv b where a.r_object_id <> b.r_object_id and a.type_name = b.type_name and a.nls_key = b.nls_key and a.business_policy_id = b.business_policy_id and a.state_name = b.state_name) group by a.type_name, a.nls_key order by 1, 2
    ERROR CC-0054: The dmi_dd_type_info object for type ‚dm_activity‘, locale ‚en‘ has 2 duplicate(s).
    ERROR CC-0054: The dmi_dd_type_info object for type ‚dm_alias_set‘, locale ‚en‘ has 2 duplicate(s).
    ERROR CC-0054: The dmi_dd_type_info object for type ‚dm_app_ref‘, locale ‚en‘ has 2 duplicate(s).
    ERROR CC-0054: The dmi_dd_type_info object for type ‚dm_application‘, locale ‚en‘ has 2 duplicate(s).

    Problem:
    The dmi_dd_type_info object has duplicate locale entries

    Steps:
    As an automatic part of the upgrade process, these duplicates will be cleared out when you upgrade to 5.1. You should run the consistency checker after the upgrade to verify the errors no longer exist.
    Solution Follow SN 21252

    nahoru

    ERROR CC-0055

    Checking for any dmi_dd_attr_info objects that are missing an entry in dmi_dd_common_info_s
    — Query—: select a.r_object_id as p1 from dmi_dd_attr_info_s a where not exists (select b.r_object_id from dmi_dd_common_info_s b where b.r_object_id = a.r_object_id)
    ERROR CC-0055:

    Problem:

    Steps:

    nahoru

    ERROR CC-0056

    Checking for any dmi_dd_type_info objects that are missing an entry in dmi_dd_common_info_s
    — Query—: select a.r_object_id as p1 from dmi_dd_type_info_s a where not exists (select b.r_object_id from dmi_dd_common_info_s b where b.r_object_id = a.r_object_id)
    ERROR CC-0056: dmi_dd_type_info object with r_object_id ‚690113328000f914‘ is missing an entry in the dmi_dd_common_info_s table

    Problem:

    Steps:

      nahoru

      ERROR CC-0057

      Checking for any dmi_dd_attr_info objects that are missing an entry in dmi_dd_attr_info_s
      — Query—: select a.r_object_id as p1 from dmi_dd_common_info_s a where a.r_object_id like '6a%' and not exists (select b.r_object_id from dmi_dd_attr_info_s b where b.r_object_id = a.r_object_id)
      ERROR CC-0057: dmi_dd_attr_info object with r_object_id ‚6a00e25b80004866‘ is missing an entry in dmi_dd_attr_info_s table

      Problem:

      Steps:

        nahoru

        ERROR CC-0058

        Checking for any dmi_dd_type_info objects that are missing an entry in dmi_dd_type_info_s
        — Query—: select a.r_object_id as p1 from dmi_dd_common_info_s a where a.r_object_id like '69%' and not exists (select b.r_object_id from dmi_dd_type_info_s b where b.r_object_id = a.r_object_id)
        ERROR CC-0058:

        Problem:

        Steps:

          nahoru

          WARNING CC-0059

          Checking for sysobjects that reference non_existent policy objects
          — Query—: select a.r_object_id as p1, a.r_policy_id as p2 from dm_sysobject_s a where a.i_is_deleted = False and a.r_policy_id <> '0000000000000000' and not exists (select b.r_object_id from dm_policy_s b where b.r_object_id = a.r_policy_id)
          WARNING CC-0059: The dm_sysobject with id ‚090a63628000dd1c‘ references a non-existent policy object with id ‚460a636280018586‘

          Problem:
          The dm_sysobject is pointing to a non-existing dm_policy that is missing the entry from dm_policy_s table.

          Steps:

          • If the r_object_id of the dm_policy object(s) can be found in the dm_sysobject table, customer can restore the missing rows into the dm_policy_s table. One challenge for the customer is to “remember” the defintions of the lifecycle(s) and insert the original values into the columns of the s table.
          • Server doesn’t allow dm_policy object to be destroyed when it is referenced by other sysobjects.

          Since the dm_policy_s table has the following attributes:

          • R_OBJECT_ID
          • R_DEFINITION_STATE
          • EXTENSION_TYPE
          • APP_VALIDATION_ID
          • APP_VALIDATION_VER

          The important will be R_DEFINITION_STATE that can have the following values:

          Status of the policy object.
          Possible values are:

          • 0, meaning draft
          • 1, meaning validated
          • 2, meaning installed

          The attribute is always 0 when the object is created.

          You can just simply insert the row into dm_policy_s

          In SQL as docbase owner:

          SQL> insert into dm_policy_s values('460a636280018586',2,NULL,'0000000000000000',NULL);
          
          SQL> commit;

          nahoru

          WARNING CC-0060

          Checking for any policy objects that reference non-existent types in included_type
          — Query—: select a.r_object_id as p1, a.included_type as p2 from dm_policy_r a where a.included_type is not NULL and a.included_type <> ' ' and not exists (select b.name from dm_type_s b where b.name = a.included_type)
          WARNING CC-0060: The dm_policy object with id ‚465b8d8480060d09‘ references a non-existent included_type ‚posts‘
          WARNING CC-0060: The dm_policy object with id ‚465b8d8480060d09‘ references a non-existent included_type ‚trainings‘

          Problem:
          There are policy objects that reference non-existent types in included_type.

          Steps:

          • Customer can either recreate the missing types or they can modify the dm_policy objects to removed the invalid type.
          • To modify the dm_policy object, first uninstall it and make the change. Then validate and install it. Validate api will check if the lifecycle is referencing valid types.

          Or try the following in IAPI:

          API> dump,c,<dm_policy id>

          Get the values of the included_type and included_subtypes attributes and remove the ones that warning mentioned.

          The remove the types:

          API> remove,c,465b8d8480060d09,included_type[2]
          
          API> remove,c,465b8d8480060d09,included_type[3]                      
          
          API> remove,c,465b8d8480060d09,include_subtypes[2]
          
          API> remove,c,465b8d8480060d09,include_subtypes[3]
          
          API> save,c,465b8d8480060d09
          
          API> validate,c,465b8d8480060d09
          
          API> install,c,465b8d8480060d09

          nahoru

          ERROR CC-0061

          Checking for any policy objects with missing dm_sysobject_s entry
          — Query—: select a.r_object_id as p1 from dm_policy_s a where not exists (select b.r_object_id from dm_sysobject_s b where b.r_object_id = a.r_object_id)
          ERROR CC-0061: Policy object with r_object_id ‚460a636280018586‘ is missing an entry in dm_sysobject_s

          Problem:
          The dm_policy object is missing the entry on dm_sysobject_s

          Steps:

          • Since the dm_sysobject hold information that can’t be recover unless from backup you will need to remove all the references.
          • First remove the policy id from the other dm_sysobject that has the reference.
          • Then remove the dm_policy and all the entries in the other tables.

          In SQL as Docbase owner:

          SQL> update dm_sysobject_s set r_policy_id=’0000000000000000’ where r_policy_id=’460a636280018586’;
          
          SQL> delete from dmi_object_type where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_sysobject_r where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_policy_s where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_policy_r where r_object_id=’460a636280018586’;
          
          SQL> commit;

          nahoru

          ERROR CC-0062

          Checking for any policy objects with missing dm_sysobject_r entries
          — Query—: select a.r_object_id as p1, count(*) as p2 from dm_policy_r a where not exists (select b.r_object_id from dm_sysobject_r b where b.r_object_id = a.r_object_id and b.i_position = a.i_position) group by a.r_object_id
          ERROR CC-0062: Policy object with r_object_id ‚460a636280018586‘ has 3 missing entries from dm_syobject_r

          Problem:
          The dm_policy object is missing entries on dm_sysobject_r

          Steps:

          • Since the dm_sysobject_r table holds the information of the r_version_label and i_folder_id where the dm_policy was you can try to insert those entries but if you are not sure just simply remove the entries for the dm_sysobjects and remove the references of the policy.

          In SQL as docbase owner:
          Since the error shows that you are missing 3 entries get the i_cabinet_id of the dm_sysobject_s and then link the policy object to a folder subfolder of that cabinet or to that cabinet:

          SQL> select i_cabinet_id from dm_sysobject_s where r_object_id=’460a636280018586’;
          
          i_cabinet_id
          --------------------------
          0c0a636280000105

          Insert the entries into dm_sysobject_s

          SQL> insert into dm_sysobject_r (r_object_id,i_position,r_version_label,i_folder_id) values (’460a636280018586’,-1,’1.0’,’0c0a636280000105’);
          
          SQL> insert into dm_sysobject_r (r_object_id,i_position,r_version_label) values (’460a636280018586’,-2,’CURRENT’);
          
          SQL> insert into dm_sysobject_r (r_object_id,i_position) values (’460a636280018586’,-3);
          
          SQL> commit;

          If the customer is not complete certain of this values he should just simply remove the references:

          SQL> update dm_sysobject_s set r_policy_id=’0000000000000000’ where r_policy_id=’460a636280018586’;
          
          SQL> delete from dmi_object_type where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_sysobject_s where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_policy_s where r_object_id=’460a636280018586’;
          
          SQL> delete from dm_policy_r where r_object_id=’460a636280018586’;
          
          SQL> commit;

          nahoru

          ERROR CC-0063

          Checking for policy objects with missing dm_policy_r entries
          — Query—: select a.r_object_id as p1 from dm_policy_s a where not exists (select b.r_object_id from dm_policy_r b where b.r_object_id = a.r_object_id)
          ERROR CC-0063: Policy object with r_object_id ‚460a636280018a23‘ has missing dm_policy_r entries

          Problem:
          The dm_policy object is corrupted.

          Steps:

          • Since the dm_policy_r hold important information such included_type, include_subtypes, state_name and other attributes, there is no way to insert the entries in the table.
          • Just simply clean up the references.

          In SQL as Docbase owner:

          SQL> update dm_sysobject_s set r_policy_id=’0000000000000000’ where r_policy_id=’460a636280018a23’;
          
          SQL> delete from dmi_object_type where r_object_id=’460a636280018a23’;
          
          SQL> delete from dm_sysobject_s where r_object_id=’460a636280018a23’;
          
          SQL> delete from dm_sysobject_r where r_object_id=’460a636280018a23’;
          
          SQL> delete from dm_policy_s where r_object_id=’460a636280018a23’;
          
          SQL> commit;

          nahoru

          ERROR CC-0064

          Checking for policy objects with missing dm_policy_s entry
          — Query—: select distinct a.r_object_id as p1 from dm_policy_r a where not exists (select b.r_object_id from dm_policy_s b where b.r_object_id = a.r_object_id)
          ERROR CC-0064: Policy object with r_object_id ‚460a636280018586‘ is missing a dm_policy_s entry

          Problem:
          The dm_policy is corrupted is missing the entry from dm_policy_s table.

          Steps:

          • If the r_object_id of the dm_policy object(s) can be found in the dm_sysobject table, customer can restore the missing rows into the dm_policy_s table. One challenge for the customer is to “remember” the defintions of the lifecycle(s) and insert the original values into the columns of the s table.
          • Server doesn’t allow dm_policy object to be destroyed when it is referenced by other sysobjects.

          Since the dm_policy_s table has the following attributes:

          • R_OBJECT_ID
          • R_DEFINITION_STATE
          • EXTENSION_TYPE
          • APP_VALIDATION_ID
          • APP_VALIDATION_VER

          The important will be R_DEFINITION_STATE that can have the following values:
          Status of the policy object.
          Possible values are:

          • 0, meaning draft
          • 1, meaning validated
          • 2, meaning installed

          The attribute is always 0 when the object is created.

          You can just simply insert the row into dm_policy_s

          In SQL as docbase owner:

          SQL> insert into dm_policy_s values('460a636280018586',2,NULL,'0000000000000000',NULL);
          
          SQL> commit;

          nahoru

          WARNING CC-0065

          Checking for tdk index objects that point to non-existent fulltext index objects
          — Query—: select a.r_object_id as p1, a.parent_index as p2 from dmi_tdk_index_s a where not exists (select b.r_object_id from dm_fulltext_index_s b where b.r_object_id = a.parent_index)
          WARNING CC-0065: The dmi_tdk_index object with id ‚2400b15480001900‘ references a non-existent dm_fulltext_index object with id ‚3b00b15480000d00‘

          Problem:
          See if any tdk index objects point to the non-existent fulltext index objects

          Steps:

          • Get the dump of the dmi_tdk_index from the error.
          • See the location and dump the corresponded object from dm_fulltext_inde with the same location_name.
          • Get the r_object_id and that’s the one that dmi_tdk_index in attribute parent_index should have.

          In API:

          API> dump,c,2400b15480001900

          See the value for attribute location

          location                   : storage_01  

          Then dump the fulltext_index for that location

          API> retrieve,c,dm_fulltext_index where location_name='storage_01'
          
          API> dump,c,<r_object_id>

          Get the r_object_id that that should be the one that dmi_dk_index should have point in parent_index
          In SQL as database owner:

          SQL> update dmi_tdk_index_s set parent_index='<object_id from the dm_fulltext_index>' where r_object_id='2400b15480001900';
          
          SQL> commit;
          
          SQL> select r_object_id, parent_index from dmi_tdk_index_s;

          This should show the correct parent_index

          nahoru

          WARNING CC-0066

          Checking for any tdk collect objects that point to non-existent tdk index objects
          — Query—: select a.r_object_id as p1, a.root_index as p2 from dmi_tdk_collect_s a where not exists (select r_object_id from dmi_tdk_index_s b where b.r_object_id = a.root_index)
          WARNING CC-0066: The dmi_tdk_collect object with id ‚1c0a636280005100‘ references a non-existent dmi_tdk_index object with id ‚240a636280000902’

          Problem:
          The dmi_tdk_collect object is pointing to a non-existing dmi_tdk_index.

          Steps:

          • Get the dump of the dmi_tdk_collect object.
          • Since the index doesn’t exist you need to remove the reference from dmi_tdk_collect.

          In API:

          API> dump,c,1c0a636280005145
          USER ATTRIBUTES
          
            root_index                 : 240a636280000902
            format                     : 270a63628000011b
            style                      : universal
            object_subtype             : wasito1
            collection_subtype         : wasito1
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 1c0a636280005145
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_is_replica               : F
            i_vstamp                   : 0 

          In SQL as Docbase owner:

          SQL> delete from dmi_tdk_collect_s where root_index=’240a636280000902’;

          Make sure that the dmi_tdk_index object doesn’t exist:

          SQL> select count(*) from dmi_tdk_index_r where r_object_id='240a636280000902';

          If exist in the delete the entries from the dmi_tdk_index_r table as well.

          SQL> commit;

          nahoru

          WARNING CC-0067

          Checking for any fulltext index objects that point to non-existent tdk index objects
          — Query—: select a.r_object_id as p1, a.i_implementation_object as p2 from dm_fulltext_index_s a where not exists (select b.r_object_id from dmi_tdk_index b where b.r_object_id = a.i_implementation_object)
          WARNING CC-0067: The dm_fulltext_index object with id ‚3b000bcf80000100‘ references a non-existent dmi_tdk_index object with id ‚24000bcf80000120‘

          Problem:
          The dm_fulltext_index is pointing to a none-existing tdk index objects

          Steps:

          • Get the dump of the dm_fulltext_index from the warning: (3b000bcf80000100).
          • See the index_name value.
          • then reset and update the fulltext index.

          In API:

          API> dump,c,3b000bcf80000100

          See the value for attribute location

          index_name                 : filestore_01

          In IDQL at the command prompt in the server:

          DQL> execute reset_ftindex with name='<index name>'
          
          DQL> execute update_ftindex with name='<index name>', batch_size=10000

          The warning should disappear.

          nahoru

          WARNING CC-0068

          Checking for any tdk index objects that point to non-existent tdk collect objects
          — Query—: select a.r_object_id as p1, a.collection_id as p2 from dmi_tdk_index_r a where a.collection_id <> '0000000000000000' and not exists (select b.r_object_id from dmi_tdk_collect b where b.r_object_id = a.collection_id)
          WARNING CC-0068: The dmi_tdk_index object with id ‚240a636280000902‘ references a non-existent dmi_tdk_collect object with id ‚1c0a636280005146‘

          Problem:
          The dmi_tdk_index has a non-existing collection

          Steps:

          • Get the dump of the dmi_tdk_index.
          • Locate the collectionid that doesn’t exist.
          • Remove the entry from dmi_tdk_index_r.

          In API:

          API> dump,c,240a636280000902
          
          USER ATTRIBUTES
          
            location                   : storage_01
            store                      : 280a636280000100
            parent_index               : 3b0a636280000504
            is_blob_index              : F
            topic_trees_loc            : 
            collection_id          [ 0]: 1c0a636280005100
                                   [ 1]: 1c0a636280005101
                                   [ 2]: 1c0a636280005102
                                   [ 3]: 1c0a636280005103
                                   [ 4]: 1c0a636280005104
                                   [ 5]: 1c0a636280005105
                                   [ 6]: 1c0a636280005106
                                   [ 7]: 1c0a636280005107
                                   [ 8]: 1c0a636280005108
                                   [ 9]: 1c0a636280005109
                                   [10]: 1c0a63628000510a
                                   [11]: 1c0a63628000510b
                                   [12]: 1c0a63628000510c
                                   [13]: 1c0a63628000510d
                                   [14]: 1c0a63628000510e
                                   [15]: 1c0a63628000510f
                                   [16]: 1c0a636280005110
                                   [17]: 1c0a636280005111
                                   [18]: 1c0a636280005112
                                   [19]: 1c0a636280005113
                                   [20]: 1c0a636280005114
                                   [21]: 1c0a636280005115
                                   [22]: 1c0a636280005116
                                   [23]: 1c0a636280005117
                                   [24]: 1c0a636280005118
                                   [25]: 1c0a636280005119
                                   [26]: 1c0a63628000511a
                                   [27]: 1c0a63628000511b
                                   [28]: 1c0a63628000511c
                                   [29]: 1c0a63628000511d
                                   [30]: 1c0a63628000511e
                                   [31]: 1c0a63628000511f
                                   [32]: 1c0a636280005120
                                   [33]: 1c0a636280005121
                                   [34]: 1c0a636280005122
                                   [35]: 1c0a636280005123
                                   [36]: 1c0a636280005124
                                   [37]: 1c0a636280005125
                                   [38]: 1c0a636280005126
                                   [39]: 1c0a636280005127
                                   [40]: 1c0a636280005128
                                   [41]: 1c0a636280005129
                                   [42]: 1c0a63628000512a
                                   [43]: 1c0a63628000512b
                                   [44]: 1c0a63628000512c
                                   [45]: 1c0a63628000512d
                                   [46]: 1c0a63628000512e
                                   [47]: 1c0a63628000512f
                                   [48]: 1c0a636280005130
                                   [49]: 1c0a636280005131
                                   [50]: 1c0a636280005132
                                   [51]: 1c0a636280005133
                                   [52]: 1c0a636280005134
                                   [53]: 1c0a636280005135
                                   [54]: 1c0a636280005136
                                   [55]: 1c0a636280005137
                                   [56]: 1c0a636280005138
                                   [57]: 1c0a636280005139
                                   [58]: 1c0a63628000513a
                                   [59]: 1c0a63628000513b
                                   [60]: 1c0a63628000513c
                                   [61]: 1c0a63628000513d
                                   [62]: 1c0a63628000513e
                                   [63]: 1c0a63628000513f
                                   [64]: 1c0a636280005140
                                   [65]: 1c0a636280005141
                                   [66]: 1c0a636280005142
                                   [67]: 1c0a636280005143
                                   [68]: 1c0a636280005144
                                   [69]: 1c0a636280005145
                                   [70]: 1c0a636280005146
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 240a636280000902
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_is_replica               : F
            i_vstamp                   : 71

          As you can see te entry on index 70 is the one that is corrupted.
          In SQL as Docbase owner:

          SQL> select i_position, collection_id from dmi_tdk_index_r where r_object_id=’240a636280000902’;
          
          I_POSITION COLLECTION_ID
          ---------- ----------------
                 -67 1c0a636280005142
                 -68 1c0a636280005143
                 -69 1c0a636280005144
                 -70 1c0a636280005145
                 -71 1c0a636280005146      

          Remove the i_position -71 that is the collection id that doesn’t exist anymore

          SQL> delete from dmi_tdk_index_r where i_position=-71 and r_object_id=’240a636280000902’;
          
          SQL> commit;

          nahoru

          WARNING CC-0069

          Checking for any non-orphaned dmr_content objects that point to types that don’t exist
          — Query—: select a.r_object_id as p1, b.index_subtypes as p2 from dmr_content_s a, dmr_content_r b where a.r_object_id = b.r_object_id and a.parent_count > 0 and b.index_subtypes <> ' ' and not exists (select c.name from dm_type_s c where c.name = b.index_subtypes)
          WARNING CC-0069: The dmr_content object with id ‚ 060a636280015102‘ references a non-existent type with name ‚test1’

          Problem:
          The dmr_content object is pointing to a non-existing type

          Steps:

          • Get the dump of the dmr_content object.
          • Locate the index that hold the type that not longer exists.
          • Update the entries to NULL.

          In API:

          USER ATTRIBUTES
          
            parent_id               [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            page                    [0]: 0
                                    [1]: 0
            rendition                  : 0
            parent_count               : 2
            storage_id                 : 280a636280000100
            data_ticket                : -2147446524
            other_ticket               : 0
            content_size               : 4
            full_format                : crtext
            format                     : 270a63628000011b
            resolution                 : 0
            x_range                    : 0
            y_range                    : 0
            z_range                    : 0
            encoding                   : 
            loss                       : 0
            transform_path             : 
            set_client                 : wwcs102.bulldog.com
            set_file                   : C:DocumentumCheckouttest2.txt
            set_time                   : 06/01/04 15:54:11
            is_offline                 : F
            is_archived                : F
            index_format               : 270a63628000011b
            index_parent               : 090a63628001ad1a
            fulltext_index          [0]: 3b0a636280000100
                                    [1]: 3b0a636280000100
            index_pending            []: <none>
            update_count            [0]: 0
                                    [1]: 0
            index_parents           [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            index_set_times         [0]: 06/01/04 16:40:52
                                    [1]: 06/01/04 16:40:52
            index_pages             [0]: 0
                                    [1]: 0
            index_subtypes          [0]: dm_document
                                    [1]: test1
            index_operations        [0]: 2
                                    [1]: 2
            index_formats           [0]: 270a63628000011b
                                    [1]: 270a636280000bbb
            content_attr_name        []: <none>
            content_attr_value       []: <none>
            full_content_size          : 0
            page_modifier           [0]: 
                                    [1]: 
            content_attr_num_value   []: <none>
            content_attr_date_value  []: <none>
            content_attr_data_type   []: <none>
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 060a636280015102
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_contents                 : 
            i_index_format           []: <none>
            i_format                [0]: 270a63628000011b
                                    [1]: 270a63628000011b
            i_rendition             [0]: 0
                                    [1]: 0
            i_px                    [0]: 0
                                    [1]: 0
            i_py                    [0]: 0
                                    [1]: 0
            i_pz                    [0]: 0
                                    [1]: 0
            i_encoding              [0]: 
                                    [1]: 
            i_full_format           [0]: crtext
                                    [1]: crtext
            i_is_replica               : F
            i_vstamp                   : 3  
          As you can see the entry 1 holds the information on index_subtypes.
          
          You will need to remove all the entries for the fulltext index in position 1 
          
            fulltext_index          [0]: 3b0a636280000100
                                    [1]: 3b0a636280000100
            update_count            [0]: 0
                                    [1]: 0
            index_parents           [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            index_set_times         [0]: 06/01/04 16:40:52
                                    [1]: 06/01/04 16:40:52
            index_pages             [0]: 0
                                    [1]: 0
            index_subtypes          [0]: dm_document
                                    [1]: test1
            index_operations        [0]: 2
                                    [1]: 2
            index_formats           [0]: 270a63628000011b
                                    [1]: 270a636280000bbb  

          In SQL as docbase owner:
          Select the i_position

          SQL> select i_position,index_subtypes,index_formats from dmr_content_r where r_object_id='060a636280015102';
          
          I_POSITION INDEX_SUBTYPES              INDEX_FORMATS
          ---------- --------------------------- ----------------
                  -2 test1                       270a636280000bbb
                  -1 dm_document                 270a63628000011b 

          Since the -2 position is the corrupted one:

          SQL> update dmr_content_r set fulltext_index=NULL,update_count=NULL,index_parents=NULL,index_set_times=NULL,index_pages=NULL,index_subtypes=NULL,index_operations=NULL,index_formats=NULL where r_object_id='060a636280015102' and i_position=-2;
          
          1 row updated.
          
          SQL> commit; 

          Dump the object and it will look like this:

          USER ATTRIBUTES
          
            parent_id               [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            page                    [0]: 0
                                    [1]: 0
            rendition                  : 0
            parent_count               : 2
            storage_id                 : 280a636280000100
            data_ticket                : -2147446524
            other_ticket               : 0
            content_size               : 4
            full_format                : crtext
            format                     : 270a63628000011b
            resolution                 : 0
            x_range                    : 0
            y_range                    : 0
            z_range                    : 0
            encoding                   : 
            loss                       : 0
            transform_path             : 
            set_client                 : wwcs102.bulldog.com
            set_file                   : C:DocumentumCheckouttest2.txt
            set_time                   : 06/01/04 15:54:11
            is_offline                 : F
            is_archived                : F
            index_format               : 270a63628000011b
            index_parent               : 090a63628001ad1a
            fulltext_index          [0]: 3b0a636280000100
            index_pending            []: <none>
            update_count            [0]: 0
            index_parents           [0]: 090a63628001ad08
            index_set_times         [0]: 06/01/04 16:40:52
            index_pages             [0]: 0
            index_subtypes          [0]: dm_document
            index_operations        [0]: 2
            index_formats           [0]: 270a63628000011b
            content_attr_name        []: <none>
            content_attr_value       []: <none>
            full_content_size          : 0
            page_modifier           [0]: 
                                    [1]: 
            content_attr_num_value   []: <none>
            content_attr_date_value  []: <none>
            content_attr_data_type   []: <none>
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 060a636280015102
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_contents                 : 
            i_index_format           []: <none>
            i_format                [0]: 270a63628000011b
                                    [1]: 270a63628000011b
            i_rendition             [0]: 0
                                    [1]: 0
            i_px                    [0]: 0
                                    [1]: 0
            i_py                    [0]: 0
                                    [1]: 0
            i_pz                    [0]: 0
                                    [1]: 0
            i_encoding              [0]: 
                                    [1]: 
            i_full_format           [0]: crtext
                                    [1]: crtext
            i_is_replica               : F
            i_vstamp                   : 3  

          nahoru

          WARNING CC-0070

          Checking for any non-orphaned dmr_content objects that point to non-existent formats
          — Query—: select a.r_object_id as p1, b.index_formats as p2 from dmr_content_s a, dmr_content_r b where a.r_object_id = b.r_object_id and a.parent_count > 0 and b.index_formats <> '0000000000000000' and not exists (select c.r_object_id from dm_format_s c where b.index_formats = c.r_object_id)
          WARNING CC-0070: The dmr_content object with id ‚ 060a636280015102‘ references a non-existent fulltext_index with id ‚270a636280000bbb‘

          Problem:
          The dmr_content object is pointing to a non-existing format

          Steps:

          • Get the dump of the dmr_content object.
          • Locate the index that hold the format that not longer exists.
          • Update the entries to NULL.

          In API:

          USER ATTRIBUTES
          
            parent_id               [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            page                    [0]: 0
                                    [1]: 0
            rendition                  : 0
            parent_count               : 2
            storage_id                 : 280a636280000100
            data_ticket                : -2147446524
            other_ticket               : 0
            content_size               : 4
            full_format                : crtext
            format                     : 270a63628000011b
            resolution                 : 0
            x_range                    : 0
            y_range                    : 0
            z_range                    : 0
            encoding                   : 
            loss                       : 0
            transform_path             : 
            set_client                 : wwcs102.bulldog.com
            set_file                   : C:DocumentumCheckouttest2.txt
            set_time                   : 06/01/04 15:54:11
            is_offline                 : F
            is_archived                : F
            index_format               : 270a63628000011b
            index_parent               : 090a63628001ad1a
            fulltext_index          [0]: 3b0a636280000100
                                    [1]: 3b0a636280000100
            index_pending            []: <none>
            update_count            [0]: 0
                                    [1]: 0
            index_parents           [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            index_set_times         [0]: 06/01/04 16:40:52
                                    [1]: 06/01/04 16:40:52
            index_pages             [0]: 0
                                    [1]: 0
            index_subtypes          [0]: dm_document
                                    [1]: test1
            index_operations        [0]: 2
                                    [1]: 2
            index_formats           [0]: 270a63628000011b
                                    [1]: 270a636280000bbb
            content_attr_name        []: <none>
            content_attr_value       []: <none>
            full_content_size          : 0
            page_modifier           [0]: 
                                    [1]: 
            content_attr_num_value   []: <none>
            content_attr_date_value  []: <none>
            content_attr_data_type   []: <none>
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 060a636280015102
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_contents                 : 
            i_index_format           []: <none>
            i_format                [0]: 270a63628000011b
                                    [1]: 270a63628000011b
            i_rendition             [0]: 0
                                    [1]: 0
            i_px                    [0]: 0
                                    [1]: 0
            i_py                    [0]: 0
                                    [1]: 0
            i_pz                    [0]: 0
                                    [1]: 0
            i_encoding              [0]: 
                                    [1]: 
            i_full_format           [0]: crtext
                                    [1]: crtext
            i_is_replica               : F
            i_vstamp                   : 3 

          In SQL as docbase owner:
          Select the i_position

          SQL> select i_position,index_subtypes,index_formats from dmr_content_r where r_object_id='060a636280015102';
          
          I_POSITION INDEX_SUBTYPES              INDEX_FORMATS
          ---------- --------------------------- ----------------
                  -2 test1                       270a636280000bbb
                  -1 dm_document                 270a63628000011b

          Since the -2 position is the corrupted one:

          SQL> update dmr_content_r set fulltext_index=NULL,update_count=NULL,index_parents=NULL,index_set_times=NULL,index_pages=NULL,index_subtypes=NULL,index_operations=NULL,index_formats=NULL where r_object_id='060a636280015102' and i_position=-2;
          
          1 row updated.
          
          SQL> commit;  

          Dump the object and it will look like this:

          USER ATTRIBUTES
          
            parent_id               [0]: 090a63628001ad08
                                    [1]: 090a63628001ad1a
            page                    [0]: 0
                                    [1]: 0
            rendition                  : 0
            parent_count               : 2
            storage_id                 : 280a636280000100
            data_ticket                : -2147446524
            other_ticket               : 0
            content_size               : 4
            full_format                : crtext
            format                     : 270a63628000011b
            resolution                 : 0
            x_range                    : 0
            y_range                    : 0
            z_range                    : 0
            encoding                   : 
            loss                       : 0
            transform_path             : 
            set_client                 : wwcs102.bulldog.com
            set_file                   : C:DocumentumCheckouttest2.txt
            set_time                   : 06/01/04 15:54:11
            is_offline                 : F
            is_archived                : F
            index_format               : 270a63628000011b
            index_parent               : 090a63628001ad1a
            fulltext_index          [0]: 3b0a636280000100
            index_pending            []: <none>
            update_count            [0]: 0
            index_parents           [0]: 090a63628001ad08
            index_set_times         [0]: 06/01/04 16:40:52
            index_pages             [0]: 0
            index_subtypes          [0]: dm_document
            index_operations        [0]: 2
            index_formats           [0]: 270a63628000011b
            content_attr_name        []: <none>
            content_attr_value       []: <none>
            full_content_size          : 0
            page_modifier           [0]: 
                                    [1]: 
            content_attr_num_value   []: <none>
            content_attr_date_value  []: <none>
            content_attr_data_type   []: <none>
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 060a636280015102
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_contents                 : 
            i_index_format           []: <none>
            i_format                [0]: 270a63628000011b
                                    [1]: 270a63628000011b
            i_rendition             [0]: 0
                                    [1]: 0
            i_px                    [0]: 0
                                    [1]: 0
            i_py                    [0]: 0
                                    [1]: 0
            i_pz                    [0]: 0
                                    [1]: 0
            i_encoding              [0]: 
                                    [1]: 
            i_full_format           [0]: crtext
                                    [1]: crtext
            i_is_replica               : F
            i_vstamp                   : 3

          nahoru

          WARNING CC-0071

          Checking for any dmr_content objects that point to a non-existent fulltext index
          — Query—: select a.r_object_id as p1, a.fulltext_index as p2 from dmr_content_r a where a.fulltext_index <> '0000000000000000' and not exists (select b.r_object_id from dm_fulltext_index_s b where b.r_object_id = a.fulltext_index)
          WARNING CC-0071: The dmr_content object with id ‚06001fa780002729‘ references a non-existent fulltext_index with id ‚3b001fa680000100‘

          Problem:
          The dmr_content object points to a non-fulltext index

          Steps:
          Follow SN 17305

          When you run the following DQL query:

          DQL> select count(*), fulltext_index from dmr_content where any fulltext_index not in (select r_object_id from dm_fulltext_index) group by fulltext_index

          and the returned result contains fulltext index objects which should be already deleted and doesn’t exist anymore in the docbase, you can run the following DQL to „truncate“ these dmr_content objects from these fulltext index objects:

          DQL> update dmr_content object truncate fulltext_index where any fulltext_index = '<invalid FTI object_id>'

          After this step is completed you can run mark_all and then run update_ftindex.

          nahoru

          WARNING CC-0072

          Checking for any fulltext index attributes that are no longer in dm_type
          — Query—: select a.r_type_name as p1, b.ftindex_attrs as p2 from dmi_type_info_s a, dmi_type_info_r b where a.r_object_id = b.r_object_id and ftindex_attrs <> ' ' and not exists (select c.r_object_id from dm_type_r c where c.r_object_id = a.r_type_id and c.attr_name = b.ftindex_attrs)
          WARNING CC-0072: The dmi_type_info object for type ‚dfas_common‘ references a non-existent attribute ‚point_of_contact‘ in ftindex_attrs
          WARNING CC-0072: The dmi_type_info object for type ‚dfas_common‘ references a non-existent attribute ‚point_of_contact_email‘ in ftindex_attrs

          Problem:
          The dmi_type_info table has some ftindex attributes that not longer exist.

          Steps:

          • Get the dump attributes of the dmi_type_info object that the type has.
          • Identfy the position of the attributes that doesn’t exist anymore.
          • Describe the table to make sure that those attributes doesn’t exist.
          • Remove the entries and make sure the you update the i_position attribute correctly.

          Here is the dump of „info“ in the definition of dfas_common:

          API> dump,c,2e00f57980000504
          ...
          USER ATTRIBUTES
          
            default_storage            : 0000000000000000
            default_owner_permit       : 0
            default_group_permit       : 0
            default_world_permit       : 0
            default_group              : 
            acl_domain                 : 
            acl_name                   : 
            ftindex_attrs          [ 0]: portal_url
                                   [ 1]: business_state
                                   [ 2]: client_name
                                   [ 3]: content_type
                                   [ 4]: content_identifier
                                   [ 5]: content_manager_name
                                   [ 6]: content_manager_email
                                   [ 7]: current_path
                                   [ 8]: description
                                   [ 9]: enclave
                                   [10]: organizational_owner
                                   [11]: point_of_contact
                                   [12]: point_of_contact_email
                                   [13]: target_community
            locally_managed          []: <none>
            type_override              : 5100f57980000d05
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 2e00f57980000504
            r_type_id                  : 0300f57980000170
            r_type_name                : dfas_common
            r_supertype             [0]: dm_sysobject
                                    [1]: dm_document
                                    [2]: dfas_common
            r_orig_declaration       []: <none>
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_vstamp                   : 50

          The following values for the attribute contains the inconsistency:

            ftindex_attrs          
                                   [11]: point_of_contact
                                   [12]: point_of_contact_email

          In SQL as Docbase owner:

          SQL> select ftindex_attrs from dmi_type_info_r where r_object_id = <'id for the dmi_type_info object'>
          
          R_OBJECT_ID      I_POSITION R_SUPERTYPE                 FTINDEX_ATTRS
          ---------------- ---------- --------------------------- ---------------------------
          2e00f57980000504         -4                             content_type
          2e00f57980000504         -5                             content_identifier
          2e00f57980000504         -6                             content_manager_name
          2e00f57980000504         -7                             content_manager_email
          2e00f57980000504         -8                             current_path
          2e00f57980000504         -9                             description
          2e00f57980000504        -10                             enclave
          2e00f57980000504        -11                             organizational_owner
          2e00f57980000504        -12                             point_of_contact
          2e00f57980000504        -13                             point_of_contact_email
          2e00f57980000504        -14                             target_community
          2e00f57980000504         -1 dm_sysobject                portal_url
          2e00f57980000504         -2 dm_document                 business_state
          2e00f57980000504         -3 dfas_common                 client_name
          
          14 rows selected.

          As you can see position -12 and -13 contains the corruption.

          SQL> desc dfas_common_s;
          Name                            Null?    Type
          ------------------------------- -------- ----
          R_OBJECT_ID                     NOT NULL VARCHAR2(16)
          PORTAL_URL                      NOT NULL VARCHAR2(512)
          BUSINESS_STATE                  NOT NULL VARCHAR2(64)
          CLIENT_NAME                     NOT NULL VARCHAR2(64)
          CONTENT_TYPE                    NOT NULL VARCHAR2(64)
          CONTENT_IDENTIFIER              NOT NULL VARCHAR2(64)
          CONTENT_MANAGER_NAME            NOT NULL VARCHAR2(64)
          CONTENT_MANAGER_EMAIL           NOT NULL VARCHAR2(256)
          CURRENT_PATH                    NOT NULL VARCHAR2(256)
          DESCRIPTION                     NOT NULL VARCHAR2(1024)
          EMBEDDED_RELATIVE_URL           NOT NULL NUMBER(6)
          ENCLAVE                         NOT NULL VARCHAR2(32)
          ORGANIZATIONAL_OWNER            NOT NULL VARCHAR2(64)
          ORIGINAL_CREATION_DATE          NOT NULL DATE
          POINT_OF_CONTACT                         VARCHAR2(64)
          POINT_OF_CONTACT_EMAIL                   VARCHAR2(256)
          RELEASE_DATE                    NOT NULL DATE
          SECURE_INDICATOR                NOT NULL NUMBER(6)
          DFAS_DESCRIPTION                         VARCHAR2(1024)
          CORPORATE_CONTENT_APPROVER               VARCHAR2(64)

          Remove the inconsistency by running the following statements:

          SQL> delete dmi_type_info_r where i_position = -13 and r_object_id = '2e00f57980000504';
          
          SQL> delete dmi_type_info_r where i_position = -12 and r_object_id = '2e00f57980000504';
          
          SQL> update dmi_type_info_r set i_position = -12 where i_position = -14 and r_object_id = '2e00f57980000504';
          
          SQL> commit;

          nahoru

          WARNING CC-0073

          Checking for dmi_index objects that reference non-existent types
          — Query—: select a.r_object_id as p1, a.index_type as p2 from dmi_index_s a where not exists (select b.r_object_id from dm_type_s b where b.r_object_id = a.index_type)
          WARNING CC-0073: dmi_index object with r_object_id ‚1f00887780000501‘ refers to non-existent type with r_object_id ‚0300887780000169‘
          WARNING CC-0073: dmi_index object with r_object_id ‚1f00887780000502‘ refers to non-existent type with r_object_id ‚030088778000016a‘
          Rows Returned: 2

          Problem:
          The dmi_index object is pointing to a none-existing type

          Steps:

          • Check if the type is not there anymore.

          If so – In SQL login as Docbase owner – Delete the reference of the dmi_index:

          SQL> delete from dmi_object_type where r_object_id='1f00887780000501';
          
          SQL> delete from dmi_index_s where r_object_id='1f00887780000501';
          
          SQL> delete from dmi_index_r where r_object_id='1f00887780000501';
          
          SQL> commit;

          nahoru

          WARNING CC-0074

          Checking for types with non-existent dmi_index object for <type>_s table
          — Query—: select a.name as p1, a.s_index_attr as p2 from dm_type_s a where not exists (select b.r_object_id from dmi_index_s b where b.r_object_id = a.s_index_attr)
          WARNING CC-0074: Type object for type ‚dm_folder‘ references a non-existent dmi_index object for _s table with r_object_id ‚0000000000000000‘

          Problem:
          The type is pointing to a non-existing index in dmi_index

          Steps:

          • Confirm the value of the index by doing the following in SQLplus:
          SQL> select S_INDEX_ATTR from dm_type_s where name='dm_folder';
          
          S_INDEX_ATTR
          ----------------
          1f001a9880000142

          Check the indexes for this type:

          SQL> col index_name format a20
          
          SQL> col column_name format a20
          
          SQL> col column_position format 99999999990
          
          SQL> select index_name,column_name,column_position from user_ind_columns where table_name like 'DM_FOLDER%';
          
          INDEX_NAME           COLUMN_NAME          COLUMN_POSITION
          -------------------- -------------------- ---------------
          D_1F001A9880000143   R_OBJECT_ID                        1
          D_1F001A9880000143   I_POSITION                         2
          D_1F001A9880000015   R_FOLDER_PATH                      1
          D_1F001A9880000016   I_ANCESTOR_ID                      1
          D_1F001A9880000016   R_OBJECT_ID                        2
          D_1F001A9880000142   R_OBJECT_ID                        1
          
          6 rows selected.
          
          SQL>

          As you can see the the index name + D_ match with the value of S_INDEX_ATTR last row in the example.
          You need to check if this index exists in dmi_index_s and _r

          SQL> select count(*) from dmi_index_s where r_object_id='1f001a9880000142';
          
            COUNT(*)
          ----------
                   1
          
          SQL> select count(*) from dmi_index_r where r_object_id='1f001a9880000142';
          
            COUNT(*)
          ----------
                   1
          
          SQL>

          You should not have the object in any of this tables if exists in one of this tables you must delete it.
          Set the S_INDEX_ATTR to 16 zeros and then recreate the index using API with unique attribute „R_OBJECT_ID“ as is state it above.

          nahoru

          WARNING CC-0075

          Checking for types with non-existent dmi_index object for <type>_r table
          — Query—: select a.name as p1, a.r_index_attr as p2 from dm_type_s a where a.r_index_attr <> '0000000000000000' and not exists (select b.r_object_id from dmi_index_s b where b.r_object_id = a.r_index_attr)
          WARNING CC-0075: Type object for type ‚dm_sysobject‘ references a non-existent dmi_index object for _r table with r_object_id ‚1f00f4bb80000109‘

          Problem:
          The r_index_attr is pointing to a non-existing object in dmi_index

          Steps:

          • Check if the index exists at the database level.
          • If the index exists at the database level drop it and follow the next steps if not exist just follow the next steps.

          These are steps to create an index on r_object_id_i & i_position for a custom type if the default Documentum index is missing from the database & the dmi_index entries are also missing:

          1. use the make_index method to create an index on a different attribute of the type which is missing the index.
          2. Now we are going to change the dmi_index entries for this index so they point to the index on r_object_id_i & i_position: (These are ALL SQL commands as docbase owner)
          a.) select the r_object_id from dmi_index_s where name='<name of the index they created in step 1>';
          
          b.) update dmi_index_s set attr_count= 0 where r_object_id='<object_id from step a>';
          
          c.)  update dmi_index_s set repeating=1 where r_object_id='<object_id from step a>';
          
          d.)  update dmi_index_s set use_id_col=1 where r_object_id='<object_id from step a>';
          
          e.)  update dmi_index_s set use_pos_col=1 where r_object_id='<object_id from step a>';
          
          f.)  update dmi_index_r set attribute=' ' where r_object_id='<object_id from step a>';
          
          g.)  update dm_type_s set r_index_attr='<object_id from step a>' where name='<type>';
          
          h.)  create unique  index <index name that was create in step 1> on <table name> (r_object_id_i, i_position); 

          nahoru

          WARNING CC-0076

          Checking for index objects with invalid attribute positions
          — Query—: select a.r_object_id as p1, c.name as p2, b.attribute as p3 from dmi_index_s a, dmi_index_r b, dm_type_s c where a.r_object_id = b.r_object_id and a.index_type = c.r_object_id and b.attribute is not null and ((b.attribute > c.attr_count) or (b.attribute < c.start_pos))
          WARNING CC-0076: dmi_index object with r_object_id ‚1f000fa080004700‘ for type ‚change_request‘ has an invalid ‚attribute‘ value of ’70‘

          Problem:
          The index attribute is pointing to a non-existing attribute in the type

          Steps:

          • Get the dump of the type and the index object.

          In API:

          API> retrieve,c,dm_type where name='<name of the type>'

          Example:

          API> retrieve,c,dm_type where name='change_request'
          
          API> dump,c,l
          
          API> dump,c,<dmi_index id>1f000fa080004700

          Example:

          API> dump,c,<dmi_index id>1f000fa080004700

          Get the indexes of the type in question:
          Check the indexes for this type:
          In SQL:

          SQL> col index_name format a20
          
          SQL> col column_name format a20
          
          SQL> col column_position format 99999999990
          
          SQL> select index_name,column_name,column_position from user_ind_columns where table_name like 'CHANGE_REQUEST%';
          
          INDEX_NAME           COLUMN_NAME          COLUMN_POSITION
          -------------------- -------------------- ---------------
          D_1F001A9880000143   R_OBJECT_ID                        1
          D_1F001A9880000143   I_POSITION                         2
          D_1F001A9880000142   R_OBJECT_ID                        1
          
          3 rows selected.
          
          SQL>

          Get the index name and compare it with the name of the dmi_index object
          Get the attribute and check with index has that attribute in the dm_type object

          USER ATTRIBUTES
          
            index_type                 : 030a636280000152
            is_unique                  : F
            name                       : d_1f001a9880000142   ***
            attr_count                 : 1
            repeating                  : F
            use_id_col                 : F
            use_pos_col                : F
            attribute               [0]: 4                    **
            data_space                 : 
            rebuilding                 : F
            use_tag                  []: <none>
          
          SYSTEM ATTRIBUTES
          
            r_object_id                : 1f0a636280000049
          
          APPLICATION ATTRIBUTES
          
          
          INTERNAL ATTRIBUTES
          
            i_vstamp                   : 0
          
          *** name of the index to compare with the index from SQL
          ** attribute that you need to check against the dump attributes of the type
          
          
          USER ATTRIBUTES
          
            name                       : change_request
            super_name                 : 
            attr_count                 : 43
            start_pos                  : 0
            owner                      : Miguel_Test52
            s_index_attr               : 0000000000000000
            info                       : 2e0a636280000152
            attr_name              [ 0]: event_name
                                   [ 1]: event_source
                                   [ 2]: r_gen_source
                                   [ 3]: test               ****
                                   
                                   
          **** That is the real value that the dmi_index should have in attribute value
          
          
          USER ATTRIBUTES
          
            index_type                 : 030a636280000152
            is_unique                  : F
            name                       : d_1f0a636280000049
            attr_count                 : 1
            repeating                  : F
            use_id_col                 : F
            use_pos_col                : F
            attribute               [0]: 4  

          To Fix it:
          In API:

          API> fetch,c,1f000fa080004700
          ...
          OK
          API> set,c,1f000fa080004700,attribute[0]
          SET> 3
          ...
          OK
          API> save,c,1f000fa080004700
          ...
          OK

          If the attribute doesn’t exist anymore you need to basically set the attribute to an existing and destroy the object and drop the index.

          nahoru

          WARNING CC-0077

          Checking for java dm_method objects that reference jview
          — Query—: select r_object_id as p1, object_name as p2, method_verb as p3 from dm_method_sv where method_type = 'java' and method_verb like '%jview%' and a_status != 'backup' and object_name not in ('wcmObjectBagMethod', 'wcmSendTranslationViaSmtp', 'wcmDecodeVDM', 'ESSendJava', 'ESSendReceiveJava', 'ESSendSmtpReceiveHttpJava', 'ESSendVirtualDocJava', 'ESSendAsyncJava', 'dm_ldif_export', 'dm_ldif_copy', 'dm_ldif_import', 'dm_ldif_status', 'LDAPSync')
          WARNING CC-0077: dm_method object with r_object_id ‚100a63628001bd12‘, object_name ‚HelloWorld’ and method_verb ‚jview HelloWorld‘ references jview which is no longer supported

          Problem:
          The method object has an unsupported method_verb

          Steps:

          • Update the method_verb to java.

          In DQL as superuser:

          DQL> update dm_method object set method_verb ='java HelloWorld' where r_object_id='100a63628001bd12'

          nahoru

          ERROR CC-0078

          Checking for any Data Dictionary objects that reference a non-existent default policy
          — Query—: select a.type_name as p1, b.default_policy_id as p2 from dm_aggr_domain_s a, dm_dd_info_s b where b.parent_id = a.r_object_id and b.default_policy_id is not NULL and b.default_policy_id <> '0000000000000000' and not exists (select 1 from dm_policy_s c where c.r_object_id = b.default_policy_id)
          ERROR CC-0078: Data Dictionary object for type ‚rogawski‘ references a non-existent default policy (default_policy_id) ‚460099b680010f17‘
          ERROR CC-0078: Data Dictionary object for type ‚ jackie‘ references a non-existent default policy (default_policy_id) ‚ 460a636280011111‘

          Problem:
          The data dictionary for a type is pointing to a non-existing lifecycle

          Steps:

          • Get the dm_aggr_domain object_id for the type.
          • Get the object_id of the dm_dd_info that has the none-existing dm_policy.
          • Update the default_policy_id to 16 zeros using SQL.
          DQL> select r_object_id from dm_aggr_domain where type_name='jackie';
          
          r_object_id       
          ================  
          
          510a636280002900 
          (1 rows affected)
          DQL> select r_object_id,default_policy_id from dm_dd_info where parent_id='510a636280002900'
          
          r_object_id       default_policy_id  
          ================  =================  
          
          4e0a636280002100  0000000000000000   
          4e0a636280002500  460a636280011111   
          4e0a63628000250e  0000000000000000   
          4e0a63628000250f  0000000000000000   
          4e0a636280002510  0000000000000000   
          (5 rows affected)
          DQL>

          In SQL as docbase owner:

          SQL> update dm_dd_info_s set default_policy_id='0000000000000000' where r_object_id='4e0a636280002500';
          
          1 row updated.
          
          SQL> commit;
          
          Commit complete.

          nahoru

          ERROR CC-0079

          Checking for ACL Instances that reference non-existent ACL Templates
          — Query—: select distinct a.r_object_id as p1, a.object_name as p2, a.r_template_id as p3 from dm_acl_sv a where acl_class = 2 and not exists (select 1 from dm_acl_s b where b.r_object_id = a.r_template_id)
          ERROR CC-0079: ACL Instance with ID ‚45010f9a8000211b‘, object_name ‚dm_450104ab80000a6b_80000935‘ references a non-existent ACL Template with ID “

          Problem:
          The ACL template instance is pointing to a none existing template ACL.

          Steps:

          • Get the dump of the acl template instance.
          • Try to dump the r_template_id value most probably that one doesn’t exist.
          • The only thing that we can do to fix this ACL template instance is to make it Regular ACL.

          In IAPI:

          API>dump,c,45010f9a8000211b
          ...
          USER ATTRIBUTES
          
            object_name                : dm_450104ab80000a6b_80000935
            description                : dm_450104ab80000a6b_80000935
            owner_name                 : renamprod
            globally_managed           : F
            acl_class                  : 2
           
          SYSTEM ATTRIBUTES
           
            r_object_id                : 45010f9a8000211b
            r_is_internal              : T
            r_accessor_name         [0]: dm_world
                                    [1]: dm_owner
                                    [2]: administrator
                                    [3]: gl_product_top_approver
                                    [4]: gl_product_top_content_owner
                                    [5]: gl_import-export
                                    [6]: gl_legal
                                    [7]: all_product_top_contributors
                                    [8]: gl_web_developer
                                    [9]: gl_product_top_contributor
            r_accessor_permit       [0]: 3
                                    [1]: 6
                                    [2]: 7
                                    [3]: 3
                                    [4]: 6
                                    [5]: 3
                                    [6]: 3
                                    [7]: 4
                                    [8]: 7
                                    [9]: 6
            r_accessor_xpermit      [0]: 0
                                    [1]: 65536
                                    [2]: 458752
                                    [3]: 0
                                    [4]: 65536
                                    [5]: 0
                                    [6]: 0
                                    [7]: 0
                                    [8]: 458752
                                    [9]: 65536
            r_is_group              [0]: F
                                    [1]: F
                                    [2]: T
                                    [3]: T
                                    [4]: T
                                    [5]: T
                                    [6]: T
                                    [7]: T
                                    [8]: T
                                    [9]: T
            r_has_events               : F
            r_permit_type            []: <none>
            r_application_permit     []: <none>
            r_template_id              : 45010f9a8000030a
            r_alias_set_id             : 66010f9a80000109
           
          APPLICATION ATTRIBUTES
           
           
          INTERNAL ATTRIBUTES
           
            i_is_replica               : T
            i_has_required_groups      : F
            i_has_required_group_set   : F
            i_has_access_restrictions  : F
            i_vstamp                   : 3
          
          - Get the r_template_id and try to dump it:
          
          API> dump,c,4500007b8000990f
          ...
          
          [DM_API_E_EXIST]error:  "Document/object specified by 4500007b8000990f does not exist."
          
          [DM_ACL_E_CANT_FETCH]error:  "Cannot fetch - Invalid object ID 4500007b8000990f"
          
          [DM_SESSION_W_FETCH_FAILED]warning:  "Fetch of object with handle 4500007b8000990f and type dm_acl failed."
          
          [DM_OBJ_MGR_E_FETCH_FAIL]error:  "attempt to fetch object with handle 4500007b8000990f failed" 

          As you can see this is the object that doesn’t exist.
          Make the ACL regular ACL.

          nahoru

          ERROR CC-0080

          Checking for ACL Instances that reference non-existent Alias Sets
          — Query—: select distinct a.r_object_id as p1, a.object_name as p2, a.r_alias_set_id as p3 from dm_acl_sv a where acl_class = 2 and not exists (select 1 from dm_alias_set b where b.r_object_id = a.r_alias_set_id)
          ERROR CC-0080: ACL Instance with ID ‚45010f9a8000211b‘, object_name ‚dm_450104ab80000a6b_80000935‘ references a non-existent Alias Set with ID “

          Problem:

          Steps:

            nahoru
            A to je vše…

            Michal Šika