クラス ChainedTransactionManager

java.lang.ObjectSE
org.springframework.data.transaction.ChainedTransactionManager
実装されたすべてのインターフェース:
PlatformTransactionManagerTransactionManager

@DeprecatedSE public class ChainedTransactionManager extends ObjectSE implements PlatformTransactionManager
使用すべきではありません。
2.5 以降
トランザクションの作成をオーケストレーションし、委譲のリストにコミットおよびロールバックする PlatformTransactionManager 実装。この実装を使用すると、トランザクションのロールバックを引き起こすエラーは、通常、トランザクションが完了する前、最も内側の PlatformTransactionManager のコミット中に発生すると想定されています。

構成されたインスタンスは、指定された順序でトランザクションを開始し、逆の順序でコミット / ロールバックします。つまり、トランザクションを中断する可能性が最も高い PlatformTransactionManager は、構成されたリストの最後になります。PlatformTransactionManager がコミット中に例外をスローすると、残りのトランザクションマネージャーはコミットではなくロールバックします。

その結果、トランザクションは、最初の PlatformTransactionManager がトランザクションをコミットし、後続の PlatformTransactionManager がトランザクションのコミットに失敗した(たとえば、I/O エラーまたはトランザクションリソースが他の理由でコミットに失敗した)状態になる可能性があります。その場合、commit(TransactionStatus)HeuristicCompletionException をスローして、部分的にコミットされたトランザクションを示します。コミットが欠落した場合の自然な結果はトランザクションリソースのロールバックであるため、ロールバックは影響を受けません。ChainedTransactionManager は、部分的にコミットされたトランザクションによって引き起こされる一貫性のない状態をアプリケーションが許容または回復できる場合にのみ使用する必要があります。それ以外の場合、ChainedTransactionManager の使用はお勧めしません。

コールバックをトランザクションコミット(コミット前 / コミット後)にアタッチするために ChainedTransactionManager を使用する代わりに、TransactionSynchronization を登録して、例外の場合に簡略化されたセマンティクスでトランザクションのクリーンアップを明示的に追跡します。

導入:
1.6
作成者:
Michael Hunger, Oliver Gierke, Mark Paluch
関連事項: