BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedoホーム   |   BEA Tuxedo C リファレンス   |   先頭へ   |   前へ   |   次へ   |   目次

 


tpconnect(3c)

名前

tpconnect()-会話型サービス・ルーチンの接続を設定するルーチン

形式

#include <atmi.h> 

int tpconnect(char *svc, char *data, long len, long flags)

機能説明

tpconnect() により、プログラムは会話型サービス svc との半二重接続をセットアップすることができます。この名前は、会話型サーバがポストした会話型サービス名の1つでなければなりません。

呼び出し元は、接続セットアップ処理の一部として、アプリケーション定義データをリスニング・プログラムに渡すことができます。呼び出し元がデータを渡す選択をした場合には、datatpalloc() が以前に割り当てたバッファを指していなければなりません。len には送信バッファの大きさを指定します。ただし、data が長さの指定を必要としないバッファを指している場合 (FML フィールド化バッファなど)、len は無視されます (0 でかまいません)。また、data は NULL の場合もあります。この場合、len は無視されます (アプリケーション・データは会話型サービスに渡されません)。data のタイプとサブタイプは、svc が認識するタイプおよびサブタイプと一致しなければなりません。datalen は、該当サービスの呼び出し時に使用する TPSVCINFO 構造体を介して会話型サービスに渡されます。また、サービスはこのデータの獲得に tprecv() を呼び出す必要はありません。

次に、有効な flags の一覧を示します。

TPNOTRAN

呼び出しプロセスがトランザクション・モードにあり、このフラグが設定されていると、svc が呼び出されたときに、このプロセスは呼び出し元のトランザクションの一部として実行されません。svc が依然としてトランザクション・モードで起動される場合がありますが、それは同じトランザクションでないことに注意してください。svc は、コンフィギュレーション属性で、自動的にトランザクション・モードで呼び出されるようにすることができます。このフラグを設定するトランザクション・モードの呼び出し元は、トランザクション・タイムアウトの影響を受けます。このフラグをセットして起動したサービスが異常終了した場合、呼び出し元のトランザクションは影響されません。

TPSENDONLY

呼び出し元は、最初にそれがデータの送信のみを行え、呼び出されたサービスはデータの受信のみを行えるよう接続を設定しなければならないことがあります (つまり、呼び出し元が当初の接続の制御権を有するように)。TPSENDONLY または TPRECVONLY のいずれかを指定しなければなりません。

TPRECVONLY

呼び出し元は、それがデータの受信のみを行え、呼び出されたサービスがデータの送信のみを行えるように接続を設定しなければならないことがあります (つまり、呼び出されるサービスが当初、接続の制御権を有するように)。TPSENDONLY または TPRECVONLY のいずれかを指定しなければなりません。

TPNOBLOCK

ブロッキング条件が存在する場合、接続が設定されておらず、データが送信されません (たとえば、メッセージが送信されるときに使用されるデータ・バッファがいっぱいである場合)。このフラグは、tpconnect() の送信部分にだけ適用されます。関数は、サーバからの承認を待つ間ブロックする場合があります。TPNOBLOCK が指定されておらず、ブロッキング条件が存在する場合、条件の解除、またはブロッキング・タイムアウトあるいはトランザクション・タイムアウトが発生するまで呼び出し元はブロックされます。

TPNOTIME

このフラグは、呼び出し元が無制限にブロックでき、ブロッキング・タイムアウトの対象にならないようにすることを指定します。ただし、トランザクション・タイムアウトはあいかわらず有効です。

TPSIGRSTRT

ルーチン内部のシステム・コールがシグナルによって中断された場合、中断された呼び出しが再発行されます。

マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは tpconnect() の呼び出しを発行できません。

戻り値

tpconnect() が正常に終了した場合、以後の呼び出しでの接続を指すのに使用する記述子を返します。エラー時には、-1 を返し、tperrno() を設定してエラー条件を示します。

エラー

異常終了時には、tpconnect()tperrno() を次のいずれかの値に設定します(特に指定がない限り、障害は、呼び出し元のトランザクションに影響しません)

[TPEINVAL]

無効な引数が与えられました (たとえば、svc が NULL、data が NULL でなく tpalloc() で割り当てられたバッファを指していない、TPSENDONLY または TPRECVONLYflags に指定されていない、あるいは flags が無効であるなど)。

[TPENOENT]

svc が存在しないか、会話型サーバでないか、または名前が "." で始まるため、svc への接続を開始できません

[TPEITYPE]

data のタイプおよびサブ・タイプは、svc が受け付けるタイプあるいはサブ・タイプの1つでありません。

[TPELIMIT]

未終了の接続の最大数に達したため、呼び出し元の要求が送られませんでした。

[TPETRAN]

svc はトランザクションをサポートしないプログラムに属していますが、TPNOTRAN が設定されていませんでした。

[TPETIME]

タイムアウトが発生しました。呼び出し元がトランザクション・モードの場合は、トランザクション・タイムアウトが発生し、そのトランザクションは「アボートのみ」とマークされます。トランザクション・モードでなければ、ブロッキング・タイムアウトが発生し、TPNOBLOCKTPNOTIME も指定されていませんでした。トランザクション・タイムアウトが発生すると、トランザクションがアボートされない限り、接続を使ったメッセージの送受信や新しい接続の開始はできません。これらの操作を行おうとすると、TPETIME が発生して失敗します。

[TPEBLOCK]

ブロッキング状態のため、TPNOBLOCK が指定されました。

[TPGOTSIG]

シグナルを受け取りましたが、TPSIGRSTRT が指定されていません。

[TPEPROTO]

tpconnect() が不正に呼び出されました。

[TPESYSTEM]

BEA Tuxedo システムのエラーが発生しました。エラーの正確な内容はログ・ファイルに書き込まれます。

[TPEOS]

オペレーティング・システムのエラーが発生しました。

関連項目

tpalloc(3c)tpdiscon(3c)tprecv(3c)tpsend(3c)tpservice(3c)

 

先頭へ戻る 前のトピックへ 次のトピックへ