クラス RabbitTransactionManager
- java.lang.ObjectSE
-
- org.springframework.transaction.support.AbstractPlatformTransactionManager
-
- org.springframework.amqp.rabbit.transaction.RabbitTransactionManager
- 実装済みのインターフェース一覧:
SerializableSE、InitializingBean、PlatformTransactionManager、ResourceTransactionManager、TransactionManager
public class RabbitTransactionManager extends AbstractPlatformTransactionManager implements ResourceTransactionManager, InitializingBean
単一の RabbitConnectionFactoryの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
コンストラクター概要
コンストラクター コンストラクター 説明 RabbitTransactionManager()Bean スタイルの使用のために新しい RabbitTransactionManager を作成します。RabbitTransactionManager(ConnectionFactory connectionFactory)ConnectionFactory を指定して、新しい RabbitTransactionManager を作成します。
方法の概要
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 voidafterPropertiesSet()ConnectionFactory が設定されていることを確認します。protected voiddoBegin(ObjectSE transaction, TransactionDefinition definition)protected voiddoCleanupAfterCompletion(ObjectSE transaction)protected voiddoCommit(DefaultTransactionStatus status)protected ObjectSEdoGetTransaction()protected voiddoResume(ObjectSE transaction, ObjectSE suspendedResources)protected voiddoRollback(DefaultTransactionStatus status)protected voiddoSetRollbackOnly(DefaultTransactionStatus status)protected ObjectSEdoSuspend(ObjectSE transaction)ConnectionFactorygetConnectionFactory()ObjectSEgetResourceFactory()protected booleanisExistingTransaction(ObjectSE transaction)voidsetConnectionFactory(ConnectionFactory connectionFactory)クラス org.springframework.transaction.support.AbstractPlatformTransactionManager から継承されたメソッド
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, newTransactionStatus, prepareForCommit, prepareSynchronization, prepareTransactionStatus, registerAfterCompletionWithExistingTransaction, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, 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.PlatformTransactionManager から継承されたメソッド
commit, getTransaction, rollback
コンストラクターの詳細
RabbitTransactionManager
public RabbitTransactionManager()
Bean スタイルの使用のために新しい RabbitTransactionManager を作成します。メモ: インスタンスを使用する前に、ConnectionFactory を設定する必要があります。このコンストラクターは、BeanFactory を介して RabbitTemplate を準備するために使用でき、通常は setConnectionFactory を介して ConnectionFactory を設定します。
このマネージャーは、DataSourceTransactionManager のようなデータストアベースの Spring トランザクションマネージャーと一緒に使用される可能性があるため、デフォルトでトランザクション同期をオフにします。いつでも 1 つのマネージャーのみが同期を実行できます。
RabbitTransactionManager
public RabbitTransactionManager(ConnectionFactory connectionFactory)
ConnectionFactory を指定して、新しい RabbitTransactionManager を作成します。- パラメーター:
connectionFactory- 使用する ConnectionFactory
メソッドの詳細
setConnectionFactory
public void setConnectionFactory(ConnectionFactory connectionFactory)
- パラメーター:
connectionFactory- 設定する connectionFactory
getConnectionFactory
public ConnectionFactory getConnectionFactory()
- 戻り値:
- connectionFactory
afterPropertiesSet
public void afterPropertiesSet()
ConnectionFactory が設定されていることを確認します。- 次で指定:
- インターフェース
InitializingBean内のafterPropertiesSet
getResourceFactory
public ObjectSE getResourceFactory()
- 次で指定:
- インターフェース
ResourceTransactionManager内のgetResourceFactory
doGetTransaction
protected ObjectSE doGetTransaction()
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoGetTransaction
isExistingTransaction
protected boolean isExistingTransaction(ObjectSE transaction)
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのisExistingTransaction
doBegin
protected void doBegin(ObjectSE transaction, TransactionDefinition definition)
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoBegin
doSuspend
protected ObjectSE doSuspend(ObjectSE transaction)
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoSuspend
doResume
protected void doResume(ObjectSE transaction, ObjectSE suspendedResources)
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoResume
doCommit
protected void doCommit(DefaultTransactionStatus status)
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoCommit
doRollback
protected void doRollback(DefaultTransactionStatus status)
- 次で指定:
- クラス
AbstractPlatformTransactionManagerのdoRollback
doSetRollbackOnly
protected void doSetRollbackOnly(DefaultTransactionStatus status)
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoSetRollbackOnly
doCleanupAfterCompletion
protected void doCleanupAfterCompletion(ObjectSE transaction)
- オーバーライド:
- クラス
AbstractPlatformTransactionManagerのdoCleanupAfterCompletion