Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »


 
Returns the error message that corresponds to the given _EDMinterface_ error code.
Note that the returned message is located in a static buffer in EDMinterface and may be overwritten by the next EDMinterface operation.
Related function: edmiRemoteDefineErrorCode.
Header:
#include "sdai.h"
Prototype:
EdmiError edmiRemoteGetErrorText(SdaiServerContext serverContextId,
                                  EdmiError         errCode, 
                                  SdaiString        *errorText, 
                                  SdaiInvocationId  *edmiInvocationId);
 
Arguments:

serverContextId

Context identification, from edmiDefineServerContext

errCode

The _EDMinterface_ error code.

errorText

A variable tat will receive the error message that corresponds to the given _EDMinterface_ error code. Do not use edmiFree to release this memory.

edmiInvocationId

Currently not used.

Returns:
A completion code of datatype EdmiError is the returned function value. The completion code has the following values:
Completion code = 0 : Operation successfully performed.
Completion code != 0: Error in operation. Completion code is an _EDMinterface_ error code. Use edmiGetErrorText to get the error text corresponding to the error code.
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); 
}
. . .

  • No labels