bea ホーム | 製品 | dev2dev | support | askBEA |
![]() |
![]() |
|
![]() |
e-docs > Tuxedo > Tuxedo C リファレンス > セクション 3c - C 関数 |
Tuxedo C リファレンス
|
名前
tppost()−イベントをポストする
形式
#include <atmi.h>
int tppost(char *eventname, char *data, long len, long flags)
機能説明
呼び出し元は tppost() を使用して、イベントとそれに伴うすべてのデータをポストします。イベント名は eventname に指定し、data は、NULL 以外の場合はデータを指すようにします。ポストされたイベントとそのデータは、BEA Tuxedo ATMI のイベント・ブローカによって、eventname に対して評価が成功するサブスクリプションを持ち、data に対して評価が成功するオプションのフィルタ・ルールを持つすべてのサブスクライバにディスパッチされます。
eventname には、最大で 31 文字の NULL で終了する文字列を指定します。eventname の最初の文字にドット (&dlq;.&drq“用できません。これは、BEA Tuxedo ATMI システム自身が定義するあらゆるイベントの最初の文字として、ドットが予約されているためです。
data には、NULL 以外の場合は、tpalloc() によって以前に割り当てたバッファを指定し、len にはバッファ内のイベントと共にポストするバッファに入っているデータの長さを指定しなければなりません。長さを指定する必要のないタイプのバッファ (FML フィールド化バッファなど) を data が指す場合、len は無視されます。data が NULL の場合、len は無視され、イベントはデータなしでポストされます。
tppost() をトランザクション中で使用する場合は、トランザクションの境界を拡大して、これらのサーバ上、およびイベント・ブローカが通知する安定記憶域上のメッセージ・キューを含むようにすることができます。トランザクションによるポストでは、ポストされたイベントを受け取ったことがポスト元のトランザクションに通知される場合 (サーバやキューなど) と、通知されない場合 (クライアントなど) があります。
ポスト元がトランザクション内にあり、TPNOTRAN がセットされている場合は、ポストされたイベントはイベント・ブローカに渡されます。これは、イベント・ブローカがイベントをポスト元のトランザクションの一部として処理できるようにするためです。イベント・ブローカはトランザクションによるイベント通知を、tpsubscribe() に渡される ctl
ポスト元がトランザクションの外部にある場合、イベントに関連するサービスが異常終了すると、tppost() は肯定応答のない一方向のポストになります。このような状況は、イベント用に TPEVTRAN が設定されている場合でも起こります (この設定には、tpsubscribe() に渡される ctl
次に、有効な flags の一覧を示します。
マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは tppost() の呼び出しを発行できません。
戻り値
tppost() から成功して戻ると、tpurcode() には eventname の代わりにイベント・ブローカによってディスパッチされるイベント通知の数が設定されています (つまり、eventname に対するイベント表現の評価が成功し、data に対するフィルタ・ルールの評価が成功したサブスクリプションへのポストです)。tperrno が TPESVCFAIL に設定されて戻った場合は、tpurcode() には、eventname の代わりにイベント・ブローカによってディスパッチされたトランザクション以外のイベント通知の数が設定されています。
異常終了すると、tppost() は -1 を返し、tperrno を設定してエラー条件を示します。
エラー
異常終了時には、tppost() は tperrno を次のいずれかの値に設定します(特に記述した場合を除いては、エラーが呼び出し元のトランザクションに影響を及ぼすことはありません)。
関連項目
tpsubscribe(3c)、tpunsubscribe(3c)、EVENTS(5)、TMSYSEVT(5)、TMUSREVT(5)
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |