Hitachi

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


2.3.8 OpenTP1以外のサーバへのRPC

DCCM3などの,OpenTP1以外のサーバへRPCを行う機能です。なおサーバ側に,OpenTP1のRPC要求を解釈する機能が組み込まれていることが前提になります。

〈この項の構成〉

(1) 相手サーバの指定方法

RPCを行う際,相手サーバはサービスグループ名とサービス名で指定しますが,この指定方式はOpenTP1のサーバに対するRPCと同じです。

ただし,OpenTP1のネームサービスの管理外にあるサーバを呼び出すため,クライアント側にネームサービスに代わるアドレス解決手段を用意します。

(2) 相手サーバのアドレス定義

クライアント側に,サービスグループ名に対応する,RPC受け付け窓口(ホスト名,ポート番号)のリストを,テキストファイルで作成しておきます。クライアント環境定義DCCLTSERVICEGROUPLISTにこのテキストファイル名を宣言します。

TP1/ClientはRPC実行時,指定されたサービスグループ名が,このリストに定義されているか検索し,合致するものがあった場合には対応するRPC受け付け窓口にRPCを行います。

(3) RPC機能の概要

RPCの形態としては,同期応答型RPCと非応答型RPCです。

トランザクション制御下でRPCを行っても,OpenTP1のトランザクションの対象とはなりません。

サービスグループ名とサーバが対になっている関係上,負荷分散機能も対象外となります。ただし,常設コネクションを使用してDCCM3論理端末へRPCを行う場合,負荷分散機能を使用できます。詳細については,「2.3.8(4) DCCM3論理端末へRPCを行う場合の負荷分散」を参照してください。

DCCM3に対してRPCを行う場合,サービス名がトランザクション名と評価されます。

OpenTP1以外のサーバへのRPCの処理の流れを次の図に示します。

図2‒5 OpenTP1以外のサーバへのRPCの処理の流れ

[図データ]

(4) DCCM3論理端末へRPCを行う場合の負荷分散

TP1/ClientとDCCM3論理端末が常設コネクションを使用してRPCを行う場合,複数のDCCM3に振り分けて負荷を分散できます。クライアント環境定義に指定された複数のDCCM3論理端末のホスト名およびポート番号の中から,接続先をランダムに選択し,接続を試みます。試みた先のDCCM3論理端末との接続に失敗した場合は,これを除き,クライアント環境定義に指定した残りのDCCM3論理端末から再びランダムに選択し,接続を試みます。これを繰り返し,定義に指定されたDCCM3論理端末との接続にすべて失敗した場合,初めてエラーを検知します。

TP1/ClientとDCCM3論理端末との通信方法を次に示します。この中で,負荷分散できるのは,常設コネクションを使用している1.と2.の方法です。

  1. クライアント環境定義DCCLTDCCMHOSTにDCCM3論理端末のホスト名,DCCLTDCCMPORTにDCCM3論理端末のポート番号を指定し,dc_clt_connect_s関数の引数flagsにDCCLT_DCCM3を指定します。

    この場合,常設コネクションを使用します。

  2. クライアント環境定義DCCLTRAPHOSTにDCCM3論理端末のホスト名およびポート番号を指定し,dc_clt_connect_s関数の引数flagsにDCNOFLAGSを指定します。

    この場合,常設コネクションを使用します。

  3. クライアント環境定義DCCLTSERVICEGROUPLISTに,サービスグループごとにDCCM3論理端末のホスト名およびポート番号を指定したファイルを指定します。

    この場合,常設コネクションを使用しません。