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

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

dc_mcf_tactcnコネクションの確立(C言語)

形式

 ANSI C,C++の形式

 
 #include <dcmcf.h>
 int dc_mcf_tactcn (DCLONG action, dcmcf_tactcnopt *cnopt,
                     char *proinf, DCLONG *resv02, char *resv03,
                     char *resv04)
 

 K&R版Cの形式

 
 #include <dcmcf.h>
 int dc_mcf_tactcn (action, cnopt, proinf, resv02, resv03, resv04)
 DCLONG             action;
 dcmcf_tactcnopt    *cnopt;
 char               *proinf;
 DCLONG             *resv02;
 char               *resv03;
 char               *resv04;
 

機能

コネクションを確立します。

なお,dc_mcf_tactcn関数の正常終了は,コネクション確立要求をTP1/NET/TCP/IPが正常に受け付けたことを意味します。このため,相手システムとのコネクションの確立が正常に完了したことを示すものではありません。

dc_mcf_tactcn関数の呼び出し後にコネクションに関する何らかの処理をする場合は,dc_mcf_tlscn関数を用いてコネクションの状態を確認してください。

UAPで値を設定する引数

●action

確立するコネクションの指定方法を次の形式で設定します。

 
{DCMCFLE|DCMCFCN}〔|DCMCFPRO〕
 
DCMCFLE
確立するコネクションを論理端末名称で指定するときに設定します。
DCMCFCN
確立するコネクションをコネクションIDで指定するときに設定します。
DCMCFPRO
TP1/NET/TCP/IP固有の機能を使用するときに設定します。

●cnopt

この関数の対象となったコネクションの情報を,構造体dcmcf_tactcnoptに設定します。

構造体の形式を次に示します。

 
typedef struct {
                DCLONG        mcfid;          …MCF通信プロセス識別子
                char          resv01[4];      …予備領域
                char          idnam[9];       …論理端末名称,
                                                コネクションID
                char          resv02[7];      …予備領域
                char          resv03[112];    …予備領域
                char          scnnam[9];      …MCF使用領域
                char          resv04[7];      …予備領域
                char          yournam[9];     …MCF使用領域
                char          resv05[7];      …予備領域
                char          hostnam[143];   …MCF使用領域
                char          resv06[17];     …予備領域
                char          resv07[184];    …予備領域
                } dcmcf_tactcnopt;
 

●proinf

プロトコル固有領域として,構造体dcmtcp_tactcnを設定します。

TP1/NET/TCP/IP固有の機能を使用しない場合は,NULLを設定します。

プロトコル固有領域の形式を次に示します。

[図データ]

構造体の形式を次に示します。

 
typedef struct {
                char              pnam[4];         …プロトコルの名称
                char              resv01[4];       …予備領域
                DCULONG           i_ipaddr;        …自システムの
                                                     IPアドレス
                unsigned short    i_portno;        …自システムの
                                                     ポート番号
                char              resv02[2];       …予備領域
                DCULONG           o_ipaddr;        …相手システムの
                                                     IPアドレス
                unsigned short    o_portno;        …相手システムの
                                                     ポート番号
                char              resv03[2];       …予備領域
                char              i_pathname[128]; …予備領域
                char              o_pathname[128]; …予備領域
                char              resv04[744];     …予備領域
                } dcmtcp_tactcn;
 

●resv02,resv03,resv04

NULLを設定します。

リターン値

