クラス ReactiveResourceSynchronization<O,K>
- 型パラメーター:
O
- リソースホルダーの型K
- リソースキー型
- 実装されたすべてのインターフェース:
TransactionSynchronization
TransactionSynchronizationManager
を介してバインドされたリソースオブジェクトを管理する TransactionSynchronization
実装。- 導入:
- 5.2
- 作成者:
- Mark Paluch, Juergen Hoeller
フィールドサマリー
インターフェース org.springframework.transaction.reactive.TransactionSynchronization から継承されたフィールド
STATUS_COMMITTED, STATUS_ROLLED_BACK, STATUS_UNKNOWN
コンストラクターのサマリー
コンストラクター説明ReactiveResourceSynchronization
(O resourceObject, K resourceKey, TransactionSynchronizationManager synchronizationManager) 指定されたホルダーの新しい ReactiveResourceSynchronization を作成します。メソッドのサマリー
修飾子と型メソッド説明reactor.core.publisher.Mono<VoidSE>
トランザクションのコミット後に呼び出されます。reactor.core.publisher.Mono<VoidSE>
afterCompletion
(int status) トランザクションのコミット / ロールバック後に呼び出されます。reactor.core.publisher.Mono<VoidSE>
beforeCommit
(boolean readOnly) トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。reactor.core.publisher.Mono<VoidSE>
トランザクションのコミット / ロールバックの前に呼び出されます。protected reactor.core.publisher.Mono<VoidSE>
cleanupResource
(O resourceHolder, K resourceKey, boolean committed) 指定されたリソース(スレッドにバインドされたまま)に対してクリーンアップを実行します。protected reactor.core.publisher.Mono<VoidSE>
processResourceAfterCommit
(O resourceHolder) 指定されたリソースホルダーのコミット後のコールバック。protected reactor.core.publisher.Mono<VoidSE>
releaseResource
(O resourceHolder, K resourceKey) 指定されたリソースを解放します(スレッドからバインド解除された後)。reactor.core.publisher.Mono<VoidSE>
resume()
この同期を再開します。protected boolean
shouldReleaseAfterCompletion
(O resourceHolder) トランザクションの補完後にこの所有者のリソースを解放する必要があるかどうかを返します(true
)。protected boolean
この所有者のリソースをトランザクション完了前(true
)に解放するか、トランザクション完了後(false
)に解放するかを返します。protected boolean
このホルダーが完了時にバインド解除される(または、トランザクション後にスレッドにバインドされたままにする必要がある)かどうかを返します。reactor.core.publisher.Mono<VoidSE>
suspend()
この同期を一時停止します。
コンストラクターの詳細
ReactiveResourceSynchronization
public ReactiveResourceSynchronization(O resourceObject, K resourceKey, TransactionSynchronizationManager synchronizationManager) 指定されたホルダーの新しい ReactiveResourceSynchronization を作成します。- パラメーター:
resourceObject
- 管理するリソースオブジェクトresourceKey
- リソースオブジェクトをバインドするキーsynchronizationManager
- 現在のトランザクションにバインドされた同期マネージャー- 関連事項:
メソッドの詳細
suspend
インターフェースからコピーされた説明:TransactionSynchronization
この同期を一時停止します。いずれかを管理している場合、TransactionSynchronizationManager からリソースのバインドを解除することになっています。resume
インターフェースからコピーされた説明:TransactionSynchronization
この同期を再開します。リソースを管理している場合、リソースを TransactionSynchronizationManager に再バインドするとします。beforeCommit
インターフェースからコピーされた説明:TransactionSynchronization
トランザクションのコミット前( "beforeCompletion" の前)に呼び出されます。このコールバックは、トランザクションが実際にコミットされることを意味するものではありません。このメソッドが呼び出された後でも、ロールバックの決定が発生する可能性があります。このコールバックは、SQL ステートメントをデータベースにフラッシュするなど、コミットがまだ発生する可能性がある場合にのみ関連する作業を実行することを目的としています。
例外はコミット呼び出し元に伝播され、トランザクションのロールバックが発生することに注意してください。
- 次で指定:
- インターフェース
TransactionSynchronization
のbeforeCommit
- パラメーター:
readOnly
- トランザクションが読み取り専用トランザクションとして定義されているかどうか- 関連事項:
beforeCompletion
インターフェースからコピーされた説明:TransactionSynchronization
トランザクションのコミット / ロールバックの前に呼び出されます。トランザクションの補完前にリソースのクリーンアップを実行できます。beforeCommit
が例外をスローした場合でも、このメソッドはbeforeCommit
の後に呼び出されます。このコールバックにより、トランザクションの補完前にリソースを閉じることができます。afterCommit
インターフェースからコピーされた説明:TransactionSynchronization
トランザクションのコミット後に呼び出されます。メイントランザクションが正常にコミットされた直後に、さらに操作を実行できます。できます。確認メッセージやメールなど、メイントランザクションが正常にコミットされた後に実行されるはずの操作をさらにコミットします。
注 : トランザクションはすでにコミットされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- 次で指定:
- インターフェース
TransactionSynchronization
のafterCommit
afterCompletion
インターフェースからコピーされた説明:TransactionSynchronization
トランザクションのコミット / ロールバック後に呼び出されます。トランザクションの補完後にリソースのクリーンアップを実行できます。注 : トランザクションはすでにコミットまたはロールバックされていますが、トランザクションリソースはまだアクティブでアクセス可能です。結果として、この時点でトリガーされたデータアクセスコードは元のトランザクションに「参加」し、別のトランザクションで実行する必要があることを明示的に宣言しない限り、クリーンアップを実行できるようになります。、 ここから呼び出されるトランザクション操作には
PROPAGATION_REQUIRES_NEW
を使用します。- 次で指定:
- インターフェース
TransactionSynchronization
のafterCompletion
- パラメーター:
status
-STATUS_*
定数に従った完了ステータス- 関連事項:
shouldUnbindAtCompletion
protected boolean shouldUnbindAtCompletion()このホルダーが完了時にバインド解除される(または、トランザクション後にスレッドにバインドされたままにする必要がある)かどうかを返します。デフォルトの実装は
true
を返します。shouldReleaseBeforeCompletion
protected boolean shouldReleaseBeforeCompletion()この所有者のリソースをトランザクション完了前(true
)に解放するか、トランザクション完了後(false
)に解放するかを返します。リソースが解放されるのは、それらがスレッド(
shouldUnbindAtCompletion()
)からバインド解除されている場合のみであることに注意してください。デフォルトの実装は
true
を返します。shouldReleaseAfterCompletion
トランザクションの補完後にこの所有者のリソースを解放する必要があるかどうかを返します(true
)。デフォルトの実装は
!shouldReleaseBeforeCompletion()
を返し、完了前に試行が行われなかった場合は完了後に解放します。processResourceAfterCommit
指定されたリソースホルダーのコミット後のコールバック。リソースがまだ解放されていない場合にのみ呼び出されます(shouldReleaseBeforeCompletion()
)。- パラメーター:
resourceHolder
- 処理するリソースホルダー
releaseResource
指定されたリソースを解放します(スレッドからバインド解除された後)。- パラメーター:
resourceHolder
- 処理するリソースホルダーresourceKey
- リソースオブジェクトがバインドされたキー
cleanupResource
protected reactor.core.publisher.Mono<VoidSE> cleanupResource(O resourceHolder, K resourceKey, boolean committed) 指定されたリソース(スレッドにバインドされたまま)に対してクリーンアップを実行します。- パラメーター:
resourceHolder
- 処理するリソースホルダーresourceKey
- リソースオブジェクトがバインドされたキーcommitted
- トランザクションがコミット(true
)したか、ロールバックしたか (false
)