インターフェース ReactiveTransactionManager
- すべてのスーパーインターフェース:
TransactionManager
- すべての既知の実装クラス:
AbstractReactiveTransactionManager
,R2dbcTransactionManager
- 導入:
- 5.2
- 作成者:
- Mark Paluch, Juergen Hoeller
- 関連事項:
メソッドのサマリー
修飾子と型メソッド説明reactor.core.publisher.Mono<VoidSE>
commit
(ReactiveTransaction transaction) ステータスに関して、指定されたトランザクションをコミットします。reactor.core.publisher.Mono<ReactiveTransaction>
getReactiveTransaction
(TransactionDefinition definition) 指定された伝播動作に従って、現在アクティブなリアクティブトランザクションを発行するか、新しいトランザクションを作成します。reactor.core.publisher.Mono<VoidSE>
rollback
(ReactiveTransaction transaction) 指定されたトランザクションのロールバックを実行します。
メソッドの詳細
getReactiveTransaction
reactor.core.publisher.Mono<ReactiveTransaction> getReactiveTransaction(@Nullable TransactionDefinition definition) 指定された伝播動作に従って、現在アクティブなリアクティブトランザクションを発行するか、新しいトランザクションを作成します。分離レベルやタイムアウトなどのパラメーターは新しいトランザクションにのみ適用されるため、アクティブなトランザクションに参加する場合は無視されることに注意してください。
さらに、すべてのトランザクション定義設定がすべてのトランザクションマネージャーでサポートされるわけではありません。適切なトランザクションマネージャーの実装は、サポートされていない設定が発生した場合に例外をスローする必要があります。
上記の規則の例外は読み取り専用フラグです。明示的な読み取り専用モードがサポートされていない場合は無視してください。基本的に、読み取り専用フラグは潜在的な最適化のヒントにすぎません。
メモ:
PlatformTransactionManager
とは対照的に、例外はこのメソッドから返されるリアクティブパイプラインを通じて伝播されます。- パラメーター:
definition
- TransactionDefinition インスタンス。伝播動作、分離レベル、タイムアウトなどを記述します。- 戻り値:
- 新規または現在のトランザクションを表すトランザクションステータスオブジェクト
- 例外:
TransactionException
- ルックアップ、作成、システムエラーの場合IllegalTransactionStateException
- 指定されたトランザクション定義を実行できない場合 (たとえば、現在アクティブなトランザクションが指定された伝播動作と競合している場合)- 関連事項:
commit
ステータスに関して、指定されたトランザクションをコミットします。トランザクションがプログラムでロールバック専用としてマークされている場合、ロールバックを実行します。トランザクションが新しいものではない場合、周囲のトランザクションに適切に参加するためにコミットを省略します。以前のトランザクションが中断されて新しいトランザクションを作成できる場合は、新しいトランザクションをコミットした後に以前のトランザクションを再開します。
コミット呼び出しが完了するときは、正常に完了したか、例外を伝播したかに関係なく、トランザクションが完全に完了してクリーンアップされる必要があることに注意してください。このような場合、ロールバック呼び出しは予期されません。
メモ:
PlatformTransactionManager
とは対照的に、例外はこのメソッドから返されるリアクティブパイプラインを通じて伝播されます。また、トランザクションマネージャーの実装によっては、commit
がDataAccessException
も伝播する可能性があります。- パラメーター:
transaction
-getTransaction
メソッドによって返されるオブジェクト- 例外:
UnexpectedRollbackException
- トランザクションコーディネーターが開始した予期しないロールバックの場合HeuristicCompletionException
- トランザクションコーディネーター側のヒューリスティックな決定が原因でトランザクションが失敗した場合TransactionSystemException
- コミットまたはシステムエラーの場合 (通常、根本的なリソース障害が原因)IllegalTransactionStateException
- 指定されたトランザクションがすでに完了している場合 (つまり、コミットまたはロールバックされます)- 関連事項:
rollback
指定されたトランザクションのロールバックを実行します。トランザクションが新しいものではない場合は、周囲のトランザクションに適切に参加するために、ロールバックのみに設定します。新しいトランザクションを作成できるように以前のトランザクションが中断されている場合は、新しいトランザクションをロールバックしてから以前のトランザクションを再開します。
コミットが失敗した場合は、トランザクションでロールバックを呼び出さないでください。コミット例外が発生した場合でも、トランザクションはすでに完了しており、コミットが返されるときにはクリーンアップされています。その結果、コミット失敗後のロールバック呼び出しは IllegalTransactionStateException を引き起こします。
メモ:
PlatformTransactionManager
とは対照的に、例外はこのメソッドから返されるリアクティブパイプラインを通じて伝播されます。また、トランザクションマネージャーの実装によっては、rollback
がDataAccessException
も伝播する可能性があります。- パラメーター:
transaction
-getTransaction
メソッドによって返されるオブジェクト- 例外:
TransactionSystemException
- ロールバックまたはシステムエラーの場合 (通常、根本的なリソース障害が原因)IllegalTransactionStateException
- 指定されたトランザクションがすでに完了している場合 (つまり、コミットまたはロールバックされます)