|
|
TPBEGIN(3cbl)
名前
TPBEGIN() - BEA Tuxedo ATMI のトランザクションを開始するルーチン
形式
01 TPTRXDEF-REC.
COPY TPTRXDEF.
01 TPSTATUS-REC.
COPY TPSTATUS.
CALL "TPBEGIN" USING TPTRXDEF-REC TPSTATUS-REC.
機能説明
BEA Tuxedo システムにおけるトランザクションは、完全に成功するか、あるいは何も影響を残さない 1 つの論理的な作業単位を定義するときに使用します。 トランザクションにより、多くのプロセスで (そして、多分様々なサイトで) 行われる作業を1つの分割できない単位として扱うことができます。 トランザクションのイニシエータは、TPBEGIN() と TPCOMMIT() または TPABORT() を使用して、トランザクション内の処理を記述します。 TPBEGIN() が呼び出された後は、ほかのプログラムとの通信は、後のプログラム (つまり、サーバ) を「トランザクション・モード」にすることが可能です。つまり、サーバの作業はトランザクションの一部になります。 トランザクションに参加した制御のスレッドをパーティシパントと呼びます。 トランザクションには、必ず1つの実行元があり、いくつかのパーティシパントをもつことができます。 TPCOMMIT() または TPABORT() を呼び出せるのは、トランザクションの実行元だけです。パーティシパントは、それらが TPRETURN() を呼び出したときに、TPSVCDEF-REC の設定によってトランザクションの結果に影響することがあります。 トランザクション・モードに入ると、サーバに出されたサービス要求はすべて、トランザクションの一部として処理されます (明示的にリクエスタからのそれ以外の指定がない場合)。
また、会話サーバに対して確立されたオープン接続があるときにプログラムがトランザクションを起動しても、これらの接続はトランザクション・モードには変わりません。 これは、TPCONNECT() の呼び出し時に TPNOTRAN 設定を指定したことと同じです。
T-OUT は、トランザクションのタイムアウトまでの時間を最低 T-OUT 秒にすることを指定します。 トランザクションはタイムアウト時間を経過した後は、中途終了しなければなりません。 T-OUT の値が 0 であると、トランザクションにはシステムが許す最大時間 (秒単位) のタイムアウト値が与えられます。つまり、このときのタイムアウト値は、システムが定義する符号なし long 型の最大値になります。
戻り値
TPBEGIN() は正常終了時には、TP-STATUS に [TPOK] を設定します。
エラー
次の条件が発生すると、TPBEGIN() は異常終了し、TP-STATUS に次の値を設定します。
注意事項
TPBEGIN()、TPCOMMIT()、および TPABORT() を使用して BEA Tuxedo ATMI のトランザクションを記述する際には、XA インターフェイスに準拠した (および呼び出し元に適切にリンクされている) リソース・マネージャが行う作業がトランザクションとしての特性を備えていることを覚えておくことが重要です。 トランザクションで行われるその他の処理内容は、TPCOMMIT() や TPABORT() の影響を受けません。 そのリソース・マネージャが行った処理が BEA Tuxedo ATMI のトランザクションの一部となるよう、XA インターフェイスを満たすリソース・マネージャをサーバにリンクする方法については、buildserver(1) を参照してください。
関連項目
TPABORT(3cbl)、TPCOMMIT(3cbl)、TPGETLEV(3cbl)、TPSCMT(3cbl)
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|