2.1.3 コネクションの解放
コネクションの解放には,自動解放と手動解放の2種類があります。
- 〈この項の構成〉
(1) コネクションの自動解放
MCPがコネクションを自動解放するタイミングは,次に示すとおりです。
-
メッセージ受信で障害を検知した時
TCP/IPプロトコルを使用時に,入力セグメント判定UOCでエラーリターンまたはパラメタ不正があったときは,MCPによってコネクションが解放されます。このとき,入力メッセージは破棄され,コネクション障害のMCP後処理トランザクションが起動されます。
-
オンラインを終了した時
オンライン終了時には,MCPによってすべてのコネクションが解放されます。
-
コネクション障害が発生した時
コネクション障害時には,MCPによってコネクションが解放されます。コネクション障害が発生した場合のコネクションの解放の流れを次の図に示します。
図2‒5 コネクション障害が発生した場合のコネクションの解放の流れ
- 説明
-
-
障害を検知した場合,MCPはコネクションを解放します。
-
コネクション解放のRL(MCP後処理トランザクション)を処理キューに登録します。
-
UAPにコネクションの解放を通知します。
-
(2) コネクションの手動解放
eemcpdctcnコマンドの実行,またはee_mcp_dctcn関数の発行によって,コネクションを手動解放できます。
ee_mcp_dctcn関数の発行によって,手動でコネクションを解放する場合の処理の流れを次の図に示します。
|
|
- 説明
-
-
UAPは,MCPに対してコネクションの解放要求をします。
-
MCPは,コネクション管理テーブルでコネクションIDを検索し,解放要求のあったコネクションが確立中であることをチェックします。
-
MCPは,コネクションの解放要求をします。
-
コネクションが解放されます。
-
解放要求のあったコネクションが解放されると,コネクション確立のRL(MCP後処理トランザクション)を処理キューに登録します。
-
UAPにコネクションの解放を通知します。
-
- ■コネクションの解放形態
-
自システム側からコネクションを解放する場合,MCPではeemcpcn定義コマンドの-fオプションのcnreleaseオペランドの指定値によって,コネクションの解放形態を決定します。
解放形態には,FINパケットを送信してコネクションを解放する形態(cnreleaseオペランドにfinを指定)と,RSTパケットを送信して強制的にコネクションを解放する形態(cnreleaseオペランドにrstを指定)があります。
- 注意事項
-
-
MCPはOSが提供するTCP/IPのソケットインタフェースを利用しています。そのため,FINパケットを送信するように指定した場合でも,ネットワーク上でのすれ違いなどによって,MCPの指示とは関係なくRSTパケットを送信する場合があります。
-
TP1/EE終了(正常終了,計画停止A,および計画停止B)時は,MCP構成定義に関係なくFINパケットを送信してコネクションを解放します。
-