At one of my customers, I experienced a problem with the Documentum Administrator (DA), which did not display the correct Index Agent status. In this blog post, I will explain how I found the source of this problem and of course also how I solved this issue.

But first, some background facts: The Documentum Administrator (DA) is displaying “not responding” for the Index Agent, however the Index Agent is running well. No solutions are mentioned in the Documentum support notes.

Analysis

1) I have to use the API code to find the status.

Command to use:

API> apply,c,NULL,FTINDEX_AGENT_ADMIN,NAME,S,,AGENT_INSTANCE_NAME,S,,ACTION,S,start

In my case:

API> apply,s0,NULL,FTINDEX_AGENT_ADMIN,NAME,S,TEST_ftindex_01,AGENT_INSTANCE_NAME,S,ftserver.i_9200_IndexAgent,ACTION,S,status
...
q0
API> next,c,q0
...
OK
API> get,c,q0,status
...
200
API>

“200” means that there is a problem with the Index Agent.

2) I can find errors in two locations:

  • by setting the trace for DA, I can find the following error in the trace file:
[!com.documentum.fc.common.DfException: [DM_METHOD_E_JMS_APP_SERVER_NAME_NOTFOUND]error: "The
 app_server_name/servlet_name 'ftserver.i_9200_IndexAgent' is not specified in dm_server_config/dm_jms_config."!]
  • In the user session logfile I see the following:
2013-07-18T09:23:06.132697 22991[22991] 0101e2ee80ee8913 [DM_FT_INDEX_T_INIT_INDEX_AGENT_MSG]info: "Attempting to status Index Agent Instance ftserver.i_9200_IndexAgent"
2013-07-18T09:23:06.132766 22991[22991] 0101e2ee80ee8913 [DM_METHOD_E_JMS_APP_SERVER_NAME_NOTFOUND]error: "The app_server_name/servlet_name 'ftserver.i_9200_IndexAgent' is not specified in dm_server_config/dm_jms_config."
2013-07-18T09:23:06.132791 22991[22991] 0101e2ee80ee8913 [DM_FT_INDEX_T_INIT_INDEX_AGENT_MSG]info: "HTTP_POST with args -command status -docbase TESTREPO -user dm_fulltext_index_user -ticket DM_TICKET=T0JKIE5......UkxZeXc2cHd3SVc0dz09Cg== -instance ftserver.i_9200_IndexAgent -details false to Index Agent ftserver.i_9200_IndexAgent failed."
2013-07-18T09:24:05.032297 22991[22991] 0101e2ee80ee8913 [DM_FT_INDEX_E_NO_FTINDEX_AGENT_CONFIG_OBJECTS_FOUND]error: "There were no dm_ftindex_agent_config object(s) found for the specified arguments"

3) Let’s use the previous output to perform a deeper analysis

  • In the dm_jms_config the Index Agent app_server_name is not defined – which is normal
  • In DA I can see the name of the Application Server – which is is fine
  • The dm_server_config object is correct:
retrieve,c,dm_server_config
dump,c,l
the relevant data of the output:
app_server_name [0]: do_method
 [1]: do_mail
 [2]: ftserver.i_9200_IndexAgent

app_server_uri [0]: http://localhost:19080/DmMethods/servlet/DoMethod
[1]: http://localhost:19080/DmMail/servlet/DoMail
[2]: http://ftserver.dummy.com:19200/IndexAgent/servlet/IndexAgent

But then, what is wrong?

4) Reproducing the error

As all seems to be fine, I have to reproduce the error.

  • By purposely choosing a wrong AGENT_INSTANCE_NAME – ftserver.9200_IndexAgent instead of ftserver.i_9200_IndexAgent (–> I have removed the “i” ) – I am able to reproduce the error:
API> apply,s0,NULL,FTINDEX_AGENT_ADMIN,NAME,S,TEST_ftindex_01,AGENT_INSTANCE_NAME,S,ftserver.9200_IndexAgent,ACTION,S,status
...
q0
API> next,c,q0
...
OK
API> get,c,q0,status
...
[DM_FT_INDEX_E_NO_FTINDEX_AGENT_CONFIG_OBJECTS_FOUND]error: "There were no dm_ftindex_agent_config object(s) found for the specified arguments"
[DM_METHOD_E_JMS_APP_SERVER_NAME_NOTFOUND]error: "The app_server_name/servlet_name 'ftserver.9200_IndexAgent' is not specified in dm_server_config/dm_jms_config."
  • The FTINDEX_AGENT_ADMIN method issues an HTTP_POST method that then invokes the servlet used by the IndexAgent Admin Web utility. So using the HTTP_POST method I can also reproduce the error:

1> execute http_post WITH app_server_name='ftserver.i_9200_IndexAgent'
2> go
[DM_METHOD_E_JMS_APP_SERVER_NAME_NOTFOUND]error: "The app_server_name/servlet_name
'ftserver.i_9200_IndexAgent' is not specified in dm_server_config/dm_jms_config."

  • As I see the same name in the DA, I have to add a blank behind the app_server_name value, hoping this is the char I cannot see. Again, I am using the http_post
1> execute http_post WITH app_server_name='ftserver.i_9200_IndexAgent '
 2> go
 result http_response_status request_failed response_doc_id time_taken 
 timed_out time_out_length app_server_host_name app_server_port 
 app_server_uri 
 ----------------------------------------------------------------------------------
 0 HTTP/1.1 200 OK F 0000000000000000 0 
 F 60 ftserver.dummy.com 9200 /IndexAgent/servlet
 /IndexAgent
 (1 row affected)
 1>

 

With this positive result, I have found the source of my problem: a wrong app_server_name!

Solution

The issue was solved by creating a new app_server_name entry (without the blank) in the docbase config object.
The final test with API proved successful:

API> apply,s0,NULL,FTINDEX_AGENT_ADMIN,NAME,S,TEST_ftindex_01,AGENT_INSTANCE_NAME,S,ftserver.i_9200_IndexAgent,ACTION,S,status
...
q0
API> next,c,q0
...
OK
API> dump,c,q0
...
USER ATTRIBUTES name [0]: ftserver.i_9200_IndexAgent
 status [0]: 0
SYSTEM ATTRIBUTES
APPLICATION ATTRIBUTES
INTERNAL ATTRIBUTESAPI>

Once logged off and signed in again, DA displays the correct status (running) for the Index Agent.
I hope this solution will help other people in a situation where the EMC powerlink solution does not work.