TP1/Client/Jで実行できるRPCの形態は,同期応答型RPC,非応答型RPC,および連鎖型RPCです。
CUPからSPPへ問い合わせメッセージを送信し,応答メッセージを受信する形態です。CUPは,SPPから処理結果が返ってくるまで,次の処理を待ちます。同一サービスを複数回呼び出した場合,サーバプロセスはそのたびにスケジュールされます。
同期応答型RPCの処理の流れを次の図に示します。
図2-3 同期応答型RPCの処理の流れ
CUPからSPPへ問い合わせメッセージを送信し,応答メッセージを受信しない形態です。CUPは,SPPへ問い合わせメッセージを送信したあと,SPPから処理結果を受け取らないで,すぐに次の処理を実行します。
非応答型RPCでは,何らかの通信障害が発生した場合や呼び出したサービスが誤っていた場合でもエラーを受け取れません。
非応答型RPCの処理の流れを次の図に示します。
図2-4 非応答型RPCの処理の流れ
TP1/Client/JのリモートAPI機能を使用したCUPからSPPへ問い合わせメッセージを送信し,問い合わせた応答メッセージを受信する形態です。CUPは,SPPから処理結果が返ってくるまで,次の処理を待ちます。同期応答型RPCとの違いは,サーバプロセスを固定できることです。連鎖型RPCの場合,同一サービスに複数回問い合わせメッセージを送信しても,サーバプロセスは再スケジュールされません。
連鎖型RPCを使用すると,一つのトランザクション処理に必要なユーザプロセスの数が少なくなり,トランザクション処理に掛かる負荷を軽減できます。トランザクションとして連鎖型RPCを使用する場合は,一つのグローバルトランザクションで動作します。