3.1.2 HSC2手順(同期モード)の送受信の方法

HSC2手順(同期モード)を使用したメッセージの送受信の手順は,次のとおりです。

  1. コネクションの確立
  2. 回線の接続
  3. AP間通信
  4. 回線の切断
  5. コネクションの解放
  6. コネクション切断後の再確立
<この項の構成>
(1) コネクションの確立
(2) 回線の接続
(3) AP間通信
(4) 回線の切断
(5) コネクションの解放
(6) コネクション切断後の再確立

(1) コネクションの確立

TP1/NET/HSCは,コネクションを確立してから,相手システムとの回線を接続して,メッセージの送受信をします。コネクションは,通信管理との論理的な通信路です。

ユーザは,通信相手システムとID交換をするかどうかを,MCF通信構成定義(mcftalccn -j)のidchangeオペランドで指定できます。ID交換をすることを指定した場合,コネクション確立時に相手ターミナルIDリストを読み込み,回線接続時にターミナルIDを交換して,正しい相手システムであるかどうかを確認できます。ID交換をしないことを指定した場合,相手システムの確認をしないでコネクションを確立し,回線の接続をします。

ID交換をすることを指定すると,通信相手システムとコネクションを確立するときに相手ターミナルIDリストの読み込みをします。相手ターミナルIDリストには,発信用と着信用があり,あらかじめ定義で指定しておく必要があります。

コネクションの確立には,自動確立と手動確立があります。コネクションが確立すると,状態通知イベント(COPNEVT)を通知します。

HSC2手順の場合のコネクションの確立について,次の図に示します。

図3-3 HSC2手順(同期モード)のコネクションの確立

[図データ]

  1. OpenTP1システムの開始および再開始,または運用コマンド(mcftactcn)を入力します。
  2. ID交換をする場合,TP1/NET/HSCは,定義で指定された発信用相手ターミナルIDリストファイル,および着信用相手ターミナルIDリストファイルを読み込みます。
  3. TP1/NET/HSCは,通信管理とコネクション確立の準備をします。
  4. コネクションが確立されます。
  5. TP1/NET/HSCは,コネクションが確立されると状態通知イベント(COPNEVT)を通知します。MCFアプリケーション定義にCOPNEVTが定義されていない場合は,MHPは起動しません。
  6. コネクションが確立し,相手システムとの回線を接続できる状態です。

