Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Server Base Enterprise Option プログラム作成の手引


2.8.1 常設コネクションの確立

図2-46で,常設コネクション確立要求受け付けの処理に該当するのは,1.〜3.のメッセージ送受信です。

〈この項の構成〉

(1) TP1/EEがrapクライアントとして動作する場合の処理

rapクライアントは,該当するサービスグループのrapサーバに対してTCPコネクションを確立して,常設コネクション確立要求メッセージをrapサーバに送信します。

常設コネクションは,次に示すサービスグループに対してee_rpc_call関数を呼び出したあと,rapサーバからの常設コネクション確立応答メッセージを受信することによって確立されます。

常設コネクションが確立されると,該当するサービスグループに対するee_rpc_call関数は,常設コネクションを経由してrapサーバに送信され,rapサーバ上で代理実行されます。

非同期応答型RPCは使用できません。非同期応答型RPCを使用した場合,リモートAPI機能ではなく,通常のRPCとして動作します。また,トランザクション内からリモートAPI機能でee_rpc_call関数を呼び出してもトランザクションとして動作しません。

なお,常設コネクション確立要求メッセージを送信したあと,応答待ち時間(RPC関連定義のrpc_rap_watch_timeオペランドで指定)以内に常設コネクション確立応答メッセージを受信できない場合,ee_rpc_call関数はエラーリターンします。

(2) TP1/EEがrapサーバとして動作する場合の処理

rapサーバは,rap受信スレッドでrapクライアントからのTCPコネクション確立要求メッセージ,および常設コネクション確立要求メッセージを受信します。常設コネクション確立要求メッセージは,リモートAPI受信用ポート(RPC関連定義のrap_listen_portオペランドで指定)で受け付けます。確立した常設コネクションは,常設コネクション解放応答メッセージ送信後,または送受信障害発生時に切断されます。

常設コネクション確立要求メッセージを受信したあと,rap制御用処理キューへメッセージの登録要求をします。rap制御用処理キューからサービスを引き出した処理スレッド(rapトランザクション)は,常設コネクションを経由して常設コネクション確立応答メッセージをrapクライアントに送信します。

常設コネクション確立エラーが発生する場合

同時に接続するrapクライアントの数がRPC関連定義のrap_max_clientオペランドの指定値を超えた場合,またはプロセス終了処理中に常設コネクション確立要求メッセージを受信した場合は,常設コネクション確立エラー応答メッセージを送信し,TCPコネクションを切断します。

常設コネクション確立状態でTP1/EEプロセスが終了した場合

rapクライアントと常設コネクションを確立している状態でTP1/EEプロセスを正常終了モード,または計画停止Aモードで終了した場合,TP1/EEの終了処理の動作は,RPC関連定義のrpc_rap_remaincon_endwaitオペランドの指定に従います。

  • RPC関連定義のrpc_rap_remaincon_endwaitオペランドの指定値がYの場合

    常設コネクションが解放されるまでプロセス終了を待ち合わせます。

    このとき,RPC関連定義のrap_msg_output_intervalオペランドで設定した時間間隔で常設コネクション数を表示します。rap_msg_output_intervalオペランドに0を設定した場合は,初回だけ常設コネクション数を表示します。rapクライアントから常設コネクション解放要求がない場合は,常設コネクション切断コマンド(eerpcrapcls)で切断できます。

  • RPC関連定義のrpc_rap_remaincon_endwaitオペランドの指定値が「N」の場合

    接続中の常設コネクションに対して切断指示を行い切断します。

  • RPC関連定義のrpc_rap_remaincon_endwaitオペランドの指定値が「F」の場合

    接続中の常設コネクションを強制的に切断します。