BEA Logo BEA Tuxedo Release 8.0

  BEA ホーム  |  イベント  |  ソリューション  |  パートナ  |  製品  |  サービス  |  ダウンロード  |  ディベロッパ・センタ  |  WebSUPPORT

 

   Tuxedo ホーム   |   C 言語を使用した BEA Tuxedo アプリケーションのプログラミング   |   先頭へ   |   前へ   |   次へ   |   目次

 


tpreturn( ) および tpforward( ) 関数

トランザクション・モードで実行中にプロセスを呼び出すと、tpreturn()tpforward() は、トランザクションのサービス部分をそのトランザクションの完了時にコミットまたはアボートできる状態にします。同じトランザクションでサービスを何度も呼び出すことができます。システムは、トランザクションのイニシエータによって tpcommit() または tpabort() が呼び出されない限り、トランザクションを完全にはコミットまたはアボートしません。

サービス内で行われた通信呼び出しのすべての未処理の記述子が取得されるまで、tpreturn() または tpforward() を呼び出すことはできません。rvalTPSUCCESS を設定して、未処理の記述子で tpreturn() を呼び出すと、プロトコル・エラーが発生し、tpgetrply() を待機中のプロセスに TPESVCERR が返されます。そのプロセスがトランザクション・モードになっている場合、呼び出し元は「アボートのみ」にマークされます。トランザクションのイニシエータが tpcommit() を呼び出した場合も、トランザクションが暗黙的にアボートされます。rvalTPFAIL を設定して、未処理の記述子で tpreturn() を呼び出すと、tpgetrply() を待機中のプロセスに TPESVCFAIL が返されます。トランザクションへの影響は同じです。

トランザクション・モードで実行中に tpreturn() を呼び出すと、tpreturn() で発生したプロセス・エラー、またはアプリケーションによって rval に設定された値で示されるエラーにより、トランザクションの結果に影響することがあります。

tpforward() を使用すると、ある時点までは要求が正しく処理されていることを示すことができます。アプリケーション・エラーが検出されない場合、システムは tpforward() を呼び出します。アプリケーション・エラーが検出された場合、システムは TPFAIL を設定して tpreturn() を呼び出します。tpforward() を正しく呼び出さないと、システムはその呼び出しをプロセス・エラーと見なし、エラー・メッセージを要求元に返します。

 

先頭へ戻る 前のトピックへ 次のトピックへ