クラス ChainedTransactionManager
- 実装されたすべてのインターフェース:
PlatformTransactionManager
,TransactionManager
PlatformTransactionManager
実装。この実装を使用すると、トランザクションのロールバックを引き起こすエラーは、通常、トランザクションが完了する前、最も内側の PlatformTransactionManager
のコミット中に発生すると想定されています。 構成されたインスタンスは、指定された順序でトランザクションを開始し、逆の順序でコミット / ロールバックします。つまり、トランザクションを中断する可能性が最も高い PlatformTransactionManager
は、構成されたリストの最後になります。PlatformTransactionManager
がコミット中に例外をスローすると、残りのトランザクションマネージャーはコミットではなくロールバックします。
その結果、トランザクションは、最初の PlatformTransactionManager
がトランザクションをコミットし、後続の PlatformTransactionManager
がトランザクションのコミットに失敗した(たとえば、I/O エラーまたはトランザクションリソースが他の理由でコミットに失敗した)状態になる可能性があります。その場合、commit(TransactionStatus)
は HeuristicCompletionException
をスローして、部分的にコミットされたトランザクションを示します。コミットが欠落した場合の自然な結果はトランザクションリソースのロールバックであるため、ロールバックは影響を受けません。ChainedTransactionManager
は、部分的にコミットされたトランザクションによって引き起こされる一貫性のない状態をアプリケーションが許容または回復できる場合にのみ使用する必要があります。それ以外の場合、ChainedTransactionManager
の使用はお勧めしません。
コールバックをトランザクションコミット(コミット前 / コミット後)にアタッチするために ChainedTransactionManager
を使用する代わりに、TransactionSynchronization
を登録して、例外の場合に簡略化されたセマンティクスでトランザクションのクリーンアップを明示的に追跡します。
- 導入:
- 1.6
- 作成者:
- Michael Hunger, Oliver Gierke, Mark Paluch
- 関連事項:
コンストラクターの概要
コンストラクターコンストラクター説明ChainedTransactionManager
(PlatformTransactionManager... transactionManagers) 使用すべきではありません。指定されたPlatformTransactionManager
に委譲する新しいChainedTransactionManager
を作成します。メソッドのサマリー
修飾子と型メソッド説明void
commit
(TransactionStatus status) 使用すべきではありません。getTransaction
(TransactionDefinition definition) 使用すべきではありません。void
rollback
(TransactionStatus status) 使用すべきではありません。
コンストラクターの詳細
ChainedTransactionManager
使用すべきではありません。指定されたPlatformTransactionManager
に委譲する新しいChainedTransactionManager
を作成します。- パラメーター:
transactionManagers
- null または空であってはなりません。
メソッドの詳細
getTransaction
public org.springframework.data.transaction.MultiTransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException 使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManager
のgetTransaction
- 例外:
TransactionException
commit
使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManager
のcommit
- 例外:
TransactionException
rollback
使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManager
のrollback
- 例外:
TransactionException