BEA Logo BEA Tuxedo Release 8.0

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

 

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

 


トランザクション・タイムアウト

「トランザクション・エラー」 で説明したように、BEA Tuxedo アプリケーションでは、ブロッキング・タイム・アウトとトランザクション・タイム・アウトの 2 種類のタイム・アウトが発生します。以下の節では、各種のプログラミング機能へのトランザクション・タイム・アウトの影響について説明します。タイム・アウトの詳細については、「トランザクション・エラー」を参照してください。

TPCOMMIT 呼び出し

TPCOMMIT を呼び出した後でタイム・アウトが発生した場合、トランザクションはどのような状態になるでしょうか。トランザクションがタイム・アウトになり、そのトランザクションがアボートされたことがシステムで認識されると、システムは TP-STATUSTPEABORT を設定して、そのような状況の発生を通知します。トランザクションの状態が不明な場合は、エラー・コードに TPETIME を設定します。

トランザクションの状態が明確ではない場合、リソース・マネージャに問い合わせる必要があります。まず、トランザクションによって行われた変更が適用されたかどうかを確認します。これにより、トランザクションがコミットされたか、またはアボートされたかを判断できます。

TPNOTRAN

トランザクション・モードのプロセスで、TPNOTRAN を設定して通信呼び出しを行うと、呼び出されたサービスは現在のトランザクションに参加できません。サービス要求の成功や失敗は、トランザクションの結果に影響しません。トランザクションは、サービスから応答が返されるのを待つ間にタイムアウトになる場合もあります。これは、そのサービスがトランザションに参加しているかどうかには関係ありません。

TPNOTRAN の使用方法の詳細については、「TPRETURN および TPFORWAR 呼び出し」を参照してください。

TPRETURN および TPFORWAR 呼び出し

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

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

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

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

 

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