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

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

5.1.7 送信メッセージの通番編集

<この項の構成>
(1) 通番編集
(2) OpenTP1への組み込み方法

(1) 通番編集

HSC1手順またはHSC2手順(非同期モード)の場合に使用できるUOCです。

送信メッセージの通番編集UOCでは,受け取った通番を基に,ユーザ独自の処理ができます。例えば,通番を使用して編集した送信メッセージを再送要求します。

送信メッセージの通番編集UOCを起動する場合,メッセージ送信の関数で,出力通番を付けるように設定してください。UOCは,UAPがsend関数またはresend関数を発行したときに,MCFによって起動されます。

(2) OpenTP1への組み込み方法

UAPのメイン関数の中に,送信メッセージの通番編集UOCの関数アドレスを登録しておきます。UAPのメイン関数に登録するdc_mcf_regster関数の形式を次に示します。

(a) 形式

ANSI C,C++の形式
 
#include<dcmcf.h>
 
int dc_mcf_regster(DCLONG flags, DCLONG(*uoc_addr)(DCLONG flags,
                   char *termname, DCLONG sendno, 
                   DCLONG sendid, DCLONG dataleng, 
                   char *senddata))
 

K&R版 Cの形式
 
#include<dcmcf.h>
int dc_mcf_regster(flags, uoc_addr)
DCLONG flags;
DCLONG (*uoc_addr)();
 
(b) ユーザが値を設定する引数
(c) リターン値
リターン値 意味
DC_OK 正常に終了しました。
DCMCFER_INVALID_ARGS 引数の指定が間違っています。
DCMCFER_NOMEM ローカルメモリが不足しました。
(d) メイン関数への登録例
 
main()
{
extern DCLONG send_uoc();
 
dc_rpc_open();
dc_mcf_open();
dc_mcf_regster(DCMCF_SEND_UOC,send_uoc);
dc_mcf_mainloop();
dc_mcf_close();
dc_rpc_close();
}
 

メイン関数,サービス関数,スタブ関数にUOC関数をリンケージしてUAPの実行形式プログラムを生成します。