一時エラー後の再試行(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;