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
}
}親トピック: 会話型クライアントおよびサーバーのコーディング