bea ホーム | 製品 | dev2dev | support | askBEA
BEA Logo Tuxedo
 ドキュメントのダウンロード   サイトマップ   用語集 
検索
0

Tuxedo C リファレンス

 Previous Next Contents View as PDF  

tpnotify(3c)

名前

tpnotify()−クライアント識別子によって通知を送信するルーチン

形式

#include <atmi.h> 
int tpnotify(CLIENTID *clientid, char *data, long len, long flags)

機能説明

tpnotify() は、各クライアントに任意通知型メッセージを送信できるようにします。

clientid は、以前のあるいは現在のサービス呼び出しの TPSVCINFO 構造体から保存された、または、他の何らかの通信機構によってクライアントに渡された (たとえば、管理インターフェイスを使って検索された) クライアント識別子を指すポインタです。

この要求のデータ部は data によって示され、以前に tpalloc() によって割り当てられたバッファです。len に送信するデータの大きさを指定します。ただし、data が長さの指定を必要としないタイプのバッファを指す場合 (たとえば、FML フィールド化バッファ)、len は 0 でかまいません。また、data は NULL であってもかまいません。この場合、len は無視されます。

tpnotify() が正常終了した場合、メッセージはシステムに渡され、指定されたクライアントに送信されます。TPACK フラグが設定されている場合は、正常終了は、クライアントがメッセージを受信したことを意味します。さらに、クライアントが任意通知型のメッセージ・ハンドラに登録している場合は、ハンドラが呼び出されます。

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

TPACK

要求は送信され、呼び出し元は承認メッセージがターゲット・クライアントから受信されるまでブロックします。

TPNOBLOCK

この要求は、通知の送信中にブロッキング条件が存在する場合 (たとえば、メッセージの送信先である内部バッファがいっぱいの場合など) には、送信されません。

TPNOTIME

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

TPSIGRSTRT

シグナルが関数内部のシステム・コールを中断すると、中断されたシステム・コールは出しなおされます。

TPACK フラグを設定しない限り、tpnotify() は、メッセージがクライアントに送られるまで待機していません。

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

戻り値

異常終了すると、tpnotify() は -1 を返し、tperrno を設定してエラー条件を示します。呼び出しが異常終了して tperrno に特定の値が設定されたときは、中間の ATMI 呼び出しを省略して引き続き tperrordetail() を呼び出すと、エラーに関する詳細な情報が提供されます。詳細については、tperrordetail(3c) リファレンス・ページを参照してください。

エラー

異常終了時には、tpnotify()tperrno を次のいずれかの値に設定します。

[TPEINVAL]

無効な引数が指定されました (たとえば、無効なフラグなど)。

[TPENOENT]

ターゲット・クライアントが存在せず、TPACK フラグが設定されました。

[TPETIME]

ブロッキング・タイムアウトが発生し、TPNOBLOCKTPNOTIME のいずれも指定されなかったか、TPACK は設定されたが承認が受信されず、TPNOTIME が指定されませんでした。ブロッキング・タイムアウトは、TPNOBLOCK または TPNOTIME、あるいはその両方を指定した場合は発生しません。

[TPEBLOCK]

呼び出し時にブロッキング条件が検出されましたが、TPNOBLOCK が指定されていました。

[TPGOTSIG]

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

[TPEPROTO]

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

[TPESYSTEM]

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

[TPEOS]

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

[TPERELEASE]

TPACK が指定され、ターゲットは承認プロトコルをサポートしない BEA Tuxedo の前のリリースからのクライアントです。

関連項目

C 言語アプリケーション・トランザクション・モニタ・インターフェイスについて」、tpalloc(3c)tpbroadcast(3c)tpchkunsol(3c)tperrordetail(3c)tpinit(3c)tpsetunsol(3c)tpstrerrordetail(3c)tpterm(3c)

 

Back to Top Previous Next
Contact e-docsContact BEAwebmasterprivacy