Sunday, June 15, 2014

Removing entries from the index

You can remove certain object types, or objects that meet other criteria such as dates, from the index.

You can execute a DQL query to get object IDs of the documents that you wish to delete from the index. Save the list of object IDs in a text file.
1. Navigate to xplore_home/dsearch/xhive/admin.
2. Open deletedocs.properties in a text editor.
3. Make sure that the host and port values correspond to your environment.
4. Set the value of dss_domain to the xPlore domain from which you wish to delete indexed documents.

  NOTE : dss_domain:<Repo-Name>

5. Change the value of the key file_contains_id_to_delete to the path to your object IDs. Alternatively, you can list the object IDs, separated by commas, as the value of the key ids_to_delete.
6. On Windows, run deleteDocs.bat; on Linux, run deleteDocs.sh.

The deletedocs utility records activity in a log in xplore_home/dsearch/xhive/admin/logs/deleteDocs.log

If you already know the object ID and only have a few objects to delete, you can either create a simple ids.txt file with that single entry, or you can put that object ID in the deletedocs.properties under the ids_to_delete key. This key is commented out by default, so just remove the # and put in the object id:

ids_to_delete=090071eb80bf4c60

However, if the document has been deleted from the repository, it should automatically be removed from the index. It doesn’t always happen immediately, especially if there’s a large amount of items in the queue.

Where possible, verify above solution via test environment prior to applying to production.

Another possibility is that the event for dm_destroy has been removed. Using DA, run the following DQL:

select * from dmi_registry where user_name like 'dm_fulltext_index_use%'

You should see a dm_destroy for type dm_sysobject by default.

If you are only selecting indexing for custom type you should have a destroy listed for it.

2601164d80002102 dm_fulltext_index_user 0301164d8000016e dm_readonlysave 0 0 1 0 0000000000000000 1 0
2601164d80000501 dm_fulltext_index_user 0301164d80000101 dm_destroy 0 0 0 0 0000000000000000 1 0
2601164d80000502 dm_fulltext_index_user 0301164d80000101 dm_saveasnew 0 0 0 0 0000000000000000 1 0
2601164d80000503 dm_fulltext_index_user 0301164d80000104 dm_save 0 0 0 0 0000000000000000 1 0
2601164d80000504 dm_fulltext_index_user 0301164d80000104 dm_destroy 0 0 0 0 0000000000000000 1 0
2601164d80000505 dm_fulltext_index_user 0301164d80000105 dm_save 0 0 0 0 0000000000000000 1 0
2601164d80000506 dm_fulltext_index_user 0301164d80000105 dm_readonlysave 0 0 0 0 0000000000000000 1 0
2601164d80000507 dm_fulltext_index_user 0301164d80000105 dm_checkin 0 0 0 0 0000000000000000 1 0
2601164d80000508 dm_fulltext_index_user 0301164d80000105 dm_destroy 0 0 0 0 0000000000000000 1 0
2601164d80000509 dm_fulltext_index_user 0301164d80000105 dm_move_content 0 0 0 0 0000000000000000 1 0

The 03 ids are for the dm_type objects that correspond with the event. If there are no dm_destroy events, it may explain why the object hasn’t been removed from the index.


NOTE

If you either run the ftintegrity utility on the xPlore server or run the dm_FTStateOfIndex job you will find they generate a list of objectIds which are only in the index and not in the repository.

we can find the list of the report  :/home/dmadmin/dctm65sp2/dba/log/00021e3c/sysadmin/FTStateOfIndexDoc.txt
ID : /home/dmadmin/dctm65sp2/dba/log/00021e3c/sysadmin/ObjectId-indexOnly.txt

While performing Webtop/EPFM search or advance you may see the error "[DM_API_E_EXIST]error: "Document/object specified by xxxxxxxxxxxxxxxx does not exist." "

An error has occurred.
[DM_API_E_EXIST]error: "Document/object specified by xxxxxxxxxxxxxxxx does not exist."
After closing this window, press the Refresh or Reload button on your browser to continue.

Stack Trace:
DfIdNotFoundException:: THREAD: [ACTIVE] ExecuteThread: '4' for queue: 'weblogic.kernel.Default (self-tuning)'; MSG: [DM_API_E_EXIST]error: "Document/object specified by xxxxxxxxxxxxxxxx does not exist."; ERRORCODE: 100; NEXT: null
at com.documentum.fc.client.impl.docbase.DocbaseExceptionMapper.newException(DocbaseExceptionMapper.java:49)
at com.documentum.fc.client.impl.connection.docbase.MessageEntry.getException(MessageEntry.java:39)
at com.documentum.fc.client.impl.connection.docbase.DocbaseMessageManager.getException(DocbaseMessageManager.java:134)
at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.checkForMessages(NetwiseDocbaseRpcClient.java:191)
at com.documentum.fc.client.impl.connection.docbase.netwise.NetwiseDocbaseRpcClient.applyForObject(NetwiseDocbaseRpcClient.java:460)
at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection$8.evaluate(DocbaseConnection.java:948)
at com.documentum.fc.client.impl.connection.docbase.DocbaseConnection.evaluateRpc(DocbaseConnection.java:751) 

Cause
When the server config object created by cfs installation problem is destroyed or deleted from the Content Server because the cfs installation program fail to properly install the distributed or high availability environment or the cfs installation program got struck half way through.

Resolution
To resolve this problem the acs config object pointing to that server config object should be deleted from the api by logging in to Content Server machine.
 Follow the below steps to resolve this issue.
API>?,c,select * from dm_acs_config
(copy the acs config object ID pointing to deleted server config object)
API>retrieve,c,dm_acs_config where r_object_id='xxxxxxxxxxxxxxxx'
API>dump,c,l

Look for the svr_config_id It should point to 0000000000000000, since the server config objest is deleted
API>set,c,l,svr_config_id
SET> (Leave this empty and hit enter)
API>save,c,l
API>commit,c
API>reinit,c