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
Type | Name | Comment |
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
Â
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.
Â