このタスクについて
タイムアウト値はクライアント・プロパティー・ファイルまたはセッション内で
構成できます。セッションの値がクライアント・プロパティー設定に優先します。ゼロより
大きい値に設定された場合、タイムアウト条件が満たされるか、
永続的な障害が起こるまで、要求は試行されます。永続的な障害とは、DuplicateKeyException 例外などです。
値ゼロはフェイル・ファースト・モード設定を表し、eXtreme Scale は、
どのようなタイプのトランザクションの後であっても、トランザクションを再試行しません。
実行時は、トランザクション・タイムアウト値が
再試行タイムアウト値と一緒に使用され、再試行タイムアウト
がトランザクション・タイムアウトを超えないようにします。
トランザクションには 2 つのタイプがあります。自動コミット・トランザクションと
明示的に
begin メソッドと
commit メソッドを使用するトランザクションです。
再試行の有効な例外は、これら 2 つのタイプのトランザクション間で異なります。
- セッション内で呼び出されるトランザクションの場合、CORBA SystemException および eXtreme Scale TargetNotAvailable 例外で
あれば、トランザクションは再試行されます。
- 自動コミット・トランザクションの場合、CORBA SystemException および eXtreme Scale アベイラビリティー例外であれば、
トランザクションは再試行されます。
これらの例外には、ReplicationVotedToRollbackTransactionException、TargetNotAvailable、
および AvailabilityException 例外が含まれます。
アプリケーション障害やその他の永続障害はすぐに再発するので、クライアントはトランザクションを再試行しません。 このような永続障害には DuplicateKeyException や KeyNotFoundException 例外があります。
例外の後はトランザクションを再試行せず、すべての例外を返すようにするには、フェイル・ファースト設定を使用します。
クライアントがトランザクションを再試行する例外- ReplicationVotedToRollbackTransactionException (自動コミットの場合のみ)
- TargetNotAvailable
- org.omg.CORBA.SystemException
- AvailabilityException (自動コミットの場合のみ)
- LockTimeoutException (自動コミットの場合のみ)
- UnavailableServiceException (自動コミットの場合のみ)
トランザクションが再試行されない永続的な例外- DuplicateKeyException
- KeyNotFoundException
- LoaderException
- TransactionAffinityException
- LockDeadlockException
- OptimisticCollisionException