edmiRemoteGetClientNames

EdmiError edmiRemoteGetClientNames (SdaiServerContext serverContextId,
                                      SdaiClientId      clientId, 
                                      SdaiString        *hostName, 
                                      SdaiString        *clientName,
                                      SdaiInvocationId  *edmiInvocationId);


Returns the client name and the name of the host that runs a thick EDMclient process identified by its clientId. The clientIds represent thick EDMclient processes that are state-fully connected to an EDMdatabaseServer. Such processes may be the EDMapplicationServer processes of the EDMserver or any other application that is connected to the EDMserver by means of an embedded thick EDMclient.

Arguments


TypeNameComment
SdaiServerContext

serverContextId

Context identification, from edmiDefineServerContext

SdaiClientId

clientId

The clientId that identifies the connected EDMclient on the EDMserver. A client Id may be obtained by browsing the result from the function edmiRemoteWhoIsOn

SdaiString

hostName

A variable that will receive name of the host that runs the connected EDMclient process with the given clientId.

SdaiString

clientName

A variable that will receive the optional name that has been assigned to the client process.

SdaiInvocationId

edmiInvocationId

Currently not used.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

 

Options


  

 

Example


 

 /* Check that the EDMserver have at
 between 5 and 10 application servers available. 
 Return a user defined error message if 
 they are to few or to many */ 
  
 #define S_ETOFEWAPPSERVERS FIRST_USER_DEFINED_ERROR_CODE
 #define S_ETOMANYAPPSERVERS (FIRST_USER_DEFINED_ERROR_CODE + 1)
 int i;
 EdmiError rstat;
 SdaiServerContext suContext;
 tEdmiWhoIsOnServer *pWhoIsOn;
 tEdmiConnection *connect;
 SdaiInteger nConnect, nAppServer;
 SdaiString hostName, clientName;
  
 /* Define Remote Server Context
 for the superuser */ 
 rstat = edmiDefineServerContext("SuperUserContext",
 "superuser", NULL, "xfx56kl9",
 "TCP", "9090", "MyServerHost",
 NULL, NULL, NULL, NULL, NULL, &suContext); 
  
 /* Define the error code and message */
 rstat = edmiRemoteDefineErrorCode(suContext, S_ETOFEWAPPSERVERS,
 "To few application servers", REPLACE_EXISTING, NULL); 
  
 rstat = edmiRemoteDefineErrorCode(suContext, S_ETOMANYAPPSERVERS,
 "To many application servers", REPLACE_EXISTING, NULL); 
  
 /* Find all application server client Ids */
 rstat = edmiRemoteWhoIsOn(suContext, &nConnect, &pWhoIsOn, NULL);
 connect = pWhoIsOn->connections;
 nAppServer = 0;
 for (i=0;i<nConnect;i++) {
 rstat = edmiRemoteGetClientNames(suContext, connect->clientId,
 &hostName, &clientName, NULL); 
 if (strstr(clientName, "EDMapplicationServer-") && 
 strstr(clientName, " Main Client") ) { 
 if (++nAppServer > 10) { 
 rstat = S_ETOMANYAPPSERVERS; 
 break; 
 } 
 } 
 edmiFree(hostName); 
 edmiFree(clientName); 
 }
 if (nAppServer < 5) {
 rstat = S_ETOFEWAPPSERVERS; 
 }
  
 if (rstat) {
 SdaiString _errMsg; 
 edmiRemoteGetErrorText(suContext, rstat, &_errMsg, NULL); 
 printf("\nError %d : %s", rstat, _errMsg); 
 }
 . . .

 

See also

Filter by label

There are no items with the selected labels at this time.

Â