Hitachi

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


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

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

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

項番

ユースケース

1

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

2

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

3

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

4

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

〈この項の構成〉

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

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

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

[図データ]

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

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

接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのクライアント環境定義の設定方法については,「7.2.3 TP1/Client/Wの設定方法」,および「7.2.4 TP1/Client/Pの設定方法」を参照してください。

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

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

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

[図データ]

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

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

マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,クライアント環境定義DCRCVPORTをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのクライアント環境定義の設定方法については,「7.2.3 TP1/Client/Wの設定方法」,および「7.2.4 TP1/Client/Pの設定方法」を参照してください。

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

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

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

[図データ]

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

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

接続先のノード名,またはポート番号がCUPごとに異なる場合は,CUPごとに設定を変更してください。CUPごとのクライアント環境定義の設定方法については,「7.2.3 TP1/Client/Wの設定方法」,および「7.2.4 TP1/Client/Pの設定方法」を参照してください。

注意事項

何らかの障害が発生しコネクションが切断された場合,dc_clt_receive_s関数,dc_clt_receive2_s関数,およびdc_clt_assem_receive_s関数を実行しないでください。コネクションの切断を検知した場合は,dc_clt_send_s関数,またはdc_clt_assem_send_s関数を再実行し,コネクションを確立してからメッセージを受信してください。

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

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

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

[図データ]

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

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

マルチスレッドで動作するCUPを含め,同一マシンでCUPを複数実行する場合は,クライアント環境定義DCRCVPORTをCUPごと(スレッドごと)に異なるポート番号となるように設定してください。CUPごとのクライアント環境定義の設定方法については,「7.2.3 TP1/Client/Wの設定方法」,および「7.2.4 TP1/Client/Pの設定方法」を参照してください。

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

項番

ユースケース

クライアント環境定義のオペランド

提供APIの使用方法

CUPの使用ポート番号

DCSOCKOPENATRCV

DCSNDHOST※1

DCSNDPORT※1

DCRCVPORT

dc_rpc_open_s関数のフラグ

発行順序※2

送信

受信

1

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

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

接続先のノード名

接続先のポート番号

DCCLT_ONEWAY_SND

dc_clt_send_s

OS自動割り当て

使用しない

2

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

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

CUPのポート番号

DCCLT_ONEWAY_RCV

dc_clt_receive_s

使用しない

DCRCVPORTの値

3

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

Y※3

接続先のノード名

接続先のポート番号

DCCLT_SNDRCV

dc_clt_send_s※5

→ dc_clt_receive_s

OS自動割り当て

使用しない

4

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

N,または省略※4

CUPのポート番号

dc_clt_receive_s※6

→ dc_clt_send_s

使用しない

DCRCVPORTの値

注※1

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

注※2

表中のdc_clt_send_s関数は,dc_clt_assem_send_s関数を含みます。また,dc_clt_receive_s関数は,dc_clt_receive2_s関数,およびdc_clt_assem_receive_s関数を含みます。

注※3

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

注※4

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

注※5

dc_clt_send_s( )の引数flagsにはDCNOFLAGSを指定してください。

注※6

dc_clt_receive_s( )の引数flagsにはDCNOFLAGSを指定してください。