Hitachi

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


5.1.10 コネクション確立UOCインタフェース

コネクション確立UOCは,次に示す形式で呼び出します。

〈この項の構成〉

(1) 形式

 ANSI C,C++の場合
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG con_uoc(dcmtcp_uoc_con_n *parm)
 K&R版 Cの場合
#include <dcmcf.h>
#include <dcmcfuoc.h>
#include <dcmtcpu.h>
DCLONG con_uoc(parm)
 
dcmtcp_uoc_con_n *parm;

(2) 説明

con_uoc(コネクション確立UOC)を呼び出すとき,MCFは次に示す所定のパラメタをparmに設定します。

(3) パラメタの内容

(a) dcmtcp_uoc_con_nの内容

typedef struct{
    char  cn_name[9];            …コネクションID
    char  reserve[7];            …予備
    dcmtcp_cnuoc_oaddr *oaddr;   …相手システムのアドレス情報
    unsigned short  oportno;     …相手システムのポート番号
    unsigned short  iportno;     …自システムのポート番号
    DCLONG  connect_permit;      …コネクション確立要求受け入れ可否
    DCLONG  reject_reason;       …コネクション確立拒否理由
    DCLONG  rtn_detail;          …詳細リターンコード
}dcmtcp_uoc_con_n;

(b) dcmtcp_cnuoc_oaddr(相手システムのアドレス情報)の内容

typedef struct{
    unsigned short o_type;       …アドレス通知形式
    unsigned short o_len;        …アドレス長
    char  o_addr[256];           …相手システムのアドレス
}dcmtcp_cnuoc_oaddr;

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

(a) dcmtcp_uoc_con_n

  • cn_name

    確立要求を受け付けたコネクションIDが設定されます。

  • oaddr

    確立要求を行った相手システムのアドレス情報として,次の値が設定されます。

  • oportno

    確立要求を行った相手システムのポート番号が設定されます。

  • iportno

    確立要求を受け付けた自システムのポート番号が設定されます。

(b) dcmtcp_cnuoc_oaddr(相手システムのアドレス情報)

  • o_type

    相手システムアドレスの通知形式が設定されます。

    0x01 ドット10進数字(dotted-decimal形式)表記

  • o_len

    相手システムアドレスの格納長が設定されます。

  • o_addr

    相手システムアドレスを格納した領域が設定されます。

    相手システムのIPアドレスはドット10進数字(dotted-decimal形式)表記の文字列で設定されます(例:"172.18.151.40")。

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

(a) dcmtcp_uoc_con_n

  • connect_permit

    コネクション確立要求を受け入れるかどうかを設定します。

    DCMTCP_UOC_CON_ACCEPT

    コネクション確立要求を受け入れます。

    DCMTCP_UOC_CON_REJECT

    コネクション確立要求を拒否します。

  • reject_reason

    コネクション確立要求を拒否する場合の拒否理由を設定します。値は任意です。この拒否理由はログメッセージ(KFCA14840-I)に出力されます。

  • rtn_detail

    コネクション確立UOCがDCMTCP_UOC_CON_NG(UOC異常終了)でリターンするときの詳細コードを設定します。この詳細リターンコードはログメッセージ(KFCA14808-E)に出力されます。値は-19999〜-19000の範囲内で設定します。TP1/NET/TCP/IPは,値の範囲をチェックしません。

(6) リターン値

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

リターン値

意味

DCMTCP_UOC_CON_OK

正常リターン(コネクション確立要求の受信)

DCMTCP_UOC_CON_NG

コネクション確立要求判定エラー

(7) MCFメイン関数のコーディング例

コネクション確立UOCをメイン関数に登録する場合のコーディング例を次に示します。

ANSI C,C++の場合
#include <dcmtcp.h>
#include <dcmtcpu.h>
 
extern DCLONG con_uoc(dcmtcp_uoc_con_n *);/* コネクション確立UOC*/
extern dcmcf_uoc_t  dcmcf_uoctbl;     /* UOCテーブルextern宣言 */
 
int main()
{
     dcmcf_uoctbl.assctn                   /* コネクション確立UOC */
               = (dcmcf_uocfunc)con_uoc;   /* アドレス設定 */
     dc_mcf_svstart();
     return 0;
}
K&R版 Cの場合
#include <dcmtcp.h>
 
extern DCLONG con_uoc();                   /* コネクション確立UOC */
extern dcmcf_uoc_t dcmcf_uoctbl;      /* UOCテーブルextern宣言 */
 
main()
{
     dcmcf_uoctbl.assctn = con_uoc;        /* コネクション確立UOC */
                                           /* アドレス設定 */
     dc_mcf_svstart();
}