tpacall
名称
リクエスト/レスポンス型サービスの呼び出し
形式
ANSI C,C++の形式
#include <xatmi.h>
int tpacall(char *svc,char *data,long len,long flags)
K&R版 Cの形式
#include <xatmi.h>
int tpacall(svc,data,len,flags)
char *svc;
char *data;
long len;
long flags;
機能
関数tpacall()は,svcで示すサービスにサービス要求のメッセージを送信します。dataがNULLでない場合は,dataはあらかじめtpalloc()で割り当てたバッファを指して,lenには送信するデータの長さを設定します。
『引数』
『●svc
要求するサービスのサービス名を設定します。』
『●data
送信データ格納領域へのポインタを設定します。』
『●len
送信データの長さを設定します。』
『●flags
flagsには,次に示す値を設定します。』
リターン値
成功した場合,tpacall()は送信したサービス要求の応答を受信するために使う記述子を返します。エラー時には,-1をリターンして,tperrnoにエラーの状態を示す値を設定します。
エラー
次のような場合,tpacall()はエラーリターンして,次のうちどれか一つの値をtperrnoに設定します。特に示さないかぎり,失敗は呼び出し側のトランザクションに影響を与えません。
リターン値 | リターン値(数値) | 意味 |
---|---|---|
TPEBLOCK | 3 | TPNOBLOCKを設定したtpacall()で送信したときに,ブロッキング状態になりました。 |
TPEINVAL | 4 | 間違った引数が与えられました(例えば,svcがNULL,dataがtpalloc()に割り当てられた領域を指していない,flagsに設定した値が間違っている)。 |
TPELIMIT | 5 | 解決していない非同期の送信要求が最大数に達したので,呼び出し側の要求は送信されません。 |
TPENOENT | 6 | svcで示すサービスが存在しないので,送信できません。 |
TPEOS | 7 | オペレーティングシステムにエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。 |
TPEPROTO | 9 | tpacall()が間違った状況で呼ばれました。 |
TPESYSTEM | 12 | コミュニケーションリソースマネジャシステムでエラーが起こりました。厳密なエラーの性質は,product-specificな方法で定義されます。 |
TPETIME | 13 | タイムアウトが起こりました。呼び出し側がトランザクションモードの場合は,これはトランザクションタイムアウトで,トランザクションはrollback_only状態となります。そうでない場合は,TPNOBLOCKもTPNOTIMEも設定されていない状態でブロッキングタイムアウトが起こったことを意味します。トランザクションタイムアウトが起こった場合は,トランザクションをロールバックするまでは,新しく送信しようとしていた送信や,解決していない応答は,TPETIMEでエラーリターンします。 |
TPETRAN | 14 | svcがトランザクション処理をできないにもかかわらず,TPNOTRANが設定されていません。 |
TPEGOTSIG | 15 | シグナルは受信されましたが,TPSIGRSTRTが設定されていません。 |
TPEITYPE | 17 | dataのtypeとsubtypeが,svcで使える形式ではありません。 |
関連項目
tpalloc(),tpcall(),tpcancel(),tpgetrply()
『OpenTP1で使う場合の注意事項』