Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 TP1/Client for .NET Framework 使用の手引


2.4.5 ユースケースごとの設定方法とポートの割り当て

TCP/IP通信機能の主なユースケースを次の表に示し,それぞれのユースケースの設定方法とポートの割り当てについて説明します。ユースケースごとの設定方法と使用するポート番号を(5)に示します。

表2‒6  TCP/IP通信機能のユースケース

項番

ユースケース

1

MHPがサーバ型でメッセージの一方送信を行う場合

2

MHPがクライアント型でメッセージの一方受信を行う場合

3

MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合

4

MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合

〈この項の構成〉

(1) MHPがサーバ型でメッセージの一方送信を行う場合

メッセージの一方送信を次の図に示します。

図2‒15  MHPがサーバ型でメッセージの一方送信を行う場合

[図データ]

メッセージの一方送信は,CUP.NETから接続先のポートに対してコネクションを確立し,メッセージの送信を行います。メッセージの一方送信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。

接続先のノード名,またはポート番号がCUP.NETごとに異なる場合は,CUP.NETごとに設定を変更してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。

(2) MHPがクライアント型でメッセージの一方受信を行う場合

メッセージの一方受信を次の図に示します。

図2‒16  MHPがクライアント型でメッセージの一方受信を行う場合

[図データ]

メッセージの一方受信は,MHPからCUP.NETに割り当てられた受信用ポートに対してコネクションを確立し,メッセージの送信を行います。

メッセージの一方受信を行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。

マルチスレッドで動作するCUP.NETを含め,同一マシンでCUP.NETを複数実行する場合は,Client .NET構成定義の<tcpip>要素のrecvPort属性をCUP.NETごと(スレッドごと)に異なるポート番号となるように設定してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。

(3) MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合

MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合を次の図に示します。

図2‒17  MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合

[図データ]

MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合,CUP.NETから接続先のポートに対してコネクションを確立し,そのコネクションを使用してメッセージを送受信するため,CUP.NETでは受信用のポートを使用しません。そのため,Client .NET構成定義の<tcpip>要素のrecvPort属性を設定する必要はありません。

MHPがサーバ型でメッセージの送受信を1つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。

接続先のノード名,またはポート番号がCUP.NETごとに異なる場合は,CUP.NETごとに設定を変更してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。

注意事項

何らかの障害が発生しコネクションが切断された場合,Receiveメソッド,およびReceiveAssembledMessageメソッドを実行しないでください。コネクションの切断を検知した場合は,Sendメソッド,またはSendAssembledMessageメソッドを再実行し,コネクションを確立してからメッセージを受信してください。

(4) MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合

MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合を次の図に示します。

図2‒18  MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合

[図データ]

MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合,MHPからCUP.NETに割り当てられた受信用ポートに対してコネクションを確立し,そのコネクションを使用してメッセージを送受信します。

MHPがクライアント型でメッセージの送受信を1つのコネクションで行う場合は,次の設定をしてください。その他の設定は条件に応じて設定してください。

マルチスレッドで動作するCUP.NETを含め,同一マシンでCUP.NETを複数実行する場合は,Client .NET構成定義の<tcpip>要素のrecvPort属性をCUP.NETごと(スレッドごと)に異なるポート番号となるように設定してください。CUP.NETごとの構成定義の設定方法については,「3. 構成定義」を参照してください。

(5) ユースケースごとの設定方法と使用するポート番号

項番

ユースケース

Client .NET構成定義 <tcpip>要素

提供APIの発行順序※3

CUP.NETの使用ポート番号

openPortAtRecv属性

sendHost属性

※1

sendPort属性

※2

recvPort属性

type属性

送信

受信

1

MHPがサーバ型でメッセージの一方送信を行う場合,詳細は2.4.5(1)を参照してください。

-

接続先のノード名

接続先のポート番号

-

send

Send

OS自動割り当て

使用しない

2

MHPがクライアント型でメッセージの一方受信を行う場合,詳細は2.4.5(2)を参照してください。

falseまたは省略

-

-

CUP.NETのポート番号

recv

Receive

使用しない

recvPort属性の値

3

MHPがサーバ型で送受信を1本のコネクションで行う場合,詳細は2.4.5(3)を参照してください。

true※4

接続先のノード名

接続先のポート番号

-

sendrecv

Send※5→Receive

OS自動割り当て

使用しない

4

MHPがクライアント型で送受信を1本のコネクションで行う場合,詳細は2.4.5(4)を参照してください。

falseまたは省略※6

-

-

CUP.NETのポート番号

Receive※7→Send

使用しない

recvPort属性の値

(凡例)

−:該当しません。

注※1

接続先のノード名は,Sendメソッド,およびSendAssembledMessageメソッドの引数hostnameに指定することもできます。

注※2

接続先のポート番号は,Sendメソッド,およびSendAssembledMessageメソッドの引数portnumに指定することもできます。

注※3

表中のSendメソッドは,SendAssembledMessageメソッドを含みます。また,Receiveメソッド は,ReceiveAssembledMessageメソッドを含みます。

注※4

openPortAtRecv属性にfalseを指定する,または省略する設定は,受信用のポートを余分に割り当てるため推奨しません。

注※5

Sendメソッド,およびSendAssembledMessageメソッドの引数flagsにはDCNOFLAGSを指定してください。

注※6

openPortAtRecv属性にtrueを指定する設定は,MHPとのコネクション確立の同期をユーザ処理で実装する必要があるため推奨しません。

注※7

Receiveメソッド,およびReceiveAssembledMessageメソッドの引数flagsにはDCNOFLAGSを指定してください。