11.7.1 TPESVCFAIL and TPESVCERR Errors
If the reply portion of a communication fails as a result of a call to tpcall()
or tpgetrply()
, the system returns TPESVCERR
or TPSEVCFAIL
to tperrno(5)
. The system determines the error by the arguments that are passed to tpreturn()
and the processing that is performed by this function.
If tpreturn()
encounters an error in processing or handling arguments, the system returns an error to the original requester and sets tperrno(5)
to TPESVCERR
. The receiver determines that an error has occurred by checking the value of tperrno()
. The system does not send the data from the tpreturn()
function, and if the failure occurred on tpgetrply()
, it renders the call descriptor invalid.
If tpreturn()
does not encounter the TPESVCERR
error, then the value returned in rval
determines the success or failure of the call. If the application specifies TPFAIL
in the rval
parameter, the system returns TPESVCFAIL
in tperrno(5)
and sends the data message to the caller. If rval
is set to TPSUCCESS
, the system returns successfully to the caller, tperrno()
is not set, and the caller receives the data.
Parent topic: General Communication Call Errors