Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 クライアント使用の手引 TP1/Client/J編


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

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

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

項番

ユースケース

1

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

2

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

3

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

4

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

〈この項の構成〉

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

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

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

[図データ]

メッセージの一方送信は,CUPから接続先のポートに対してコネクションを確立しメッセージの送信を行います。

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

接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのTP1/Client/J環境定義の設定方法については,「5.2.3 TP1/Client/J環境定義を指定するときの注意事項」を参照してください。

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

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

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

[図データ]

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

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

マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,TP1/Client/J環境定義dcrcvportオペランドをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのTP1/Client/J環境定義の設定方法については,「5.2.3 TP1/Client/J環境定義を指定するときの注意事項」を参照してください。

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

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

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

[図データ]

MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合,CUPから接続先のポートに対してコネクションを確立し,そのコネクションを使用してメッセージを送受信するため,CUPでは受信用のポートを使用しません。そのため,TP1/Client/J環境定義dcrcvportオペランドを設定する必要はありません。

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

接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのTP1/Client/J環境定義の設定方法については,「5.2.3 TP1/Client/J環境定義を指定するときの注意事項」を参照してください。

注意事項

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

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

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

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

[図データ]

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

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

マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,TP1/Client/J環境定義dcrcvportオペランドをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのTP1/Client/J環境定義の設定方法については,「5.2.3 TP1/Client/J環境定義を指定するときの注意事項」を参照してください。

表2‒4 ユースケースごとの設定方法と使用するポート番号

項番

ユースケース

TP1/Client/J環境定義のオペランド

提供APIの発行順序※2

CUPの使用ポート番号

dcsockopenatrcv

dcsndhost※1

dcsndport※1

dcrcvport

dcsndrcvtype

送信

受信

1

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

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

接続先のノード名

接続先のポート番号

DCCLT_ONEWAY_SND

cltSend

OS自動割り当て

使用しない

2

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

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

N

または省略

CUPのポート番号

DCCLT_ONEWAY_RCV

cltReceive

使用しない

dcrcvportの値

3

MHPがサーバ型で送受信を一本のコネクションで行う場合

詳細については,「(3) MHPがサーバ型でメッセージの送受信を一つのコネクションで行う場合」を参照してください。

Y※3

接続先のノード名

接続先のポート番号

DCCLT_SNDRCV

cltSend※5

→cltReceive

OS自動割り当て

使用しない

4

MHPがクライアント型で送受信を一本のコネクションで行う場合

詳細については,「(4) MHPがクライアント型でメッセージの送受信を一つのコネクションで行う場合」を参照してください。

N

または省略※4

CUPのポート番号

cltReceive※6

→cltSend

使用しない

dcrcvportの値

注※1

接続先ノード名,およびポート番号は,それぞれcltSendメソッド,およびcltAssemSendメソッドの引数hostname(ノード名),portnum(ポート番号)に指定できます。

注※2

表中のcltSendメソッドは,cltAssemSendメソッドを含みます。また,cltReceiveメソッドは,cltAssemReceiveメソッドを含みます。

注※3

dcsockopenatrcvオペランドにNを指定,または省略する設定は,受信用のポートを余分に割り当てるため推奨しません。

注※4

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

注※5

cltSendメソッドまたはcltAssemSendメソッドの引数flagsにはDCNOFLAGSを指定してください。

注※6

cltReceiveメソッドまたはcltAssemReceiceメソッドの引数flagsにはDCNOFLAGSを指定してください。