分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/OSAS-NIF編

[目次][用語][索引][前へ][次へ]

7.2 MCFメイン関数の作成

TP1/NET/OSAS-NIFは,OpenTP1プロセスサービスによって起動されます。

TP1/NET/OSAS-NIFを起動するには,ユーザがMCFメイン関数をコーディングし,コンパイル,およびリンケージを行ってTP1/NET/OSAS-NIFの実行形式プログラムを作成する必要があります。リンケージには,mcfplosasnfコマンドを使用します。

MCFメイン関数では,スタート関数(dc_mcf_svstart)を呼び出します。UOCを使用する場合は,MCFメイン関数でUOC関数アドレスを指定してください。UOCは,MCFメイン関数と同じ言語(K&R版 C,ANSI CまたはC++)で作成してください。

MCFメイン関数のコーディング概要を図7-1および図7-2に示します。また,ディレクトリへの組み込み方法を図7-3に示します。

なお,これらのコーディング例を次のファイルで提供しています。

 

図7-1 MCFメイン関数のコーディング概要(ANSI C,C++の場合)

[図データ]

図7-2 MCFメイン関数のコーディング概要(K&R版 Cの場合)

[図データ]

注※
TP1/NET/OSAS-NIF提供の標準UOCを使用する場合は,「msgrcv01」の代わりに「dc_mcf_stduoc_msgin」をコーディングしてください。さらに,下記のようにextern宣言を行ってください。
ANSI Cの場合
extern DCLONG dc_mcf_stduoc_msgin(dcmcf_uoc_min_n *);
C++の場合
extern "C"{ extern DCLONG dc_mcf_stduoc_msgin(dcmcf_uoc_min_n *); }
K&R版Cの場合
extern DCLONG dc_mcf_stduoc_msgin();
 
  1. TP1/NET/OSAS-NIFで提供するヘッダファイルを取り込みます。
  2. 使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。
    これらのUOCを使用する場合だけ,コーディングしてください。
  3. UOCテーブルをextern宣言します。UOC使用する場合,必ずこのとおりにコーディングしてください。
    2.のUOCを使用する場合だけ,コーディングしてください。
  4. 各UOC関数のアドレスを,次に示すシステム提供変数に設定します。
    dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス */
    dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス */
     
    これらのUOCを使用する場合だけ,コーディングしてください。
  5. スタート関数を呼び出します。
    MCFメイン関数には必ずコーディングしてください。

    図7-3 MCFメイン関数のディレクトリへの組み込み方法

    [図データ]

注※1
mcfplosasnfコマンドでリンケージします。
注※2
TP1/NET/OSAS-NIFの実行形式プログラム名は,先頭がmcfuで始まる8文字以内の名称にしてください。