1.2.5 アプリケーションプログラムの翻訳と結合
(1) プログラムの翻訳(コンパイル)
COBOL言語のUAPのオブジェクトファイルを作成するには,ソースプログラムをCOBOLコンパイラで翻訳します。
翻訳方法の詳細については,COBOL言語のマニュアルを参照してください。
(2) スタブの翻訳(コンパイル)
スタブのオブジェクトファイルを作成するには,スタブのソースプログラムをCコンパイラで翻訳します。
(3) 結合(リンケージ)
ここでの説明中の※1~※3の意味を次に示します。
- 注※1
- リソースマネジャにXAインタフェースでアクセスするトランザクションを実行する場合に必要です(OpenTP1で提供するリソースマネジャは,すべてXAインタフェースでアクセスします)。トランザクション制御用オブジェクトファイルは,OpenTP1のコマンド(trnmkobjコマンド)で作成します。trnmkobjコマンドについてはマニュアル「OpenTP1 運用と操作」を参照してください。
- 注※2
- リソースマネジャにアクセスする場合に必要です。OpenTP1で提供するリソースマネジャのオブジェクトファイルを結合するときは,リンケージのコマンドに次の引数を指定します。
- メッセージ送受信機能を使う場合:-lmcf,-lmnet
- DAMアクセス機能を使う場合:-ldam
- TAMアクセス機能を使う場合:-ltam
- ISAM機能を使う場合:-lismb,-lisam,-lrsort
- メッセージキューイング機能を使う場合:-lmqacb
- 他社のリソースマネジャのオブジェクトファイルの結合方法については,使用する他社リソースマネジャのリファレンスマニュアルを参照してください。
- 注※3
- CBLDCUTO('T-STATUS')(ユーザサーバのテスト状態の報告)を使う場合に必要です。オンラインテスタのオブジェクトファイルを結合するときは,リンケージのコマンドに次の引数を指定します。
- ユーザサーバのテスト状態を報告する場合:-luto
(a) SPP,MHPに結合させるファイル
SPPまたはMHPの実行形式ファイルは,次に示すファイルを結合させて作成します。
- UAPのオブジェクトファイル(メインプログラムとサービスプログラム)
- スタブのオブジェクトファイル
- トランザクション制御用オブジェクトファイル※1
- リソースマネジャで提供するオブジェクトファイル※2
- オンラインテスタで提供するオブジェクトファイル※3
- OpenTP1のライブラリ
- COBOLのライブラリ(COBOL85言語で作成したUAPの場合はCOBOL85のライブラリ,COBOL2002言語で作成したUAPの場合はCOBOL2002のライブラリ)
(b) SUPに結合させるファイル
SUPの実行形式ファイルは,次に示すファイルを結合させて作成します。
- UAPのオブジェクトファイル(メインプログラム)
- トランザクション制御用オブジェクトファイル※1
- リソースマネジャで提供するオブジェクトファイル※2
- オンラインテスタで提供するオブジェクトファイル※3
- OpenTP1のライブラリ
- COBOLのライブラリ(COBOL85言語で作成したUAPの場合はCOBOL85のライブラリ,COBOL2002言語で作成したUAPの場合はCOBOL2002のライブラリ)
(c) オフラインの業務をするUAPに結合させるファイル
オフラインの業務をするUAPの実行形式ファイルは,次に示すファイルを結合させて作成します。
- UAPのオブジェクトファイル(メインプログラム)
- OpenTP1のライブラリ
- COBOLのライブラリ(COBOL85言語で作成したUAPの場合はCOBOL85のライブラリ,COBOL2002言語で作成したUAPの場合はCOBOL2002のライブラリ)
(d) サービス関数動的ローディング機能を使用するSPP,MHPに結合させるファイル
サービス関数動的ローディング機能を使用するSPP,MHPの実行形式ファイルは,次に示すファイルを結合させて作成します。
- UAPのオブジェクトファイル(メイン関数)
- OpenTP1のライブラリ
- トランザクション制御用オブジェクトファイル※1
- リソースマネジャで提供するオブジェクトファイル※2
- オンラインテスタで提供するオブジェクトファイル※3
また,サービス関数動的ローディング機能とスタブでのサービス検索を併用する場合は,次のファイルが必要です。
- UAPのオブジェクトファイル(サービス関数)
- スタブのオブジェクトファイル
(4) 注意事項
OSがHP-UXの場合,リンケージ時のバインドモードには必ず"immediate"を指定してください。"immediate"以外のバインドモードで作成した実行形式ファイルをOpenTP1のUAPとして使った場合,システムの動作は保証しません。作成したUAPのバインドモードが"immediate"かどうかは,OSのchatrコマンドで確認してください。