2.8.3 常設コネクションの解放
図2-46で常設コネクション解放要求受け付けの処理に該当するのは,6.,7.のメッセージ送受信です。
(1) TP1/EEがrapクライアントとして動作する場合の処理
rapクライアントは,常設コネクションを経由して常設コネクション解放要求メッセージをrapサーバに送信します。次に常設コネクション解放応答メッセージ受信して,TCPコネクションを切断します。
常設コネクションを解放し,TCPコネクションを切断する場合を次に示します。
-
TP1/EEプロセスが正常終了または計画停止Aで終了する場合
rapサーバと常設コネクションを確立している状態で,rapクライアントとして動作しているTP1/EEプロセスを正常終了または計画停止Aで終了した場合,終了トランザクションの終了後にすべての常設コネクションを解放します。常設コネクションは,rapサーバに対して常設コネクション解放要求メッセージを送信することで解放されます。複数の常設コネクションが確立されている場合は,rapクライアントとして動作しているTP1/EEの終了処理に時間(最大でrpc_rap_watch_timeオペランドの指定値分)が掛かることがあります。
-
最大数を超えて常設コネクションを確立しようとした場合
常設コネクション最大数(RPC関連定義のrpc_rap_connection_countオペランドで指定)を超えてrapサーバに常設コネクションの確立要求を行った場合は,最も古く,かつ使用されていない常設コネクションを解放したあとで,新しく常設コネクションを確立します。
また,次に示す場合に常設コネクションが確立されているときは,強制的にTCPコネクションを切断します。
-
代理実行要求メッセージを送信したあと,応答待ち時間(RPC関連定義のwatch_timeオペランドで指定)以内に代理実行応答メッセージを受信できなかった場合
-
代理実行要求メッセージの送信に失敗した場合
-
代理実行応答メッセージの受信で不正なメッセージを受信した場合
-
rapサーバから常設コネクション解放指示のメッセージを受信した場合
-
常設コネクション解放要求メッセージを送信したあと,応答待ち時間(RPC関連定義のrpc_rap_watch_timeオペランドで指定)以内に常設コネクション解放応答メッセージを受信できない場合
(2) TP1/EEがrapサーバとして動作する場合の処理
rapサーバは,rap受信スレッドでrapクライアントからの常設コネクション解放要求メッセージを受信します。
常設コネクション解放要求メッセージを受信したあと,rap制御用処理キューへメッセージの登録要求をします。rap制御用処理キューからサービスを引き出した処理スレッド(rapトランザクション)は,常設コネクションを経由して常設コネクション解放応答メッセージをrapクライアントに送信し,TCPコネクションを切断します。
rapクライアントから,常設コネクション解放要求メッセージを受信しないで常設コネクションを解放する場合があります。その場合は,rapサーバは,常設コネクションの解放を指示するメッセージを送信します。