6.5.7 RPCメッセージ用コネクションのチェック機能
コネクションを確立した状態で相手先のマシンがダウンした場合,RSTパケットが送信されないため,自TP1/EEではコネクションの切断を検知できません。このとき,切断されたコネクションを使用してメッセージを送信すると,メッセージの吸い込み(送信元ではメッセージの送信に成功したように見えるものの,実際には送信に失敗している事象)が発生します。
RPCメッセージ用コネクションのチェック機能を使用すると,TP1/Server Baseのネームサーバと連携し,コネクションの確立先のマシンが再起動していないかを確認して,TP1/EEが保持するTCP/IPのコネクションの中から相手マシンのダウンなどで切断されたコネクションを無効にできます。
RPCメッセージ用コネクションのチェック機能は,TP1/Server Baseの起動通知機能(システム共通定義のname_notifyオペランドにYを指定)を使用し,コネクションの確立先プロセスの起動時刻とコネクション確立時刻を比較することで,コネクションが確立されているかどうかを判断します。必要に応じて,TP1/Server Baseのノード監視機能(ネームサービス定義のname_audit_confオペランドに1または2を指定),起動通知機能(システム共通定義のname_notifyオペランドにYを指定),namunavlコマンド,およびnamalivechkコマンドを使用することもできます。
RPCメッセージ用コネクションのチェック機能は,次の条件を満たす場合に使用できます。
-
RPC関連定義のname_useオペランドにYを指定している。
-
RPC関連定義のrpc_nam_conn_checkオペランドにYを指定している。
-
TP1/Server Baseのユーザサービス定義のservice_expiration_timeオペランドに0を指定している。
-
TP/EEがオンライン中である。
- 〈この項の構成〉
(1) 確立コネクションのチェック方法
RPCメッセージ用コネクションのチェック機能を使用すると,TP1/EEはRPC関連定義のrpc_nam_check_timeオペランドの指定値ごとに起動時刻をチェックします。このときチェックされるのは,RPC関連定義のrpc_nam_check_numオペランドで指定したあて先分の起動時刻です。
取得したコネクションの確立先の起動時刻と,コネクションの確立時刻を比較し,コネクションの確立時刻が起動時刻よりも古い場合は,無効なコネクションと判断してコネクションを切断します。
ただし,最大で次の計算式の時間分,チェックが遅れることがあります。
((↑(コネクション確立先÷rpc_nam_check_numオペランドの指定値)↑)−1)×rpc_nam_check_timeオペランドの指定値
- (凡例)
-
↑↑:小数点以下を切り上げます。
(2) 注意事項
RPCメッセージ用コネクションのチェック機能でコネクションのチェックができるのは,TP1/Server Baseのシステム共通定義のall_nodeオペランド,またはall_node_exオペランドで指定した範囲内との間のコネクションだけです。