Hitachi

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


5.1.2 入力メッセージ編集UOCインタフェース

入力メッセージ編集UOCは,次に示す形式で呼び出します。

〈この項の構成〉

(1) 形式

ANSI C,C++ の形式
#include <dcmcf.h>
#include <dcmnom.h>
#include <dcmcfuoc.h>
DCLONG    uoc_func(dcmcf_uoc_min_n *parm)
K&R版C の形式
#include <dcmcf.h>
#include <dcmnom.h>
#include <dcmcfuoc.h>
DCLONG    uoc_func(parm)
 
dcmcf_uoc_min_n  *parm;

(2) 説明

uoc_func(入力メッセージ編集UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。

(3) パラメタの内容

(a) dcmcf_uoc_min_nの内容

typedef struct {
    DCLONG pro_kind;                      …プロトコル種別
    char   le_name[9];                    …論理端末名称
    char   reserve1[7];                   …予備
    DCLONG rcv_prim;                      …受信サービスプリミティブ
    dcmcf_uocbuff_list_n *buflist_adr;    …受信バッファリストアドレス
    dcmcf_uocbuff_list_n *ebuflist_adr;   …編集バッファリストアドレス
    char   aplname[9];                    …アプリケーション名
    char   reserve2[7];                   …予備
    char   *pro_indv_ifa;                 …プロトコル個別インタフェース
                                            領域アドレス
    DCLONG rtn_detail;                    …詳細リターンコード
    char   reserve3[8];                   …予備
} dcmcf_uoc_min_n;

(b) dcmcf_uocbuff_list_n(バッファリスト)の内容

typedef struct {
    DCLONG buf_num;                       …バッファ情報数
    DCLONG used_buf_num;                  …使用バッファ情報数
    char   reserve1[8];                   …予備
    dcmcf_uocbufinf_n buf_array[DCMCF_UOC_BUFF_MAX];
                                          …バッファ情報
} dcmcf_uocbuff_list_n;

(c) dcmcf_uocbufinf_n(バッファ情報)の内容

typedef struct {
    char   *buf_adr;                      …バッファアドレス
    DCULONG buf_size;                     …バッファ最大長
    DCULONG seg_size;                     …セグメント長
    char   reserve1[4];                   …予備
    dcmcfuoc_w_type buff_id;              …MCF内部情報
    DCMLONG buff_addr;                    …MCF内部情報
    char   reserve2[4];                   …予備
} dcmcf_uocbufinf_n;

(d) プロトコル個別インタフェース領域の内容

typedef struct {                        …プロトコル個別インタフェース領域
    char lename[16];                   …MCF内部情報
    char mapname[10];                  …MCF内部情報
    char reserve1[6];                  …予備
    char appname[10];                  …あて先名称領域
    char reserve2[6];                  …予備
} dcmnom_uoc;

(4) MCFが値を設定する項目

(a) dcmcf_uoc_min_n

  •  pro_kind

    プロトコル種別として,次の値が設定されます。

    • DCMCF_UOC_PRO_NF:NIF/OSIプロトコル

  •  le_name

    メッセージを入力した論理端末の名称が設定されます。

  •  rcv_prim

    受信サービスプリミティブとして,次の値が設定されます。

    • DCMCF_UOC_RCV_BRD:一方送信メッセージの受信

    • DCMCF_UOC_RCV_INQ:問い合わせメッセージの受信

    • DCMCF_UOC_RCV_REP:応答メッセージの受信

    • DCMCF_UOC_RCV_REP_SR:同期型応答メッセージの受信

      DCMCF_UOC_RCV_REP_SRが設定されている場合,アプリケーション名は無効です。

  •  buflist_adr

    受信用バッファリストのアドレスが設定されます。

  •  ebuflist_adr

    編集用バッファリストのアドレスが設定されます。

    メッセージ編集バッファが未定義の場合,つまり,コネクション定義(mcftalccn -e)を省略した場合,ebuflist_adrにはヌル文字が設定されます。

  •  aplname

    すべて「\0」を設定します。

  •  pro_indv_ifa

    プロトコル個別インタフェース領域アドレスが設定されます。

(b) dcmcf_uocbuff_list_n(バッファリスト)

  •  buf_num

    バッファ情報の数が設定されます。

  •  buf_array

    バッファ情報の配列が設定されます。バッファ情報は,buf_numの数だけ設定されます。

(c) dcmcf_uocbufinf_n(バッファ情報)

  •  buf_adr

    バッファのアドレスが設定されます。

  •  buf_size

    バッファの最大長が設定されます。

  •  seg_size

    送信,または受信用バッファリストの場合だけ,セグメント長が設定されます。

  •  buff_id,buff_addr

    MCFで使用するパラメタです。

(d) プロトコル個別インタフェース

  •  lename,mapname

    MCFで使用するパラメタです。

  •  appname

    あて先名称が設定されます。TP1/NET/OSAS-NIFは,相手システムからきたEBCDIKコードを,自システムのコード体系に合わせて変換し,設定します。

    相手システムからのあて先名称が設定されていなかった場合,またはあて先名称に英数字(大文字)以外のコードが設定されている場合は,すべて「\0」を設定します。

(5) ユーザが値を設定する項目

(a) dcmcf_uoc_min_n

  •  aplname

    UOCで決定したアプリケーション名を設定します。

  •  rtn_detail

    詳細リターンコードを設定します。

    このコードは,UOCがDCMCF_UOC_MSG_NGでリターンした場合に,MCFに渡されます。

    MCFは,詳細リターンコードをメッセージログファイルに出力します。

    詳細リターンコードは,-19999〜-19000の範囲で指定してください。

    なお,標準UOCは,詳細リターンコードを使用しません。標準UOCでメッセージ不正を検出した場合は,詳細リターンコードは0になります。

(b) dcmcf_uocbuff_list_n(バッファリスト)

  •  used_buf_num

    使用したバッファ情報の数を設定します。

(c) dcmcf_uocbufinf_n(バッファ情報)

  •  seg_size

    セグメント長を設定します。

(6) リターン値

uoc_func()は次のコードでリターンしてください。

リターン値

意味

DCMCF_UOC_MSG_OK

正常リターン(編集バッファでスケジューリング)

DCMCF_UOC_MSG_OK_RCV

正常リターン(受信バッファでスケジューリング)

DCMCF_UOC_MSG_NG

メッセージ編集エラー

(7) パラメタとバッファの関係

UOCインタフェース用のパラメタとバッファの関係を次の図に示します。

図5‒3 UOCインタフェース用のパラメタとバッファの関係

[図データ]

注※1

mcftalccn -eオプションを指定しなければヌル文字となり,バッファリストとバッファは確保されません。

注※2

バッファ情報は32バイトで次の形式をしています。

[図データ]