Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/TCP/IP編


2.1.1 TP1/NET/TCP/IPが使用するTCP/IP資源

〈この項の構成〉

(1) コネクションとポートの関係

ポートとは,TCP/IPプロトコルを使用してメッセージ送受信をするときに,相手システムと自システムとのサービスの窓口となるものです。ポート番号はシステム内で一意な値にする必要があるため,TP1/NET/TCP/IPが使用するポート番号は重複しないように注意してください。また,ほかのアプリケーションとの重複を避けるため,OSが任意に割り当てるポート番号(動的ポートまたは短命ポートと呼ばれるポート番号)を使用しないでください。

サーバ型コネクションの場合は,一つのポートに一つ以上のコネクションを持つことができます。

コネクションとポートの関係を,サーバ型,およびクライアント型の場合についてそれぞれ次の図に示します。なお,サーバ型とクライアント型のコネクションを混在させて確立することもできます。

図2‒1 コネクションとポートの関係(自システムがサーバ型)

[図データ]

注※

相手ポートが任意(コネクション定義(mcftalccn -o)のoprtnoオペランドにfreeを指定)のサーバ型コネクションが複数存在する場合,相手システムから受け付けたコネクション確立要求をどのサーバ型コネクションに割り当てるかは任意となります。したがって,現在TP1/NET/TCP/IPから割り当てられたサーバ型コネクションが,次回の確立要求時にも割り当てられるとは限りません。

このため,サーバ型コネクションの解放時に未送信メッセージが残っていた場合,意図しない相手システムのプログラムに未送信メッセージが送信されることがあります。

ユーザが未送信メッセージを破棄するか,システム間でメッセージの整合性をチェックするなどの処置をしてください。

問い合わせ応答形態および継続問い合わせ応答形態のメッセージ送受信機能を使用する場合,継続問い合わせ応答中の論理端末に対応するコネクションを割り当て対象とするかどうかをコネクション定義(mcftalccn -l)のcnassignオペランドで指定できます。ただし,継続問い合わせ応答中の論理端末に対応するコネクションを割り当て対象とする指定(all)をしても,継続問い合わせ応答が終了するまでは,該当するコネクションで確立できません。

図2‒2 コネクションとポートの関係(自システムがクライアント型)

[図データ]

相手ポートは,相手システムごとにユニークな番号でも,すべて同じ番号でも問題ありません。

ポート番号の指定誤りなどによって次に示す状態になった場合は,TP1/NET/TCP/IPの起動やコネクション確立ができません。

  1. 同一の相手ポートと自ポートの中で複数のコネクションを確立しようとしている。

  2. 自システム内でプロセス間にわたって同一の自ポート番号を使用している。

それぞれのパターンについて,次の図に示します。

図2‒3 コネクションとポートの不正なパターン例1

[図データ]

同一の相手ポートと自ポートの中で複数のコネクションは持てません。

図2‒4 コネクションとポートの不正なパターン例2

[図データ]

自システム内でプロセス間にわたって同一の自ポート番号は使用できません。

同一ホスト内の他のプロセス(TP1/NET/TCP/IPのMCF通信プロセスを含みます)とコネクションを確立することもできます。この場合,自ポートと相手ポートは異なるポート番号を使用してください。

図2‒5 同一ホスト内のコネクションとポートの関係

[図データ]

(2) TP1/NET/TCP/IPで使用しているポート番号

ポート番号を指定できるシステム定義のオペランドを,次の表に示します。

表2‒1 ポート番号を指定できるシステム定義のオペランド

定義名

定義

指定できる範囲

デフォルト値

対象システムサービス

MCF通信構成定義

mcftalccn -r portno

1024〜65535

OSの自動割り当てポートの範囲

MCF通信サービス

注※

サーバ型コネクションの場合,省略できません。