クラス RabbitTransactionManager
- 実装されたすべてのインターフェース:
SerializableSE
、InitializingBean
、ConfigurableTransactionManager
、PlatformTransactionManager
、ResourceTransactionManager
、TransactionManager
ConnectionFactory
の PlatformTransactionManager
実装。指定された ConnectionFactory からスレッドに Rabbit チャネルをバインドし、ConnectionFactory ごとに 1 つのスレッドにバインドされたチャネルを潜在的に許可します。このローカル戦略は、外部トランザクション内で Rabbit 操作を実行し、外部トランザクションと同期する代わりになります。この戦略では、たとえばメッセージングとデータベースアクセス間でトランザクションを共有するために、XA トランザクションを提供することはできません。
後続のチャネル作成で標準の Connection.createChannel(boolean)
呼び出しの代わりに、ConnectionFactoryUtils.getTransactionalResourceHolder(ConnectionFactory, boolean)
を介してトランザクション Rabbit リソースを取得するには、アプリケーションコードが必要です。Spring の RabbitTemplate
は、スレッドにバインドされたチャネルを自動検出し、自動的に参加します。
このトランザクションマネージャーのターゲットとして CachingConnectionFactory
を使用することを強くお勧めします。CachingConnectionFactory は、すべての Rabbit アクセスに対して単一の Rabbit 接続を使用して、繰り返し接続を作成するオーバーヘッドを回避し、チャネルのキャッシュを維持します。各トランザクションは、独自の個別の Rabbit チャネルを使用しながら、同じ Rabbit 接続を共有します。
トランザクション同期は、同期の必要性が高い JDBC org.springframework.jdbc.datasource.DataSourceTransactionManager などのデータストアベースの Spring トランザクションマネージャーと一緒に使用される可能性があるため、デフォルトではオフになっています。
- 作成者:
- Dave Syer
- 関連事項:
ネストされたクラスのサマリー
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたネストクラス / インターフェース
AbstractPlatformTransactionManager.SuspendedResourcesHolder
フィールドのサマリー
クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたフィールド
logger, SYNCHRONIZATION_ALWAYS, SYNCHRONIZATION_NEVER, SYNCHRONIZATION_ON_ACTUAL_TRANSACTION
コンストラクターの概要
コンストラクターコンストラクター説明Bean スタイルの使用のために新しい RabbitTransactionManager を作成します。RabbitTransactionManager
(ConnectionFactory connectionFactory) ConnectionFactory を指定して、新しい RabbitTransactionManager を作成します。メソッドのサマリー
修飾子と型メソッド説明void
ConnectionFactory が設定されていることを確認します。protected void
doBegin
(ObjectSE transaction, TransactionDefinition definition) protected void
doCleanupAfterCompletion
(ObjectSE transaction) protected void
doCommit
(DefaultTransactionStatus status) protected ObjectSE
protected void
protected void
doRollback
(DefaultTransactionStatus status) protected void
protected ObjectSE
protected boolean
isExistingTransaction
(ObjectSE transaction) void
setConnectionFactory
(ConnectionFactory connectionFactory) クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたメソッド
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionExecutionListeners, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, prepareForCommit, prepareSynchronization, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionExecutionListeners, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, shouldCommitOnGlobalRollbackOnly, suspend, triggerBeforeCommit, triggerBeforeCompletion, useSavepointForNestedTransaction
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
インターフェース org.springframework.transaction.ConfigurableTransactionManager から継承されたメソッド
addListener
インターフェース org.springframework.transaction.PlatformTransactionManager から継承されたメソッド
commit, getTransaction, rollback
コンストラクターの詳細
RabbitTransactionManager
public RabbitTransactionManager()Bean スタイルの使用のために新しい RabbitTransactionManager を作成します。メモ: インスタンスを使用する前に、ConnectionFactory を設定する必要があります。このコンストラクターは、BeanFactory を介して RabbitTemplate を準備するために使用でき、通常は setConnectionFactory を介して ConnectionFactory を設定します。
このマネージャーは、DataSourceTransactionManager のようなデータストアベースの Spring トランザクションマネージャーと一緒に使用される可能性があるため、デフォルトでトランザクション同期をオフにします。いつでも 1 つのマネージャーのみが同期を実行できます。
RabbitTransactionManager
ConnectionFactory を指定して、新しい RabbitTransactionManager を作成します。- パラメーター:
connectionFactory
- 使用する ConnectionFactory
メソッドの詳細
setConnectionFactory
- パラメーター:
connectionFactory
- 設定する connectionFactory
getConnectionFactory
- 戻り値:
- connectionFactory
afterPropertiesSet
public void afterPropertiesSet()ConnectionFactory が設定されていることを確認します。- 次で指定:
- インターフェース
InitializingBean
のafterPropertiesSet
getResourceFactory
- 次で指定:
- インターフェース
ResourceTransactionManager
のgetResourceFactory
doGetTransaction
- 次で指定:
- クラス
AbstractPlatformTransactionManager
のdoGetTransaction
isExistingTransaction
- オーバーライド:
- クラス
AbstractPlatformTransactionManager
のisExistingTransaction
doBegin
- 次で指定:
- クラス
AbstractPlatformTransactionManager
のdoBegin
doSuspend
- オーバーライド:
- クラス
AbstractPlatformTransactionManager
のdoSuspend
doResume
- オーバーライド:
- クラス
AbstractPlatformTransactionManager
のdoResume
doCommit
- 次で指定:
- クラス
AbstractPlatformTransactionManager
のdoCommit
doRollback
- 次で指定:
- クラス
AbstractPlatformTransactionManager
のdoRollback
doSetRollbackOnly
- オーバーライド:
- クラス
AbstractPlatformTransactionManager
のdoSetRollbackOnly
doCleanupAfterCompletion
- オーバーライド:
- クラス
AbstractPlatformTransactionManager
のdoCleanupAfterCompletion