Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 OpenTP1 プロトコル TP1/NET/User Datagram Protocol編


8.2 MCFメイン関数の作成

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

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

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

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

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

適用OSがLinuxの場合
  • /opt/OpenTP1/examples/mcf/UDPIP/cmlib/ansi/com.c

  • /opt/OpenTP1/examples/mcf/UDPIP/cmlib/c/com.c

その他のOSの場合
  • /BeTRAN/examples/mcf/UDPIP/cmlib/ansi/com.c

  • /BeTRAN/examples/mcf/UDPIP/cmlib/c/com.c

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

[図データ]

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

[図データ]

  1. TP1/NET/UDPで提供するヘッダファイルを取り込みます。

  2. 使用するUOC関数をextern宣言します。UOCのリターン値はDCLONG型にしてください。

    UOCをまったく使用しない場合,このコーディングは必要ありません。

  3. UOCテーブルをextern宣言します。UOCを使用する場合,必ずこのとおりにコーディングしてください。

    UOCをまったく使用しない場合,このコーディングは必要ありません。

  4. 各UOC関数のアドレスを,次に示すシステム提供変数に設定します。使用するUOCだけコーディングしてください。

    dcmcf_uoctbl.msgrcv  /*入力メッセージ編集UOCアドレス*/
    dcmcf_uoctbl.msgsend /*出力メッセージ編集UOCアドレス*/

    UOCをまったく使用しない場合,このコーディングは必要ありません。

  5. スタート関数を呼び出します。MCFメイン関数には必ずコーディングしてください。

    スタート関数を呼び出したあとは,MCFメイン関数に制御が戻りません。そのため,スタート関数のあとにコーディングした処理は実行されませんので注意してください。

    図8‒3 MCFメイン関数のディレクトリへの組み込み方法の概要

    [図データ]

注※1

UOCを使用しない場合は,必要ありません。

注※2

mcfpludpコマンドでリンケージします。

mcfpludpコマンドの詳細については,TP1/NET/UDPの「リリースノート」を参照してください。

注※3

TP1/NET/UDPの実行形式プログラム名は,先頭がmcfuで始まる8文字以内の名称にしてください。