Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プログラム作成リファレンス C言語編


1.2.5 アプリケーションプログラムの翻訳と結合

UAPの翻訳と結合方法については,使用するOSのリファレンスマニュアルを参照してください。

〈この項の構成〉

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

C言語でコーディングしたUAPのオブジェクトファイルを作成するには,ソースプログラムをCコンパイラで翻訳します。スタブのソースプログラムを翻訳するときも同様です。

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

ここでの説明中の※1〜※3の意味を次に示します。

注※1

リソースマネジャにXAインタフェースアクセスするトランザクションを実行する場合に必要です(OpenTP1で提供するリソースマネジャは,すべてXAインタフェースでアクセスします)。トランザクション制御用オブジェクトファイルは,OpenTP1のコマンド(trnmkobjコマンド)で作成します。trnmkobjコマンドについてはマニュアル「OpenTP1 運用と操作」を参照してください。

注※2

リソースマネジャにアクセスする場合に必要です。OpenTP1で提供するリソースマネジャのオブジェクトファイルを結合するときは,リンケージのコマンドに次の引数を指定します。

メッセージ送受信機能を使う場合:-lmcf,-lmnet

DAMアクセス機能を使う場合:-ldam

TAMアクセス機能を使う場合:-ltam

ISAM機能を使う場合:-lismb,-lisam,-lrsort

メッセージキューイング機能を使う場合:-lmqa

他社のリソースマネジャのオブジェクトファイルの結合方法については,使用する他社リソースマネジャのリファレンスマニュアルを参照してください。

注※3

dc_uto_test_status関数(ユーザサーバのテスト状態の報告)を使う場合に必要です。オンラインテスタのオブジェクトファイルを結合するときは,リンケージのコマンドに次の引数を指定します。

ユーザサーバのテスト状態を報告する場合:-luto

(a) SPP,MHPに結合させるファイル

SPPまたはMHPの実行形式ファイルは,次に示すファイルを結合させて作成します。

  • UAPのオブジェクトファイル(メイン関数とサービス関数)

  • スタブのオブジェクトファイル

  • トランザクション制御用オブジェクトファイル※1

  • リソースマネジャで提供するオブジェクトファイル※2

  • オンラインテスタで提供するオブジェクトファイル※3

  • OpenTP1のライブラリ

(b) SUPに結合させるファイル

SUPの実行形式ファイルは,次に示すファイルを結合させて作成します。

  • UAPのオブジェクトファイル(メイン関数)

  • トランザクション制御用オブジェクトファイル※1

  • リソースマネジャで提供するオブジェクトファイル※2

  • オンラインテスタで提供するオブジェクトファイル※3

  • OpenTP1のライブラリ

(c) オフラインの業務をするUAPに結合させるファイル

オフラインの業務をするUAPの実行形式ファイルは,次に示すファイルを結合させて作成します。

  • UAPのオブジェクトファイル(メイン関数)

  • OpenTP1のライブラリ

(d) サービス関数動的ローディング機能を使用するSPP,MHPに結合させるファイル

サービス関数動的ローディング機能を使用するSPP,MHPの実行形式ファイルは,次に示すファイルを結合させて作成します。

  • UAPのオブジェクトファイル(メイン関数)

  • OpenTP1のライブラリ

  • トランザクション制御用オブジェクトファイル※1

  • リソースマネジャで提供するオブジェクトファイル※2

  • オンラインテスタで提供するオブジェクトファイル※3

また,サービス関数動的ローディング機能とスタブでのサービス検索を併用する場合は,次のファイルが必要です。

  • UAPのオブジェクトファイル(サービス関数)

  • スタブのオブジェクトファイル

(3) 注意事項

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