(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 発信の場合の回線の接続(同期モード)

[図データ]

  1. send関数で相手システムへ回線接続を要求します。
  2. メモリ上の出力キューから,回線接続要求メッセージを取り出します。
  3. ID交換をする場合,TP1/NET/HSCは,コネクション確立時に読み込まれた相手ターミナルIDリストファイルを検索し,発信に使用するダイヤル番号を決定します。
    ID交換をしない場合,TP1/NET/HSCは,回線接続指示テキストの相手システムダイヤル番号を使用して,通信管理に対して回線の接続要求します。
  4. 相手システムと回線接続の準備をします。
  5. 回線の相手システムから回線接続の完了を受け取ります。ID交換をする場合は,接続要求時の相手ターミナルIDと比較します。
  6. 相手システムから受け取った接続情報を編集します。
  7. 入力メッセージ編集UOCを呼び出します。UOCが登録されていない場合,呼び出さないで次の処理へ続きます。
  8. TP1/NET/HSCは,メモリ上の出力キューの回線接続のデータを消去し,仕掛り通番を取得します。
  9. TP1/NET/HSCは,入力メッセージ編集UOCで決定したアプリケーション,またはMCF通信構成定義(mcftalcle -v)で指定したアプリケーションを起動します。
  10. UAPはreceive関数を呼び出して,回線の接続情報を受け取ります。
  11. 発信によって回線を接続したため,TP1/NET/HSCは,送信モードになります。
(b) 着信の場合の回線の接続

受信したメッセージに設定されている相手ターミナルIDは,JIS8コードに変換し,コネクション確立時に読み込まれた着信用相手ターミナルIDリストに登録されているIDリストと比較します。

受信したIDが,着信用相手ターミナルIDリストにない場合,回線を切断します。IDチェックの結果,IDが登録されている場合,MCF通信構成定義(mcftalccn -n)のtidオペランドで指定した自システムのターミナルIDをEBCDIKコードに変換して,相手システムに送信します。このとき,IDの長さは定義で指定されている長さをそのまま使用します。

着信の場合の回線の接続について,次の図に示します。

図3-5 着信の場合の回線の接続(同期モード)

[図データ]

  1. 相手システムから回線の接続情報を受け取ります。
  2. ID交換をする場合,TP1/NET/HSCは,受け取ったIDが着信用相手ターミナルIDリストに登録されているかどうかをチェックします。
  3. TP1/NET/HSCは,相手システムから受け取った接続情報を編集します。
  4. 入力メッセージ編集UOCを呼び出します。UOCが登録されていない場合,呼び出さないで次の処理へ続きます。
  5. ID交換をする場合,着信用相手ターミナルIDリストファイルの検索結果から,相手システムとの通信に使用する論理端末名称を決定します。
    ID交換をしない場合,該当するコネクションに定義されている論理端末のうち,先頭の論理端末を使用します。
  6. 仕掛り通番を取得します。
  7. TP1/NET/HSCは,回線接続の受諾応答を送信します(ID交換をする場合は,自システムのIDを送信します)。
  8. TP1/NET/HSCは,入力メッセージ編集UOCで決定したアプリケーション,またはMCF通信構成定義(mcftalcle -v)で指定したアプリケーションを起動します。
  9. UAPはreceive関数を呼び出して,回線の接続情報を受け取ります。
  10. 着信によって回線を接続したため,TP1/NET/HSCは,受信モードになります。

(3) AP間通信

回線が接続すると,TP1/NET/HSCは,回線の接続時に起動されたMHPを使用して相手システムとAP間通信をします。

AP間通信メッセージの送受信の流れについては,「3.2 HSC2手順のAP間通信メッセージの送受信」を参照してください。

(4) 回線の切断

相手システムと接続中の回線を切断する方法は次のとおりです。

回線接続の流れについては,「付録A.3 HSC2手順(同期モード)のメッセージの送受信」を参照してください。

(a) メッセージ送信時の切断

メッセージ送信時に,sendsync関数に回線切断指示のテキスト形態を設定して送信すると,回線が切断されます。

(b) MHP終了での切断

MHPをreturnで終了させると回線が切断されます。

(c) 相手システムからの切断

相手システムから回線切断要求を受信すると,回線が切断されます。

(5) コネクションの解放

回線切断後,コネクションを解放します。

コネクションの解放には,自動解放と手動解放があります。コネクションが解放されると,状態通知イベント(CCLSEVT)を通知します。

コネクションの解放について次の図に示します。

図3-6 HSC2手順(同期モード)のコネクションの解放

[図データ]

  1. OpenTP1システムの終了,または運用コマンド(mcftdctcn -f)を入力します。
  2. TP1/NET/HSCは,コネクション解放の準備をします。
  3. ID交換をする場合,TP1/NET/HSCは,発信用相手ターミナルIDリストファイル,および着信用相手ターミナルIDリストファイルを破棄します。
  4. コネクションが解放されます。
  5. TP1/NET/HSCは,コネクションが解放されると状態通知イベント(CCLSEVT)を通知します。MCFアプリケーション定義にCCLSEVTが定義されていない場合は,MHPは起動しません。

(6) コネクション切断後の再確立

TP1/NET/HSCのHSC2手順を使用した場合,通信管理から回復不能なコネクションの障害を検出すると,コネクションを切断します。コネクションが切断状態になると,障害通知イベント(CERREVT)を通知します。

コネクションを切断したあと,ユーザはログメッセージでコネクションの再確立が必要かどうかを判断します。必要であれば,運用コマンド(mcftactcn)を入力してコネクションの再確立をします。