RX_GET_ERRINFO

Return information about nonfatal xfServerPlus errors

WSupported on Windows
USupported on Unix
VSupported on OpenVMS
NSupported in Synergy .NET
xcall RX_GET_ERRINFO(netid, remote_err_descriptor)

netid

Network connection ID corresponding to the value set by %RX_START_REMOTE. (n)

remote_err_descriptor

A record containing the fields in the remote execution error packet. The record format is

group rx_stderror
   method_id            ,a32
   num_of_errors        ,i4
   error_num            ,i4
   description          ,a128
   clarifying_desc      ,a256
endgroup

You can call RX_GET_ERRINFO to get more information about a nonfatal runtime error generated during an %RXSUBR call. See the record format in the example below for the information returned.

In the event of a nonfatal error, xfServerPlus sends a message to the client. When this message is received, information about the error is stored with the associated network connection ID and a runtime error is signaled on the client. The xfServerPlus session remains available for future calls.

The record structure shown above is defined in rxerr.def, located in DBLDIR. To extract error information, you have to .INCLUDE the rxerr.def file.

To .INCLUDE rxerr.def:

.define RX_ERR_DEF
record errinforec
.include "DBLDIR:rxerr.def"
.undefine RX_ERR_DEF

Error handling code:

onerror ($ERR_XFREQPARM) handle_parmerr, handle_other
     ;trap parm err separately, and then trap others
      xcall rxsubr(netid, "methodid", arg1, arg2, arg3)
offerror
.
.
.
handle_parmerr,
     xcall RX_GET_ERRINFO(netid, errinforec)
     xcall handle_parmerr(errinforec)
     xreturn
handle_other,
     xcall RX_GET_ERRINFO(netid, errinforec)
     case %ERROR of 
        begincase
        .
        .
        .
        endcase
     else
     .
     .
     .
     xreturn