2.4.6 TCP/IP通信機能を使用するときの注意事項
TCP/IP通信機能を使用する場合の注意事項について説明します。
- 〈この項の構成〉
(1) メッセージ送信時の注意事項
(a) 障害発生時のメッセージの消失
次に示す障害が発生すると,TP1/Client/J,およびMHPでは,メッセージが消失したことを検出できません。したがって,ユーザはメッセージ中に通番を付けるなどして,障害に備えてください。
-
ソケットのバッファにTP1/Client/Jが送信したメッセージが書き込まれて送信が正常終了した直後に,通信障害が発生したり,コネクションが解放されたりした場合
-
TP1/Client/Jが送信したメッセージがMHPの受信バッファに書き込まれる直前に通信障害が発生したり,コネクションが解放されたりした場合
(b) コネクションの確立
TP1/Client/Jがクライアントとなり,MHPにメッセージを送信します。そのため,TP1/Client/JからMHPに対して,コネクションを確立します。MHPがTP1/NET/TCP/IPを使用している場合,コネクションはサーバ型となります。
(2) メッセージ受信時の注意事項
(a) 障害発生時のメッセージの消失
次に示す障害が発生すると,TP1/Client/J,およびMHPでは,メッセージが消失したことを検出できません。したがって,ユーザはメッセージ中に通番を付けるなどして,障害に備えてください。
-
ソケットのバッファにMHPが送信したメッセージが書き込まれて送信が正常終了した直後に,通信障害が発生したり,コネクションが解放されたりした場合
-
MHPが送信したメッセージがTP1/Client/J側の受信バッファに書き込まれる直前に通信障害が発生したり,コネクションが解放されたりした場合
(b) 受信するメッセージの確認
任意のMHPからのメッセージを受信できます。そのため,コネクションの確立要求を受けると,その要求を無条件に受諾してメッセージを受信します。ユーザは,メッセージ識別子が含まれたヘッダをメッセージ中に含めるなどして,CUPが受け取るメッセージかどうかを確認してください。
(c) メッセージ長
メッセージは,TCP/IPプロトコルを使用して受信します。TCP/IPプロトコルでは,一つのメッセージを複数のパケットに分割したり,複数のメッセージを一つのパケットに詰め込んだりします。そのため,受信したメッセージの切れ目は,ユーザが指定するメッセージ長で判断します。ユーザはメッセージ長を含めた固定長のヘッダを最初に受信し,ヘッダに含まれているメッセージ長を指定して,実際のメッセージを受信してください。
指定したメッセージ長より短いメッセージを受信した場合,TP1/Client/Jは,メッセージが分割されているものとみなします。そのため,指定した長さ分のメッセージを受信するまで,CUPに制御を戻しません。
(d) コネクションの確立
TP1/Client/Jがサーバとなり,MHPからのメッセージを受信します。そのため,MHPからTP1/Client/Jに対して,コネクションを確立します。MHPがTP1/NET/TCP/IPを使用している場合,コネクションはクライアント型となります。