Hitachi

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


2.1.19 サービス関数とスタブの関係

SPPまたはMHPでサービス関数を作成する方法は,次の二つです。

  1. スタブを使用して,該当するサービス関数を作成する方法

  2. サービス関数動的ローディング機能を使用して,サービス関数を作成する方法

ここでは,上記の二つの方法について説明します。

〈この項の構成〉

(1) スタブを使用する場合

RPCを使ってUAP間で通信するときには,スタブが必要です。スタブとは,クライアントUAPが指定した「サービスグループ名+サービス名」とサーバUAPのサービスとを対応づけるプログラムです。

スタブではUAPの各サービスの入り口点(エントリポイント)を指定します。

エントリポイント名とは,C言語の関数名であり,COBOL言語のプログラム名または入り口名のことです。

サービス名とエントリポイント名は,1対1で対応させてください。複数のサービス名に1つのエントリポイント名を対応させることはできません。

サービス名とエントリポイント名は,ユーザサービス定義で指定しているserviceオペランドの名称と合わせてください。

スタブはサーバUAPの作成時に,サーバUAPのオブジェクトファイルと結合させます。

クライアント専用のUAPであるSUPと,オフラインの業務をするUAPには,スタブを定義して結合させる必要はありません。

スタブを使用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。

図2‒18 スタブを使用する場合(SPP)

[図データ]

  1. RPCインタフェース定義にサービス関数のエントリポイントを指定して,スタブを生成するコマンドでスタブを生成します。

    ユーザサービス定義では,サービスグループ名とサービス名を指定します。

  2. 実行時には,サービスを要求されたサーバUAPの実行形式ファイルでは,スタブとユーザサービス定義によって作成されたライブラリ部で,該当のサービスを検索します。その後サービスの処理をしてクライアントUAPに結果を返します。

図2‒19 スタブを使用する場合(MHP)

[図データ]

  1. RPCインタフェース定義にサービス関数のエントリポイントを指定して,スタブを生成するコマンドでスタブを生成します。

    MCFアプリケーション定義では,アプリケーション名,サービスグループ名,およびサービス名を対応づけます。ユーザサービス定義では,サービスグループ名とサービス名を指定します。

  2. 実行時には,TP1/Message Controlの処理によって,MCFアプリケーション定義に基づきアプリケーション名に対応するサービス名が検索され,該当するサーバUAPを起動します。サービスを要求されたサーバUAPの実行形式ファイルでは,スタブとユーザサービス定義によって作成されたライブラリ部で,該当のサービスを検索します。その後サービスの処理をし,処理の完了をTP1/Message Controlに通知します。

(2) サービス関数動的ローディング機能を使用する場合

サービス関数動的ローディング機能を使う場合,UAPの各サービスの入り口点(エントリポイント)を指定したUAPライブラリからサービス関数を取得するため,スタブは不要です。その代わりに,サービス関数を共用ライブラリ化してUAP共用ライブラリを作成する必要があります。これによって,UAP共用ライブラリからサービス関数を取得できるとともに,複数のサービスをメイン関数にまとめる作業は不要になります。

注※

UAP共用ライブラリとは,UAPのソースファイルを翻訳(コンパイル)して作成したUAPオブジェクトファイルを結合(リンケージ)して,共用ライブラリとしてまとめたものです。

サービス関数動的ローディング機能を使用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。

図2‒20 サービス関数動的ローディング機能だけを使用する場合(SPP)

[図データ]

図2‒21 サービス関数動的ローディング機能だけを使用する場合(MHP)

[図データ]

なお,サービス関数動的ローディング機能は,スタブを使ったUAPでも使用できます。この場合,スタブを使ったUAPを変更しないで,サービス関数を追加できます。

サービス関数動的ローディング機能とスタブを併用してサービス関数を作成する方法について,SPPの場合とMHPの場合に分けてそれぞれ以降の図に示します。

図2‒22 サービス関数動的ローディング機能とスタブを併用する場合(SPP)

[図データ]

図2‒23 サービス関数動的ローディング機能とスタブを併用する場合(MHP)

[図データ]