|
|
tpabort(3c)
名前
tpabort()-現在のトランザクションをアボートするルーチン
形式
#include <atmi.h>
int tpabort(long flags)
機能説明
tpabort() は、トランザクションのアボートを指定します。この関数が終了すると、そのトランザクションでなされたリソースへの変更内容はすべて取り消されます。tpcommit() と同様、この関数は、トランザクションのイニシエータからしか呼び出せません。パーティシパント (つまり、サービス・ルーチン) は、トランザクションをアボートさせたい場合には、TPFAIL を付けて TPRETURN(3) を呼び出します。
未終了の応答に対する呼び出し記述子が存在するときに tpabort() を呼び出すと、この関数の終了時に、トランザクションはアボートし、呼び出し側のトランザクションに関連するこれらの記述子は以後無効になります。呼び出し側のトランザクションに関連がない呼び出し記述子の状態は有効のままです。
トランザクション・モードの会話サーバに対してオープン接続がある場合、tpabort() は TPEV_DISCONIMM イベントをサーバに送ります (そのサーバが接続の制御権を有するかどうかに関係なく)。tpbegin() の前に、あるいは TPNOTRAN フラグを付けて (つまり、トランザクション・モードでない状態で) オープンされた接続は、影響を受けません。
現時点では、tpabort() の唯一の引数 flags は将来の用途のために予約されており、0 を設定しておかなければなりません。
マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは tpabort() の呼び出しを発行できません。
戻り値
異常終了すると、tpabort() は -1 を返し、tperrno() を設定してエラー条件を示します。
エラー
異常終了すると、tpabort()は tperrno() を次のいずれかの値に設定します。
注意事項
BEA Tuxedo ATMI システムのトランザクションを記述するために tpbegin()、tpcommit()、および tpabort() を使用する場合、XA インターフェイスに準拠した (呼び出し元に妥当にリンクされている) リソース・マネージャが行う作業のみがトランザクションの特性を備えていることを記憶しておくことが重要です。トランザクションにおいて実行される他のすべての操作は、tpcommit() あるいは tpabort() のいずれにも影響されません。
関連項目
tpbegin(3c)、 tpcommit(3c)、 tpgetlev(3c)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|