2.1.5 コネクションの解放
TP1/NET/OSAS-NIFは,コネクションを解放してからシステム間通信を終了します。
コネクションの解放には,正常解放と強制解放があります。
(1) 正常解放
TP1/NET/OSAS-NIFは,次に示す場合,コネクションを正常解放し,状態通知イベント(CCLSEVT)を通知します。
-
自システムから運用コマンド(mcftdctcn)を入力した場合
-
自システムからAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行した場合
-
相手システムからの解放要求を受信した場合
-
オンライン正常終了する場合※
- 注※
-
この場合は状態通知イベントを通知しません。
運用コマンドによるコネクションの正常解放を図2-10に,APIによるコネクションの正常解放を図2-11に,相手システムからの解放要求によるコネクションの正常解放を図2-12に,オンライン正常終了によるコネクションの正常解放を図2-13に示します。
|
|
-
mcftdctcnコマンド(-fオプションなし)を入力します。
-
TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を送信します。
-
相手システムからNIFアソシエーション解放の回答を受信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。
|
|
-
API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行します。
-
TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を送信します。
-
相手システムからNIFアソシエーション解放の回答を受信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。
|
|
-
相手システムから,NIFアソシエーション解放要求を受信します。
-
TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション解放回答を相手システムへ送信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。アプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。
|
|
-
dcstopコマンドを入力します。
-
TP1/NET/OSAS-NIFは,仕掛り中の送受信メッセージを処理します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション解放要求を相手システムへ送信します。
-
相手システムから,NIFアソシエーション解放の回答を受信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,終了します。
(2) 強制解放
TP1/NET/OSAS-NIFは,次に示す場合,コネクションを強制的に解放し,障害通知イベント(CERREVT)を通知します。
-
運用コマンド(mcftdctcn -f)を入力した場合
-
強制解放オプション※1を指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行した場合
-
送受信バッファおよび編集バッファの資源が不足した場合
-
通信管理から回線障害を報告された場合
-
相手システムからの強制解放を受信した場合
-
MCF通信プロセスが終了した場合,または強制停止した場合※2
- 注※1
-
dc_mcf_tdctcn関数の場合,action引数にDCMCFFRCを指定します。
CBLDCMCF('TDCTCN△△')の場合,データ名D1に'1'を指定します。
- 注※2
-
この場合は状態通知イベントを通知しません。
運用コマンドによるコネクションの強制解放を図2-14に,APIによるコネクションの強制解放を図2-15に,相手システムからの強制解放によるコネクションの強制解放を図2-16に示します。
|
|
-
mcftdctcn -fコマンドを入力します。
-
仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション緊急解放要求を送信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。
|
|
-
強制解放オプションを指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行します。
-
仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
TP1/NET/OSAS-NIFは,NIFアソシエーション緊急解放要求を送信します。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。
|
|
-
相手システムから,NIFアソシエーション緊急解放要求を受信します。
-
仕掛り中の受信メッセージを破棄し,送信処理を中断します。メッセージの処理については,「(3) コネクション解放時のメッセージの処理」を参照してください。
-
コネクションを解放します。
-
TP1/NET/OSAS-NIFは,コネクションが解放されると状態通知イベント(CERREVT)を通知します。アプリケーション定義にCERREVTが定義されていない場合は,MHPは起動しません。
(3) コネクション解放時のメッセージの処理
コネクションの正常解放時に送受信中のメッセージがある場合,TP1/NET/OSAS-NIFは,メッセージの送受信を完了してからコネクションを解放します。
コネクションの強制解放時に送受信中のメッセージがある場合,メッセージの扱いは,論理端末の端末タイプによって異なります。強制解放時の送受信中メッセージの扱いを次の表に示します。
|
端末タイプ |
送信メッセージ |
受信メッセージ |
|||
|---|---|---|---|---|---|
|
送信中断 |
メッセージの破棄 |
再確立時の再送※ |
メッセージの破棄 |
再確立時の再受信 |
|
|
request型 |
○ |
× |
○ |
○ |
△ |
|
request型 (同期型) |
○ |
○ |
× |
○ |
× |
|
reply型 |
○ |
× |
△ |
○ |
△ |
|
send型 |
○ |
× |
○ |
− |
− |
|
receive型 |
− |
− |
− |
○ |
△ |
- (凡例)
-
○:処理をします。
×:処理をしません。
△:相手システムに依存します。
−:該当しません。
- 注※
-
再送の詳細については,「2.5 再送機能」を参照してください。
(4) コネクションを解放するときの注意事項
コネクションの状態が解放処理中の場合は,オンラインを終了することができません。次のどれかでコネクションを強制解放してから,オンラインを終了してください。
-
運用コマンド(mcftdctcn -f)を入力する。
-
強制解放オプションを指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行する。
コネクションの状態を確認するときは,次のどれかを行ってください。
-
運用コマンド(mcftlscn)を入力する。
-
API(dc_mcf_tlscn関数またはCBLDCMCF('TLSCN△△△'))を発行する。