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

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

dc_mcf_tdctcnコネクションの解放(C言語)

形式

 ANSI C,C++の形式

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

 K&R版Cの形式

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

機能

コネクションを解放します。

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

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

コネクション解放後,CCLSEVTまたはCERREVTを通知します。コネクション解放後に通知するMCFイベントを次の表に示します。

action引数のDCMCFFRC指定 コネクション定義(mcftalccn -f)のcnreleaseオペランドの指定値 通知するMCFイベント
なし 任意 CCLSEVT
あり fin CCLSEVT
rst CERREVT

UAPで値を設定する引数

●action

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

 
{DCMCFLE|DCMCFCN}〔|DCMCFFRC〕
 
DCMCFLE
解放するコネクションを論理端末名称で指定するときに設定します。
DCMCFCN
解放するコネクションをコネクションIDで指定するときに設定します。
DCMCFFRC
コネクションを強制的に解放するときに設定します。
コネクション定義(mcftalccn -f)のcnreleaseオペランドにrstを指定している場合,RSTパケットを送信してコネクションを強制解放します。
コネクション定義(mcftalccn -f)のcnreleaseオペランドを省略,またはfinを指定している場合,指定しても無効となり,FINパケットを送信してコネクションを正常に解放します。

●cnopt

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

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

 
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      resv05[360];    …予備領域
                } dcmcf_tdctcnopt;
 

●proinf,resv02,resv03,resv04

NULLを設定します。

リターン値

リターン値 リターン値
(数値)
意味
DCMCFRTN_00000 0 正常に終了しました。
DCMCFRTN_71001 -12001 MCFが開始処理中のため,dc_mcf_tdctcn関数が受け付けられません。
DCMCFRTN_71002 -12002 MCFが終了処理中のため,dc_mcf_tdctcn関数が受け付けられません。
DCMCFRTN_71004 -12004 dc_mcf_tdctcn関数の処理中にメモリ不足が発生しました。
DCMCFRTN_71005 -12005 通信障害が発生しました。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71006 -12006 内部障害が発生しました。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71007 -12007 指定されたコネクション名は登録されていません。
DCMCFRTN_71008 -12008 指定された論理端末名称は登録されていません。
DCMCFRTN_71009 -12009 dc_mcf_tdctcn関数が,該当するMCF通信プロセスではサポートされていません。または,サポートしていないDCMCFPROを指定しています。
DCMCFRTN_71010 -12010 MCF通信プロセスにコネクションの解放を要求しましたが,受け付けられませんでした。原因については,メッセージログファイルを参照してください。
DCMCFRTN_71011 -12011 コネクションが削除されているため,dc_mcf_tdctcn関数が受け付けられません。
DCMCFRTN_71014 -12014 TP1/NET/NCSB,またはTP1/NET/X25-Extendedの論理端末名称を指定しています。またはTP1/NET/OSI-TPのコネクショングループ名を指定しています。
DCMCFRTN_72050 -13050 actionに未サポートのフラグを設定しています。
DCMCFRTN_72051 -13051 cnoptにNULLが設定されています。
DCMCFRTN_72052 -13052 proinfにNULLが設定されていません。
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_tdctcnoptのmcfidに0未満または240以上の値が設定されています。
DCMCFRTN_72062 -13062 dcmcf_tdctcnoptのresv01がヌル文字で埋められていません。
DCMCFRTN_72063 -13063 dcmcf_tdctcnoptのidnamの先頭がヌル文字です。
DCMCFRTN_72064 -13064 dcmcf_tdctcnoptのresv02がヌル文字で埋められていません。
DCMCFRTN_72065 -13065 dcmcf_tdctcnoptのresv03がヌル文字で埋められていません。
DCMCFRTN_72066 -13066 dcmcf_tdctcnoptのscnnamがヌル文字で埋められていません。
DCMCFRTN_72067 -13067 dcmcf_tdctcnoptのresv04がヌル文字で埋められていません。
DCMCFRTN_72069 -13069 dcmcf_tdctcnoptのresv05がヌル文字で埋められていません。
DCMCFRTN_72073 -13073 dcmcf_tdctcnoptのidnamに設定された文字数が9以上です。
DCMCFRTN_72074 -13074 dcmcf_tdctcnoptのidnamに設定された文字列中に不正な文字があります。