Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成の手引


1.3.2 スタブの作成

OpenTP1で使うUAPを作成するときには,UAP間でサービスを要求できるようにするライブラリが必要となります。このライブラリをスタブといいます。スタブには,UAPのサービスに関する情報を指定します。また,通信相手の情報を作成する場合もあります。

スタブの作成方法については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

〈この項の構成〉

(1) アプリケーションプログラムに結合させるスタブの種類

スタブには,サーバUAPに結合させるスタブとクライアントUAPに結合させるスタブがあります。

(a) サーバUAPに結合させるスタブ

サーバUAPに結合させるスタブは,サービスを振り分ける関数と連動してUAPのサービスを実行できるようにします。サービスを振り分ける関数は,サーバUAPのメイン関数で呼び出します。サービスを振り分ける関数を,次に示します。

  • SPPの場合:dc_rpc_mainloop関数【CBLDCRSV('MAINLOOP')】

  • MHPの場合:dc_mcf_mainloop関数【CBLDCMCF('MAINLOOP')】

サーバUAPに結合させるスタブの概要を次の図に示します。

図1‒22 サーバUAPに結合させるスタブの概要

[図データ]

(b) クライアントUAPに結合させるスタブ

クライアントUAPに結合させるスタブは,サーバUAPの情報を指定することで,サーバUAPと通信できるようにします。クライアントUAPにスタブが必要になるのは,XATMIインタフェースを使った通信の場合だけです。OpenTP1のRPCを使う場合は,クライアントUAPにスタブは必要ありません。

(2) スタブが必要なUAP

UAPにスタブが必要かどうかは,UAPの種類や通信方法によって異なります。

オフラインの業務をするUAPは,サービス関数がないので,スタブを作成する必要はありません。

(3) スタブの作成手順

スタブを作成するときは,UAPに関する情報の定義を格納したファイル(RPCインタフェース定義ファイル)を作成します。そして,RPCインタフェース定義ファイルを引数にして,スタブを生成するコマンドを実行します。スタブを生成するコマンドを,次に示します。

スタブを生成するコマンドを実行すると,スタブのソースファイル(C言語のソースファイル)が作成されます。このファイルをC言語のコンパイラで翻訳して,UAPのオブジェクトファイルに結合させます。

MHPをANSI C形式,およびC++形式でコーディングした場合,そのMHPに結合するスタブの翻訳時には,DCMHPを定義してください。

スタブの内容を変更するときは,UAPを作成する一連の作業をやり直します。定義ファイルの内容を変更して,スタブを作り直してから,コンパイルし直したUAPのオブジェクトファイルに結合させてください。

注※

XATMIインタフェースのスタブの場合は,XATMIインタフェース定義ファイルといいます。

スタブの作成手順を次の図に示します。

図1‒23 スタブの作成手順

[図データ]