クラス 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, Artem Bilan
- 関連事項:
ネストされたクラスの要約
クラス 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 を作成します。メソッドのサマリー
修飾子と型メソッド説明voidConnectionFactory が設定されていることを確認します。protected voiddoBegin(ObjectSE transaction, TransactionDefinition definition) protected voiddoCleanupAfterCompletion(ObjectSE transaction) protected voiddoCommit(DefaultTransactionStatus status) protected ObjectSEprotected voidprotected voiddoRollback(DefaultTransactionStatus status) protected voidprotected ObjectSE@Nullable ConnectionFactoryprotected booleanisExistingTransaction(ObjectSE transaction) voidsetConnectionFactory(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