分散トランザクション処理機能 OpenTP1 解説

[目次][用語][索引][前へ][次へ]

7.3.6 一時クローズ処理要求の監視

一時クローズ処理要求監視機能を使用すると,一時クローズ処理要求が到着したかどうかを定期的に検査できます。この機能によって,OpenTP1のSPPやMHPがサービス要求受信待ち状態でも,一時クローズ処理要求を受信できます。

一時クローズ処理では,コネクションを確立したプロセス間で,一時クローズ処理要求の送信,および一時クローズ処理要求の受信/応答の送信のやり取りがあって初めてコネクションを切断します。

つまり,コネクションの一方のプロセスで使用中のソケット数が最大数に達して,一時クローズ処理要求を送信したとしても,もう一方のプロセスがこれを受信して応答を送信するまでは,コネクションを切断できません。OpenTP1のSPPやMHPは,サービス要求の受信を待つ際にmsgrcvシステムコールを使用しています。そのため,いったんmsgrcvシステムコールで待ち状態に入ってしまうと,相手プロセスから一時クローズ処理要求が送信されたとしても,これを受信できず,コネクションを切断できません。

一時クローズ処理要求監視機能は,使用中のソケット数が最大数に達したプロセスが一時クローズ処理要求を送信した場合,相手プロセスがmsgrcvシステムコールでサービス要求受信待ちの状態でも,相手プロセスが一時クローズ処理要求の受信/応答の送信をできるようにするものです。ソケット用ファイル記述子の最大数は,max_socket_descriptorsオペランドで設定します。

ユーザは,ユーザサービス定義,およびユーザサービスデフォルト定義で次に示すオペランドを指定できます。

 
set polling_control_data = ソケットの再利用指示(一時クローズ処理要求)の到着を検査するかどうか
set thread_yield_interval = ソケットの再利用指示(一時クローズ処理要求)を受信する契機を与えるインタバル時間