リターン値 リターン値
(数値)
意味
DCMCFRTN_00000 0 正常に終了しました。
DCMCFRTN_71001 -12001 MCFが開始処理中のため,dc_mcf_tactcn関数が受け付けられません。
DCMCFRTN_71002 -12002 MCFが終了処理中のため,dc_mcf_tactcn関数が受け付けられません。
DCMCFRTN_71004 -12004 dc_mcf_tactcn関数の処理中にメモリ不足が発生しました。
DCMCFRTN_71005 -12005 通信障害が発生しました。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71006 -12006 内部障害が発生しました。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71007 -12007 指定されたコネクション名は登録されていません。
DCMCFRTN_71008 -12008 指定された論理端末名称は登録されていません。
DCMCFRTN_71009 -12009 dc_mcf_tactcn関数が,該当するMCF通信プロセスではサポートされていません。
DCMCFRTN_71010 -12010 MCF通信プロセスにコネクションの確立を要求しましたが,受け付けられませんでした。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71011 -12011 コネクションが削除されているため,dc_mcf_tactcn関数が受け付けられません。
DCMCFRTN_72050 -13050 actionに未サポートのフラグを設定しています。
DCMCFRTN_72051 -13051 cnoptにNULLが設定されています。
DCMCFRTN_72052 -13052 <actionにDCMCFPROを設定していない場合>
proinfにNULLが設定されていません。
<actionにDCMCFPROを設定した場合>
proinfが示すプロトコル固有領域長Lに0未満,または1025以上の値を設定しています。
DCMCFRTN_72053 -13053 resv02にNULLが設定されていません。
DCMCFRTN_72054 -13054 resv03にNULLが設定されていません。
DCMCFRTN_72055 -13055 resv04にNULLが設定されていません。
DCMCFRTN_72060 -13060 actionにはDCMCFLEとDCMCFCNを同時に設定できません。
DCMCFRTN_72061 -13061 dcmcf_tactcnoptのmcfidに0未満または240以上の値が設定されています。
DCMCFRTN_72062 -13062 dcmcf_tactcnoptのresv01がヌル文字で埋められていません。
DCMCFRTN_72063 -13063 dcmcf_tactcnoptのidnamの先頭がヌル文字です。
DCMCFRTN_72064 -13064 dcmcf_tactcnoptのresv02がヌル文字で埋められていません。
DCMCFRTN_72065 -13065 dcmcf_tactcnoptのresv03がヌル文字で埋められていません。
DCMCFRTN_72066 -13066 dcmcf_tactcnoptのscnnamがヌル文字で埋められていません。
DCMCFRTN_72067 -13067 dcmcf_tactcnoptのresv04がヌル文字で埋められていません。
DCMCFRTN_72068 -13068 dcmcf_tactcnoptのyournamがヌル文字で埋められていません。
DCMCFRTN_72069 -13069 dcmcf_tactcnoptのresv05がヌル文字で埋められていません。
DCMCFRTN_72070 -13070 dcmcf_tactcnoptのhostnamがヌル文字で埋められていません。
DCMCFRTN_72071 -13071 dcmcf_tactcnoptのresv06がヌル文字で埋められていません。
DCMCFRTN_72072 -13072 dcmcf_tactcnoptのresv07がヌル文字で埋められていません。
DCMCFRTN_72073 -13073 dcmcf_tactcnoptのidnamに9以上の文字が設定されています。
DCMCFRTN_72074 -13074 dcmcf_tactcnoptのidnamに設定された文字列中に不正な文字があります。
DCMCFRTN_73100 -14100 コネクションが確立済みのため受け付けられません。
DCMCFRTN_73101 -14101 コネクションが確立処理中のため受け付けられません。
DCMCFRTN_73102 -14102 コネクションに対する論理端末が接続されていないため受け付けられません。
DCMCFRTN_73103 -14103 サーバ型コネクションのため受け付けられません。
DCMCFRTN_73104 -14104 コネクションが解放処理中のため受け付けられません。
DCMCFRTN_73130 -14130 プロトコル固有領域長Lに設定した値が不足しています。
DCMCFRTN_73131 -14131 dcmtcp_tactcnのpnamの値が間違っています。
DCMCFRTN_73132 -14132 dcmtcp_tactcnのresv01がヌル文字で埋められていません。
DCMCFRTN_73133 -14133 dcmtcp_tactcnのi_ipaddrに255.255.255.255のIPアドレスが設定されています。
DCMCFRTN_73134 -14134 dcmtcp_tactcnのi_portnoに1以上1023以下の値が設定されています。
DCMCFRTN_73135 -14135 dcmtcp_tactcnのresv02がヌル文字で埋められていません。
DCMCFRTN_73136 -14136 dcmtcp_tactcnのo_ipaddrに0.0.0.0,または255.255.255.255のIPアドレスが設定されています。
DCMCFRTN_73137 -14137 dcmtcp_tactcnのo_portnoに0が設定されています。
DCMCFRTN_73138 -14138 dcmtcp_tactcnのresv03がヌル文字で埋められていません。
DCMCFRTN_73139 -14139 dcmtcp_tactcnのi_pathnameがヌル文字で埋められていません。
DCMCFRTN_73140 -14140 dcmtcp_tactcnのo_pathnameがヌル文字で埋められていません。
DCMCFRTN_73141 -14141 dcmtcp_tactcnのresv04がヌル文字で埋められていません。