Hitachi

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


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

作成したプログラムの翻訳(コンパイル),結合(リンケージ),およびUAP共用ライブラリ化の手順について説明します。

まず,UAPのメイン関数をコンパイル,リンケージして実行形式ファイルとします。次に,UAPのサービス関数をUAP共用ライブラリ化します。コンパイルとリンケージの手順については,マニュアル「OpenTP1 プログラム作成リファレンス」の該当する言語編を参照してください。

注※

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

〈この項の構成〉

(1) 翻訳(コンパイル)

コンパイルするプログラムを次に示します。

C言語のプログラムはC言語のコンパイラで,COBOL言語で作成したプログラムは該当するCOBOL言語のコンパイラで翻訳します。

(2) 結合(リンケージ)

UAPのメイン関数のソースファイルをコンパイルして作成したオブジェクトファイルを,OpenTP1のライブラリなど必要なファイルとリンケージします。OpenTP1以外のRMを使う場合は,OpenTP1以外のRMが指定するライブラリとリンケージします。OpenTP1以外のRMをXAインタフェースで使う場合,次の手順でUAPにライブラリをリンケージします。

  1. OpenTP1以外のRMのリソースマネジャ識別子をtrnmkobjコマンドに指定して,トランザクション制御用オブジェクトファイルを作成します。

  2. 作成したトランザクション制御用オブジェクトファイルを,UAPにリンケージします。

(3) UAP共用ライブラリの作成

UAPのサービス関数のソースファイルをコンパイルして作成したオブジェクトファイルを,共用ライブラリ化します。このとき,(2)と同様に,OpenTP1のライブラリなど必要なファイルとリンケージします。コンパイルオプションおよびリンケージオプションについては,TP1/Server Baseサンプル(make_svdlファイル)を参照してください。

(4) 注意事項

OSがHP-UXの場合,リンケージ時のバインドモードには必ず"immediate"を指定してください。"immediate"以外のバインドモードで作成した実行形式ファイルをOpenTP1のUAPとして使った場合,システムの動作は保証しません。作成したUAPのバインドモードが"immediate"かどうかは,OSのchatrコマンドで確認してください。