|
|
tpscmt(3c)
名前
tpscmt()-tpcommit() がいつ戻るかを設定するルーチン
形式
#include <atmi.h>
int tpscmt(long flags)
機能説明
tpscmt() は、flags で指定した値を TP_COMMIT_CONTROL 特性に設定します。TP_COMMIT_CONTROL 特性は、tpcommit() の呼び出し元に制御を戻すことに関して、tpcommit() の動作に影響を与えます。プログラムがトランザクション・モードにあるかどうかに関係なく、プログラムから tpscmt() を呼び出すことができます。他のプログラムがコミットしなければならないトランザクションに呼び出し元が参加している場合は、tpscmt() を呼び出してもそのトランザクションに影響を与えないことに注意してください。むしろ、呼び出し元がコミットするその後のトランザクションに影響を与えます。
ほとんどの場合、BEA Tuxedo ATMI システムのスレッドの制御が tpcommit() を呼び出す場合にのみ、トランザクションがコミットされます。ただし、例外が 1 つあります。UBBCONFIG ファイルの *SERVICES セクションの AUTOTRAN 変数が有効になっているためサービスがトランザクション・モードでディスパッチされる場合、トランザクションは tpreturn() を呼び出して戻ります。tpforward() が呼び出されると、最終的にサーバが tpreturn() を呼び出すことでトランザクションが完了します。このように、tpreturn() を呼び出すサービスの TP_COMMIT_CONTROL 属性の設定によって、サーバ中で tpcommit() からいつ制御が戻るかが決まります。tpcommit() がヒューリスティックなエラー・コードを返した場合、サーバはメッセージをログ・ファイルに書き込みます。
クランアントが BEA Tuxedo ATMI システムのアプリケーションに参加する場合は、この特性の初期設定はコンフィギュレーション・ファイルから取られます(UBBCONFIG(5) の *RESOURCES セクションの CMTRET 変数の項を参照)。
flags に設定できる有効な値を次に示します。
マルチスレッドのアプリケーションの場合、TPINVALIDCONTEXT 状態のスレッドは、tpscmt() の呼び出しを発行できません。
戻り値
成功の場合、tpscmt() は TP_COMMIT_CONTROL 特性の以前の値を返します。
異常終了すると、tpscmt() は -1 を返し、tperrno() を設定してエラー条件を示します。
エラー
異常終了時には、tpscmt() は tperrno を次のいずれかの値に設定します
注意事項
BEA Tuxedo ATMI システムのトランザクションを記述するために tpbegin()、tpcommit()、および tpabort() を使用する場合、XA インターフェイスに準拠した (呼び出し元に妥当にリンクされている) リソース・マネージャが行う作業のみがトランザクションの特性を備えていることを記憶しておくことが重要です。トランザクションにおいて実行される他のすべての操作は、tpcommit() あるいは tpabort() のいずれにも影響されません。詳細については buildserver(1) を参照してください。
関連項目
tpabort(3c)、 tpbegin(3c)、 tpcommit(3c)、 tpgetlev(3c)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|