RX_GET_ERRINFO

Return information about nonfatal xfServerPlus errors

WTSupported in traditional Synergy on Windows
WNSupported in Synergy .NET on Windows
USupported on UNIX
VSupported on OpenVMS
xcall RX_GET_ERRINFO(netid, remote_err_descriptor)

Arguments

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

Discussion

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.

Examples

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