クラス 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 を作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
afterPropertiesSet()
ConnectionFactory が設定されていることを確認します。protected void
doBegin(ObjectSE transaction, TransactionDefinition definition)
protected void
doCleanupAfterCompletion(ObjectSE transaction)
protected void
doCommit(DefaultTransactionStatus status)
protected ObjectSE
doGetTransaction()
protected void
doResume(ObjectSE transaction, ObjectSE suspendedResources)
protected void
doRollback(DefaultTransactionStatus status)
protected void
doSetRollbackOnly(DefaultTransactionStatus status)
protected ObjectSE
doSuspend(ObjectSE transaction)
ConnectionFactory
getConnectionFactory()
ObjectSE
getResourceFactory()
protected boolean
isExistingTransaction(ObjectSE transaction)
void
setConnectionFactory(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