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


TypeNameComment
 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


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

 

Options


OptionComment

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.