2.1.1 TP1/NET/TCP/IPが使用するTCP/IP資源
(1) コネクションとポートの関係
ポートとは,TCP/IPプロトコルを使用してメッセージ送受信をするときに,相手システムと自システムとのサービスの窓口となるものです。ポート番号はシステム内で一意な値にする必要があるため,TP1/NET/TCP/IPが使用するポート番号は重複しないように注意してください。また,ほかのアプリケーションとの重複を避けるため,OSが任意に割り当てるポート番号(動的ポートまたは短命ポートと呼ばれるポート番号)を使用しないでください。
サーバ型コネクションの場合は,一つのポートに一つ以上のコネクションを持つことができます。
コネクションとポートの関係を,サーバ型,およびクライアント型の場合についてそれぞれ次の図に示します。なお,サーバ型とクライアント型のコネクションを混在させて確立することもできます。
- 注※
-
相手ポートが任意(コネクション定義(mcftalccn -o)のoprtnoオペランドにfreeを指定)のサーバ型コネクションが複数存在する場合,相手システムから受け付けたコネクション確立要求をどのサーバ型コネクションに割り当てるかは任意となります。したがって,現在TP1/NET/TCP/IPから割り当てられたサーバ型コネクションが,次回の確立要求時にも割り当てられるとは限りません。
このため,サーバ型コネクションの解放時に未送信メッセージが残っていた場合,意図しない相手システムのプログラムに未送信メッセージが送信されることがあります。
ユーザが未送信メッセージを破棄するか,システム間でメッセージの整合性をチェックするなどの処置をしてください。
問い合わせ応答形態および継続問い合わせ応答形態のメッセージ送受信機能を使用する場合,継続問い合わせ応答中の論理端末に対応するコネクションを割り当て対象とするかどうかをコネクション定義(mcftalccn -l)のcnassignオペランドで指定できます。ただし,継続問い合わせ応答中の論理端末に対応するコネクションを割り当て対象とする指定(all)をしても,継続問い合わせ応答が終了するまでは,該当するコネクションで確立できません。
相手ポートは,相手システムごとにユニークな番号でも,すべて同じ番号でも問題ありません。
ポート番号の指定誤りなどによって次に示す状態になった場合は,TP1/NET/TCP/IPの起動やコネクション確立ができません。
-
同一の相手ポートと自ポートの中で複数のコネクションを確立しようとしている。
-
自システム内でプロセス間にわたって同一の自ポート番号を使用している。
それぞれのパターンについて,次の図に示します。
同一の相手ポートと自ポートの中で複数のコネクションは持てません。
自システム内でプロセス間にわたって同一の自ポート番号は使用できません。
同一ホスト内の他のプロセス(TP1/NET/TCP/IPのMCF通信プロセスを含みます)とコネクションを確立することもできます。この場合,自ポートと相手ポートは異なるポート番号を使用してください。