Hitachi

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


8.2.4 Baseサンプル固有の作業(サービス関数動的ローディング機能を使用する場合)

サービス関数動的ローディング機能を使用する場合の,Baseサンプル固有の準備手順について説明します。ここの記述では,次の条件でサンプルを使うものとします。

使うシェル:Cシェル

OpenTP1ホームディレクトリ:/usr/betran

〈この項の構成〉

(1) アプリケーションプログラムを作成します

サービス関数動的ローディング機能を使用する場合の,BaseサンプルのUAPを作成する手順を示します。サンプルプログラムを作成するときは,UNIXのツールmakeコマンドを使います。サンプルでは,専用のmakefileをBaseサンプルのディレクトリに作成してあります。

makeコマンドは,aplib/ディレクトリにあるc/またはcobol/ディレクトリをカレントディレクトリとして実行します。makeコマンドは,OpenTP1をセットアップしたあとに実行してください。OpenTP1のセットアップについては,「8.2.5(1) OpenTP1をセットアップします」を参照してください。OpenTP1をセットアップする前にmakeコマンドを実行するとコンパイルエラーで失敗します。

C言語のUAPを作成するコマンド入力例を次に示します。

%  chdir  $DCDIR/examples/base/aplib/c  <CR>
%  make   -f make_svdl  <CR>

このコマンドを実行すると,aplib/ディレクトリの下にbasespp2およびbasesup2というUAPの実行形式ファイル(C言語)が作成されます。

(2) システム定義を修正します

サンプルでは,システム定義の手間を省くために,定義ファイルの例を提供しています。ただし,一部の定義ファイルは,実際のOpenTP1ホームディレクトリを絶対パス名で指定する必要があります。

(a) OpenTP1ホームディレクトリの定義を変更する手順

実際のOpenTP1ホームディレクトリに修正するときは,変更用のツールchconfコマンドを使います。このコマンドを実行すると,定義ファイルの項目でOpenTP1ホームディレクトリが$DCDIRとなっている部分を,実際のOpenTP1ホームディレクトリ(例えば,/usr/betran)に変更できます。

chconfコマンドは,$DCDIR/examples/base/conf/ディレクトリに移動してから実行します。コマンド入力例を次に示します。

%  chdir  $DCDIR/examples/base/conf  <CR>
%  chconf  <CR>

chconfコマンドを実行すると,定義ファイルの内容が変更されます。変更する定義ファイルと変更する内容を次の表に示します。実際のOpenTP1ホームディレクトリに変更される部分を太字で示します。

表8‒3 変更する定義ファイルと変更する内容(Baseサンプル)

変更する定義ファイル

変更する内容

env

putenv DCCONFPATH $DCDIR/examples/base/conf

prc

putenv prcsvpath $DCDIR/examples/base/aplib

sts

物理ファイル名:$DCDIR/examples/base/betranfile/×××

sysjnl

物理ファイル名:$DCDIR/examples/base/betranfile/×××

cdtrn

物理ファイル名:$DCDIR/examples/base/betranfile/×××

このツール(chconfコマンド)を実行する前には,環境変数DCDIRにあらかじめOpenTP1ホームディレクトリを設定しておいてください。設定していないと正常に変更できません。

なお,basespp2およびBASESPP2のserviceオペランドに指定された,$DCDIRを含むUAP共用ライブラリ名は,環境変数を使用して指定できるため,chconfコマンドを実行しても定義ファイルの内容は変更されません。

(b) 変更したOpenTP1ホームディレクトリを元に戻す方法

変更したOpenTP1ホームディレクトリを元に戻すときは,変更取り消し用のツールbkconfコマンドを使います。chconfコマンドで変更しようとした内容を,初期状態に戻します。

chconfコマンドでシステム定義を正常に変更できなかった場合は,すぐにbkconfコマンドを実行してください。

コマンド入力例を次に示します。

%  chdir  $DCDIR/examples/base/conf  <CR>
%  bkconf  <CR>

(3) 環境変数と定義ファイルを設定します

作成したサンプルUAPとサンプルのシステム定義で,OpenTP1システムを開始する手順について説明します。

(a) 環境変数DCCONFPATHの設定

環境変数DCCONFPATHに,定義ファイルを格納しているディレクトリを設定します。この設定をすると,OpenTP1が定義ファイルの内容を認識できるようになります。

コマンド入力例を次に示します。

cshの場合
%  setenv  DCCONFPATH  $DCDIR/examples/base/conf  <CR>
bashの場合
$  export  DCCONFPATH=$DCDIR/examples/base/conf  <CR>

(b) 定義ファイルenvのコピー

定義ファイルのうち,envファイルだけは,$DCDIR/confからOpenTP1に読み込まれます。そのため,サンプルとして作成したenv定義ファイルを$DCDIR/confへ移動します。

$DCDIR/conf/ディレクトリにenv定義ファイルを作成している場合は,上書きされてしまうので,必要であれば退避しておいてください。

コマンド入力例を次に示します。

%  cp  $DCDIR/examples/base/conf/env  $DCDIR/conf  <CR>

(c) OpenTP1ファイルシステムの初期化

OpenTP1ファイルシステムを初期化します。Baseサンプル用のOpenTP1ファイルシステムの初期化は,base_mkfsというシェルファイルを実行します。

コマンド入力例を次に示します。

%  base_mkfs  <CR>

このシェルファイルを実行すると,$DCDIR/examples/base/ディレクトリの下にbetranfileというファイルが生成され,この下にOpenTP1ファイルシステムが構築されます。