3.1.2 HSC2手順(同期モード)の送受信の方法
(1) コネクションの確立
TP1/NET/HSCは,コネクションを確立してから,相手システムとの回線を接続して,メッセージの送受信をします。コネクションは,通信管理との論理的な通信路です。
ユーザは,通信相手システムとID交換をするかどうかを,MCF通信構成定義(mcftalccn -j)のidchangeオペランドで指定できます。ID交換をすることを指定した場合,コネクション確立時に相手ターミナルIDリストを読み込み,回線接続時にターミナルIDを交換して,正しい相手システムであるかどうかを確認できます。ID交換をしないことを指定した場合,相手システムの確認をしないでコネクションを確立し,回線の接続をします。
ID交換をすることを指定すると,通信相手システムとコネクションを確立するときに相手ターミナルIDリストの読み込みをします。相手ターミナルIDリストには,発信用と着信用があり,あらかじめ定義で指定しておく必要があります。
- 発信用相手ターミナルIDリストファイル
相手システムのターミナルIDと電話番号の対応を定義したファイルです。このファイルは,発信用相手ターミナルIDリストの定義(mcftstf,mcftstlst)で指定します。定義の詳細は,6章の「TP1/NET/HSC固有のシステム定義の種類-HSC2手順(同期モード)」を参照してください。
このファイルは定義で指定したあと,相手ターミナルID定義ユティリティで作成し,$DCCONFPATHのディレクトリ下に作成します。
TP1/NET/HSCは,UAPから回線接続要求があった場合,このファイルの内容を参照し,相手システムの電話番号を決定してダイヤリングをします。
- 着信用相手ターミナルIDリストファイル
着信した相手システムのターミナルIDと,その相手システムと通信するUAPが使用する論理端末名称との対応を定義したファイルです。このファイルは,着信用相手ターミナルIDリストの定義(mcftstf,mcftrtlst)で指定します。定義の詳細は,6章の「TP1/NET/HSC固有のシステム定義の種類-HSC2手順(同期モード)」を参照してください。
このファイルは定義で指定したあと,相手ターミナルID定義ユティリティで作成し,$DCCONFPATHのディレクトリ下に作成します。
TP1/NET/HSCは,相手システムからの回線接続要求を着信したとき,読み込まれたファイルの内容を参照し,着信したコネクションとそのコネクションと結び付く論理端末名称を決定します。
コネクションの確立には,自動確立と手動確立があります。コネクションが確立すると,状態通知イベント(COPNEVT)を通知します。
- 自動確立
MCF通信構成定義(mcftalccn -i)でautoを指定した場合,OpenTP1開始時および再開始時に自動的に確立します。
- 手動確立
MCF通信構成定義(mcftalccn -i)でmanualを指定した場合,運用コマンド(mcftactcn)で確立します。
HSC2手順の場合のコネクションの確立について,次の図に示します。
図3-3 HSC2手順(同期モード)のコネクションの確立
![[図データ]](figure/zu030300.gif)
- OpenTP1システムの開始および再開始,または運用コマンド(mcftactcn)を入力します。
- ID交換をする場合,TP1/NET/HSCは,定義で指定された発信用相手ターミナルIDリストファイル,および着信用相手ターミナルIDリストファイルを読み込みます。
- TP1/NET/HSCは,通信管理とコネクション確立の準備をします。
- コネクションが確立されます。
- TP1/NET/HSCは,コネクションが確立されると状態通知イベント(COPNEVT)を通知します。MCFアプリケーション定義にCOPNEVTが定義されていない場合は,MHPは起動しません。
- コネクションが確立し,相手システムとの回線を接続できる状態です。
(2) 回線の接続
TP1/NET/HSCは,相手システムと回線を接続します。回線を接続するときに,相手システムの確認のためにターミナルIDの交換をします。ターミナルIDの交換をしない場合は,MCF通信構成定義(mcftalccn -j)のidchangeオペランドでnouseを指定してください。
交換の結果,接続できるかどうかを決定します。接続できない場合は,直ちに回線を切断します。接続できる場合は,メッセージの送受信をするMHPを決定します。以後,回線が切断されるまで,このMHPは変更できません。また,回線接続中には,送受信中の相手ターミナルIDを別のIDと切り替えられません。
回線の接続には,発信と着信の場合があります。
(a) 発信の場合の回線の接続
送信する自システムのターミナルIDは,MCF通信構成定義(mcftalccn -n)のtidオペランドで指定したコードであり,EBCDIKコードに変換します。
受信したメッセージに設定されている相手ターミナルIDは,JIS8コードに変換して回線接続指示で指定されたIDコードと比較します。
IDが不一致の場合,状態通知イベント(CERREVT)を通知し,論理端末を閉塞します。この場合の閉塞は,運用コマンド(mcftactle)を入力するか,相手システムから該当する論理端末にメッセージの送信があったときに解除されます。
発信の場合の回線の接続について,次の図に示します。
図3-4 発信の場合の回線の接続(同期モード)
![[図データ]](figure/zu030400.gif)
- send関数で相手システムへ回線接続を要求します。
- メモリ上の出力キューから,回線接続要求メッセージを取り出します。
- ID交換をする場合,TP1/NET/HSCは,コネクション確立時に読み込まれた相手ターミナルIDリストファイルを検索し,発信に使用するダイヤル番号を決定します。
ID交換をしない場合,TP1/NET/HSCは,回線接続指示テキストの相手システムダイヤル番号を使用して,通信管理に対して回線の接続要求します。
- 相手システムと回線接続の準備をします。
- 回線の相手システムから回線接続の完了を受け取ります。ID交換をする場合は,接続要求時の相手ターミナルIDと比較します。
- 相手システムから受け取った接続情報を編集します。
- 入力メッセージ編集UOCを呼び出します。UOCが登録されていない場合,呼び出さないで次の処理へ続きます。
- TP1/NET/HSCは,メモリ上の出力キューの回線接続のデータを消去し,仕掛り通番を取得します。
- TP1/NET/HSCは,入力メッセージ編集UOCで決定したアプリケーション,またはMCF通信構成定義(mcftalcle -v)で指定したアプリケーションを起動します。
- UAPはreceive関数を呼び出して,回線の接続情報を受け取ります。
- 発信によって回線を接続したため,TP1/NET/HSCは,送信モードになります。
(b) 着信の場合の回線の接続
受信したメッセージに設定されている相手ターミナルIDは,JIS8コードに変換し,コネクション確立時に読み込まれた着信用相手ターミナルIDリストに登録されているIDリストと比較します。
受信したIDが,着信用相手ターミナルIDリストにない場合,回線を切断します。IDチェックの結果,IDが登録されている場合,MCF通信構成定義(mcftalccn -n)のtidオペランドで指定した自システムのターミナルIDをEBCDIKコードに変換して,相手システムに送信します。このとき,IDの長さは定義で指定されている長さをそのまま使用します。
着信の場合の回線の接続について,次の図に示します。
図3-5 着信の場合の回線の接続(同期モード)
![[図データ]](figure/zu030500.gif)
- 相手システムから回線の接続情報を受け取ります。
- ID交換をする場合,TP1/NET/HSCは,受け取ったIDが着信用相手ターミナルIDリストに登録されているかどうかをチェックします。
- TP1/NET/HSCは,相手システムから受け取った接続情報を編集します。
- 入力メッセージ編集UOCを呼び出します。UOCが登録されていない場合,呼び出さないで次の処理へ続きます。
- ID交換をする場合,着信用相手ターミナルIDリストファイルの検索結果から,相手システムとの通信に使用する論理端末名称を決定します。
ID交換をしない場合,該当するコネクションに定義されている論理端末のうち,先頭の論理端末を使用します。
- 仕掛り通番を取得します。
- TP1/NET/HSCは,回線接続の受諾応答を送信します(ID交換をする場合は,自システムのIDを送信します)。
- TP1/NET/HSCは,入力メッセージ編集UOCで決定したアプリケーション,またはMCF通信構成定義(mcftalcle -v)で指定したアプリケーションを起動します。
- UAPはreceive関数を呼び出して,回線の接続情報を受け取ります。
- 着信によって回線を接続したため,TP1/NET/HSCは,受信モードになります。
(3) AP間通信
(4) 回線の切断
相手システムと接続中の回線を切断する方法は次のとおりです。
回線接続の流れについては,「付録A.3 HSC2手順(同期モード)のメッセージの送受信」を参照してください。
(a) メッセージ送信時の切断
メッセージ送信時に,sendsync関数に回線切断指示のテキスト形態を設定して送信すると,回線が切断されます。
(b) MHP終了での切断
MHPをreturnで終了させると回線が切断されます。
(c) 相手システムからの切断
相手システムから回線切断要求を受信すると,回線が切断されます。
(5) コネクションの解放
回線切断後,コネクションを解放します。
コネクションの解放には,自動解放と手動解放があります。コネクションが解放されると,状態通知イベント(CCLSEVT)を通知します。
- 自動解放
オンライン終了時,自動的にコネクションを解放します。
- 手動解放
運用コマンド(mcftdctcn -f)を入力して,コネクションを解放します。
コネクションの解放について次の図に示します。
図3-6 HSC2手順(同期モード)のコネクションの解放
![[図データ]](figure/zu030600.gif)
- OpenTP1システムの終了,または運用コマンド(mcftdctcn -f)を入力します。
- TP1/NET/HSCは,コネクション解放の準備をします。
- ID交換をする場合,TP1/NET/HSCは,発信用相手ターミナルIDリストファイル,および着信用相手ターミナルIDリストファイルを破棄します。
- コネクションが解放されます。
- TP1/NET/HSCは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。MCFアプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。
(6) コネクション切断後の再確立
TP1/NET/HSCのHSC2手順を使用した場合,通信管理から回復不能なコネクションの障害を検出すると,コネクションを切断します。コネクションが切断状態になると,障害通知イベント(CERREVT)を通知します。
コネクションを切断したあと,ユーザはログメッセージでコネクションの再確立が必要かどうかを判断します。必要であれば,運用コマンド(mcftactcn)を入力してコネクションの再確立をします。