クラス 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を作成します。メソッドのサマリー
修飾子と型メソッド説明voidcommit(TransactionStatus status) 使用すべきではありません。getTransaction(@Nullable TransactionDefinition definition) 使用すべきではありません。voidrollback(TransactionStatus status) 使用すべきではありません。
コンストラクターの詳細
ChainedTransactionManager
使用すべきではありません。指定されたPlatformTransactionManagerに委譲する新しいChainedTransactionManagerを作成します。- パラメーター:
transactionManagers- null または空であってはなりません。
メソッドの詳細
getTransaction
public TransactionStatus getTransaction(@Nullable TransactionDefinition definition) throws TransactionException 使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManagerのgetTransaction - 例外:
TransactionException
commit
使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManagerのcommit - 例外:
TransactionException
rollback
使用すべきではありません。- 次で指定:
- インターフェース
PlatformTransactionManagerのrollback - 例外:
TransactionException