@DeprecatedSE public class ChainedTransactionManager extends ObjectSE implements PlatformTransactionManager
PlatformTransactionManager
実装。この実装を使用すると、トランザクションのロールバックを引き起こすエラーは、通常、トランザクションが完了する前、最も内側の PlatformTransactionManager
のコミット中に発生すると想定されています。 構成されたインスタンスは、指定された順序でトランザクションを開始し、逆の順序でコミット / ロールバックします。つまり、トランザクションを中断する可能性が最も高い PlatformTransactionManager
は、構成されたリストの最後になります。PlatformTransactionManager
がコミット中に例外をスローすると、残りのトランザクションマネージャーはコミットではなくロールバックします。
その結果、トランザクションは、最初の PlatformTransactionManager
がトランザクションをコミットし、後続の PlatformTransactionManager
がトランザクションのコミットに失敗した(たとえば、I/O エラーまたはトランザクションリソースが他の理由でコミットに失敗した)状態になる可能性があります。その場合、commit(TransactionStatus)
は HeuristicCompletionException
をスローして、部分的にコミットされたトランザクションを示します。コミットが欠落した場合の自然な結果はトランザクションリソースのロールバックであるため、ロールバックは影響を受けません。ChainedTransactionManager
は、部分的にコミットされたトランザクションによって引き起こされる一貫性のない状態をアプリケーションが許容または回復できる場合にのみ使用する必要があります。それ以外の場合、ChainedTransactionManager
の使用はお勧めしません。
コールバックをトランザクションコミット(コミット前 / コミット後)にアタッチするために ChainedTransactionManager
を使用する代わりに、TransactionSynchronization
を登録して、例外の場合に簡略化されたセマンティクスでトランザクションのクリーンアップを明示的に追跡します。
TransactionSynchronization.beforeCommit(boolean)
, TransactionSynchronization.afterCommit()
コンストラクターと説明 |
---|
ChainedTransactionManager(PlatformTransactionManager... transactionManagers) 使用すべきではありません。 指定された PlatformTransactionManager に委譲する新しい ChainedTransactionManager を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
void | commit(TransactionStatus status) 使用すべきではありません。 |
org.springframework.data.transaction.MultiTransactionStatus | getTransaction(TransactionDefinition definition) 使用すべきではありません。 |
void | rollback(TransactionStatus status) 使用すべきではありません。 |
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public ChainedTransactionManager(PlatformTransactionManager... transactionManagers)
PlatformTransactionManager
に委譲する新しい ChainedTransactionManager
を作成します。transactionManagers
- null または空であってはなりません。public org.springframework.data.transaction.MultiTransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException
PlatformTransactionManager
の getTransaction
TransactionException
public void commit(TransactionStatus status) throws TransactionException
PlatformTransactionManager
の commit
TransactionException
public void rollback(TransactionStatus status) throws TransactionException
PlatformTransactionManager
の rollback
TransactionException
Copyright © 2011–2022 Pivotal Software, Inc.. All rights reserved.