7.3 接続の確立
tpconnect(3c)関数は、会話を行うための接続を確立します。
tpconnect()
関数の呼出しには、次のシグネチャを使用します。
int
tpconnect(char *name, char *data, long len, long flags)
次の表は、tpconnect()
関数の引数を示しています。
表7-1 tpconnect()関数の引数
引数 | 説明 |
---|---|
name
|
会話型サービス名の文字ポインタ。name に会話型サービスを指すポインタが指定されていない場合、呼出しが失敗して-1 が返され、tperrnoにエラー・コードTPENOENT が設定されます。
|
data
|
データ・バッファを指すポインタ。data 引数に、tpalloc()を使用してすでに割り当てられているバッファを指すポインタを設定すると、接続の確立と同時にデータを送信することができます。バッファのタイプ とサブタイプ は、呼び出されたサービスで認識できなければなりません。data の値をNULLに設定すると、データが送信されないように指定できます。呼び出された会話型サービスは、TPSVCINFO データ構造体を介してdata およびlen ポインタを受け取ります。この構造体は、サービスが呼び出されたときにmain() 関数によって渡されます。(リクエスト/レスポンス・サービスも同じ方法で、data およびlen ポインタを受け取ります。)TPSVCINFO データ構造体の詳細は、「サービスの定義」を参照してください。
|
len
|
データ・バッファの長さ。バッファが自己記述型(FML バッファなど)の場合、len に0を設定できます。
|
flag
|
フラグの設定値。有効なフラグの設定値については『Oracle Tuxedo ATMI C言語関数リファレンス』の「tpconnect(3c)」を参照してください。システムは、TPSVCINFO 構造体のフラグ・メンバーを使用して呼び出されたサービスに通知します。
|
tpconnect()
によって接続が確立されると、Oracle Tuxedoシステムから接続記述子(cd
)が返されます。このcd
は、特定の会話で以降に送られるメッセージを識別するために使用されます。クライアントまたは会話型サービスは、複数の会話に同時に参加できます。最大64個の会話を同時に行うことができます。
tpconnect()
関数の呼出しが失敗すると-1
が返され、対応するエラー・コードがtperrno
に設定されます。エラー・コードについては、『Oracle Tuxedo ATMI C言語関数リファレンス』の「tpconnect(3c)」を参照してください。
次のリストは、tpconnect()
関数の使用方法を示しています。
会話型接続の確立のリスト
#include atmi.h
#define FAIL -1
int cd1; /* Connection Descriptor */
main()
{
if ((cd = tpconnect(“AUDITC”,NULL,0,TPSENDONLY)) == -1) {
error routine
}
}
親トピック: 会話型クライアントおよびサーバーのコーディング