11.7.1 TPESVCFAILおよびTPESVCERRエラー

tpcall()またはtpgetrply()を呼び出した結果、通信の応答部分が失敗すると、tperrno(5)TPESVCERRまたはTPSEVCFAILが返されます。tpreturn()に渡された引数でエラーが判別され、この関数で実行する処理が決定されます。

引数の処理中にtpreturn()でエラーが発生すると、システムはエラーを元のリクエスタに返し、tperrno(5)TPESVCERRを設定します。受信側では、tperrno()の値を調べてエラーの発生を確認します。システムでは、tpreturn()関数からのデータ送信は行われず、tpgetrply()でエラーが発生した場合は、呼出し記述子が無効なものとみなされます。

tpreturn()TPESVCERRエラーが発生していない場合、rvalに返された値で呼出しが成功したか失敗したかを判断できます。アプリケーションでrvalパラメータにTPFAILが指定されると、システムはtperrno(5)TPESVCFAILを返し、呼出し側にデータ・メッセージを送信します。rvalTPSUCCESSが設定されると、呼出し側に制御が正常に戻り、tperrno()は設定されず、呼出し側がデータを受信します。