edmiRemoteDefineErrorCode
EdmiError edmiRemoteDefineErrorCode(SdaiServerContext serverContextId, EdmiError errorCode, SdaiString errorText, SdaiOptions options, SdaiInvocationId *edmiInvocationId);
Defines an application specific error code in a remote EDMdatabase . Applications may add error codes and messages within a predefined range given by the symbolic constants FIRST_USER_DEFINED_ERROR_CODE and LAST_USER_DEFINED_ERROR_CODE.
Arguments
Type | Name | Comment |
SdaiServerContext | serverContextId | Context identification, from edmiDefineServerContext |
EdmiError | errorCode | An EDMinterface error code in the range that has been dedicated for application specific error codes. |
SdaiString | errorText | An error message that corresponds to the given application specific EDMinterface error code |
SdaiOptions | options | See description of available options below. |
SdaiInvocationId | edmiInvocationId | Currently not used. |
Return Value
Options
Option | Comment |
REPLACE_EXISTING | Replace the error message of an application specific error code if it already exists in the remote EDMdatabase |
DELETE_EXISTING | Delete the application specific error code from the remote EDMdatabase |
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.