2.1.1 コネクションの確立と解放
TP1/NET/User Agentは,相手システムとの間で,論理的な通信路(コネクション)を確立してメッセージを送受信します。コネクションは,OSAS/UAプロトコルのアソシエーションに対応します。
OSAS/UAプロトコルでは,データ送受信の多重化はUAで行います。
このため自システムと相手システムの同一PSAPアドレス間では,1本のコネクションしか確立できません。
- 〈この項の構成〉
(1) コネクションの確立
TP1/NET/User Agentからコネクションを確立します。コネクションの確立方法には,次の三つがあります。
-
コネクション定義(mcftalccn -i)でのauto指定によるオンラインの開始・再開始時の自動確立
-
運用コマンド(mcftactcn)入力による手動確立
-
API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))の発行による手動確立
運用コマンド(mcftactcn)入力時またはオンライン開始時の,TP1/NET/User Agentからのコネクションの確立について,次の図に示します。
-
OpenTP1システムを開始・再開始します。または運用コマンド(mcftactcn)を入力します。
-
TP1/NET/User Agentは,MCF通信構成定義情報に基づいてUINT要求を作成し,相手システムに送信します。
-
相手システムからUINT構成指示またはUINT受諾を受信します。
-
相手システムからUINT構成指示を受信した場合には,処理完了UINFを相手システムに送信すると,コネクションが確立します。UINT受諾を受信した場合には,UINT受諾受信を契機にコネクションが確立します。
-
TP1/NET/User Agentは,コネクションが確立すると状態通知イベント(COPNEVT)を通知します。
API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))発行時の,TP1/NET/User Agentからのコネクションの確立について,次の図に示します。
-
API(dc_mcf_tactcn関数またはCBLDCMCF('TACTCN△△'))を発行します。
-
TP1/NET/User Agentは,MCF通信構成定義情報に基づいてUINT要求を作成し,相手システムに送信します。
-
相手システムからUINT構成指示またはUINT受諾を受信します。
-
相手システムからUINT構成指示を受信した場合には,処理完了UINFを相手システムに送信すると,コネクションが確立します。UINT受諾を受信した場合には,UINT受諾受信を契機にコネクションが確立します。
-
TP1/NET/User Agentは,コネクションが確立すると状態通知イベント(COPNEVT)を通知します。
コネクション確立時に,自システムと相手システムのUAの数を突き合わせます。UAの数が不一致の場合,一致しないUAを使用不可(閉塞状態)として,一致するUAだけが使用可能となります。
コネクション確立時の,UAの数によるTP1/NET/User Agentの処理を次の表に示します。
ただし,MCF通信構成定義で「個別開局」と指定されたUAに関しては,該当するUAに関する論理端末を閉塞扱いとし,運用コマンド(mcftactle)またはAPI(dc_mcf_tactle関数またはCBLDCMCF('TACTLE△△'))で閉塞を解除するまではメッセージ送受信ができません。また,表2-2の項番1で使用不可となった論理端末については,閉塞を解除できません。
(2) コネクションの解放
コネクションは,次に示す場合,正常に解放します。
-
相手システムから解放要求された場合
-
運用コマンド(mcftdctcn)を入力した場合
-
API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行した場合
-
MCF通信構成共通定義(mcftcomn -x)のtermrlsオペランドにnomalを指定して,オンラインを終了した場合
なお,次の場合はコネクションを強制的に解放し,障害通知イベント(CERREVT)を通知します。
-
運用コマンド(mcftdctcn -f)を受け付けた場合
-
強制解放オプション※を指定したAPI(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))を発行した場合
-
送受信バッファ,および編集バッファの資源不足が発生した場合
-
TP1/NET/User Agent内で回復できない論理矛盾が発生した場合
-
MCF通信プロセスが異常終了した場合(通信管理の機能に依存します。この場合はCERREVTを通知しません)
-
相手システムに何らかの異常が発生し,コネクションが解放された場合
- 注※
-
dc_mcf_tdctcn関数の場合,action引数にDCMCFFRCを指定します。
CBLDCMCF('TDCTCN△△')の場合,データ名D1に'1'を指定します。
コネクションの正常解放はユーザ間で,データ転送の終了の同期合わせ後に行ってください。
相手システムからのコネクションの正常解放を図2-3に示します。運用コマンド(mcftdctcn)入力時またはオンライン終了時の自システムからのコネクションの解放を図2-4に示します。また,API(dc_mcf_tdctcn関数またはCBLDCMCF('TDCTCN△△'))発行時の自システムからのコネクションの解放を図2-5に示します。
コネクションが正常に解放されると,TP1/NET/User Agentは,状態通知イベント(CCLSEVT)を通知します。