一時エラー後の再試行(PL/SQL)

TimesTenでは、ほとんどの一時エラーは自動的に解決されます(これはTimesTen Scaleoutにおいてはとりわけ重要です)。

ただし、アプリケーションで次のエラーが検出された場合は、失敗したトランザクションを再試行することをお薦めします。

  • ORA-57005:Transient transaction failure due to unavailability of resource.Roll back the transaction and try it again.

ノート:

再試行が妥当かどうかを判断する前に、エラー・スタック全体でこれらのエラー・タイプを返すエラーを検索してください。

PL/SQLプラグマEXCEPTION_INITを使用してこのエラーに対応する例外を宣言し、その例外が発生した場合はトランザクションを再試行します。

次に例を示します。

declare
  retry_stmt exception;
  pragma exception_init(retry_stmt, -57007);
  retry_txn exception;
  pragma exception_init(retry_txn, -57005);
begin
  -- Execute SQL
exception
when retry_stmt then
  -- Re-execute the failing SQL statemment
when retry_txn then
  -- Re-execute the failing transaction
end;