Hitachi

OpenTP1 Version 7 分散トランザクション処理機能 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;
  • mcfid

    処理対象のコネクションを持つMCF通信サービスのMCF通信プロセス識別子を設定します。設定できる範囲は0〜239です。

    論理端末名称を使用してコネクションの確立を要求する場合は,無効となります。

    0を指定すると,該当するコネクションIDが属するMCF通信サービスを検索します。MCF通信サービスが多い構成やUAPからこの関数を多数発行する場合は,MCF通信プロセス識別子の指定をお勧めします。

    注※

    MCF環境定義(mcftenv -s)で指定するMCF通信プロセス識別子は16進数と見なしてください。

    例えば,MCF通信プロセス識別子が10の場合,16を設定してください。

  • resv01

    領域をヌル文字で埋めます。

  • idnam

    確立するコネクションの論理端末名称,またはコネクションIDを設定します。論理端末名称,またはコネクションIDは最大8バイトの長さです。論理端末名称の最後にはヌル文字を付けてください。

  • resv02,resv03,scnnam,resv04,yournam,resv05,hostnam,resv06,resv07

    領域をヌル文字で埋めます。

●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;
  • pnam

    プロトコル固有領域のプロトコル名称を設定します。

    "TCP△"

    TCP/IPプロトコル

  • resv01

    領域をヌル文字で埋めます。

  • i_ipaddr

    自システムのIPアドレスを16進形式(ビッグエンディアン)で設定します。

    [図データ]

    dotted-decimal形式では指定できません。

    自システムのIPアドレスの割り当てをOSに任せる場合は,0を設定してください。

    IPアドレス255.255.255.255は設定できません。

  • i_portno

    自システムのポート番号を16進形式(ビッグエンディアン)で設定します。

    [図データ]

    設定できる範囲は0,または1024〜65535です。

    自システムのポート番号の割り当てをOSに任せる場合は,0を設定してください。

  • resv02

    領域をヌル文字で埋めます。

  • o_ipaddr

    相手システムのIPアドレスを16進形式(ビッグエンディアン)で設定します。

    dotted-decimal形式では指定できません。

    IPアドレス0.0.0.0,および255.255.255.255は設定できません。

  • o_portno

    相手システムのポート番号を16進形式(ビッグエンディアン)で設定します。

    設定できる範囲は1〜65535です。

  • resv03,i_pathname,o_pathname,resv04

    領域をヌル文字で埋めます。

●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がヌル文字で埋められていません。