クラス WebLogicJtaTransactionManager
- 実装済みのインターフェース一覧:
SerializableSE, InitializingBean, ConfigurableTransactionManager, TransactionFactory, PlatformTransactionManager, TransactionManager
JtaTransactionManager バリアント。 標準 JTA に加えて、WebLogic のトランザクションコーディネータ上で Spring のトランザクション定義の全機能をサポートします。トランザクション名、トランザクションごとの分離レベル、あらゆるケースにおけるトランザクションの適切な再開などが含まれます。WebLogic の特別な begin(name) メソッドを使用して JTA トランザクションを開始し、WebLogic のトランザクションモニターで Spring 駆動型トランザクションを表示します。Spring の宣言的トランザクションの場合、公開される名前は(デフォルトで)完全修飾クラス名 + "。" になります。+ メソッド名。
WebLogic の対応する JTA トランザクションプロパティ "ISOLATION LEVEL" により、 トランザクションごとの分離レベルをサポートします。これにより、指定された分離レベル(ISOLATION_SERIALIZABLE など)が、特定のトランザクションに参加するすべての JDBC 接続に適用されます。
標準の JTA 再開が失敗した場合は WebLogic の特別な forceResume メソッドを呼び出し、 ターゲットトランザクションが rollback-only とマークされている場合も再開します。そもそもこのトランザクション停止の機能に依存していない場合、Spring の標準 JtaTransactionManager も適切に動作します。
デフォルトでは、JTA UserTransaction および TransactionManager ハンドルは WebLogic の TransactionHelper から直接フェッチされます。これは、"userTransaction"/"userTransactionName" " と "transactionManager"/"transactionManagerName" " を指定するか、既存のハンドルを渡すか、検索する対応する JNDI の場所を指定することでオーバーライドできます。
メモ: このクラスは Spring Framework 6.0 で削除されましたが、WebLogic 15.1.1 リリース後に復活し、Jakarta EE 9 との互換性がようやく実現しました。Spring Framework 6.2.16 以降、標準の JtaTransactionManager の代替として、手動設定で再び利用できるようになりました。
- 導入:
- 6.2.16
- 作成者:
- Juergen Hoeller
- 関連事項:
ネストされたクラスの概要
クラス AbstractPlatformTransactionManager から継承されたネストクラス / インターフェース
AbstractPlatformTransactionManager.SuspendedResourcesHolderフィールドのサマリー
コンストラクター概要
コンストラクター方法の概要
修飾子と型メソッド説明voidUserTransaction および TransactionManager ハンドルを初期化します。jakarta.transaction.TransactioncreateTransaction(@Nullable StringSE name, int timeout) 指定された名前とタイムアウトに基づいてアクティブな Transaction オブジェクトを作成します。protected voiddoJtaBegin(JtaTransactionObject txObject, TransactionDefinition definition) JTA UserTransaction または TransactionManager で JTA 開始を実行します。protected voiddoJtaResume(@Nullable JtaTransactionObject txObject, ObjectSE suspendedTransaction) JTA TransactionManager で JTA 履歴書を実行します。protected @Nullable jakarta.transaction.TransactionManagerサブクラスがベンダー固有の方法で JTA TransactionManager を取得できるようにします。protected @Nullable jakarta.transaction.UserTransactionサブクラスがベンダー固有の方法で JTA UserTransaction を取得できるようにします。クラス JtaTransactionManager から継承されたメソッド
applyIsolationLevel, applyTimeout, buildUserTransaction, checkUserTransactionAndTransactionManager, doBegin, doCleanupAfterCompletion, doCommit, doGetJtaTransaction, doGetTransaction, doJtaSuspend, doRegisterAfterCompletionWithJtaTransaction, doResume, doRollback, doSetRollbackOnly, doSuspend, findTransactionManager, findTransactionSynchronizationRegistry, findUserTransaction, getJndiEnvironment, getJndiTemplate, getTransactionManager, getTransactionSynchronizationRegistry, getUserTransaction, initTransactionSynchronizationRegistry, initUserTransactionAndTransactionManager, isExistingTransaction, lookupTransactionManager, lookupTransactionSynchronizationRegistry, lookupUserTransaction, registerAfterCompletionWithExistingTransaction, retrieveTransactionSynchronizationRegistry, setAllowCustomIsolationLevels, setAutodetectTransactionManager, setAutodetectTransactionSynchronizationRegistry, setAutodetectUserTransaction, setCacheUserTransaction, setJndiEnvironment, setJndiTemplate, setTransactionManager, setTransactionManagerName, setTransactionSynchronizationRegistry, setTransactionSynchronizationRegistryName, setUserTransaction, setUserTransactionName, shouldCommitOnGlobalRollbackOnly, supportsResourceAdapterManagedTransactions, useSavepointForNestedTransactionクラス AbstractPlatformTransactionManager から継承されたメソッド
commit, determineTimeout, getDefaultTimeout, getTransaction, getTransactionExecutionListeners, getTransactionSynchronization, invokeAfterCompletion, isFailEarlyOnGlobalRollbackOnly, isGlobalRollbackOnParticipationFailure, isNestedTransactionAllowed, isRollbackOnCommitFailure, isValidateExistingTransaction, prepareForCommit, prepareSynchronization, resume, rollback, setDefaultTimeout, setFailEarlyOnGlobalRollbackOnly, setGlobalRollbackOnParticipationFailure, setNestedTransactionAllowed, setRollbackOnCommitFailure, setTransactionExecutionListeners, setTransactionSynchronization, setTransactionSynchronizationName, setValidateExistingTransaction, suspend, triggerBeforeCommit, triggerBeforeCompletionクラス ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSEインターフェース ConfigurableTransactionManager から継承されたメソッド
addListener
コンストラクターの詳細
WebLogicJtaTransactionManager
public WebLogicJtaTransactionManager()
メソッドの詳細
afterPropertiesSet
クラスからコピーされた説明:JtaTransactionManagerUserTransaction および TransactionManager ハンドルを初期化します。- 次で指定:
- インターフェース
InitializingBeanのafterPropertiesSet - オーバーライド:
- クラス
JtaTransactionManagerのafterPropertiesSet - 例外:
TransactionSystemException- 関連事項:
retrieveUserTransaction
protected @Nullable jakarta.transaction.UserTransaction retrieveUserTransaction() throws TransactionSystemExceptionクラスからコピーされた説明:JtaTransactionManagerサブクラスがベンダー固有の方法で JTA UserTransaction を取得できるようにします。"userTransaction" または "userTransactionName" が指定されていない場合にのみ呼び出されます。デフォルトの実装は、単に
nullを返します。- オーバーライド:
- クラス
JtaTransactionManagerのretrieveUserTransaction - 戻り値:
- 使用する JTA UserTransaction ハンドル。見つからない場合は
null - 例外:
TransactionSystemException- エラーの場合- 関連事項:
retrieveTransactionManager
protected @Nullable jakarta.transaction.TransactionManager retrieveTransactionManager() throws TransactionSystemExceptionクラスからコピーされた説明:JtaTransactionManagerサブクラスがベンダー固有の方法で JTA TransactionManager を取得できるようにします。"transactionManager" または "transactionManagerName" が指定されていない場合にのみ呼び出されます。デフォルトの実装は、単に
nullを返します。- オーバーライド:
- クラス
JtaTransactionManagerのretrieveTransactionManager - 戻り値:
- 使用する JTA TransactionManager ハンドル。見つからない場合は
null - 例外:
TransactionSystemException- エラーの場合- 関連事項:
doJtaBegin
protected void doJtaBegin(JtaTransactionObject txObject, TransactionDefinition definition) throws jakarta.transaction.NotSupportedException, jakarta.transaction.SystemException クラスからコピーされた説明:JtaTransactionManagerJTA UserTransaction または TransactionManager で JTA 開始を実行します。この実装では、標準の JTA 機能のみがサポートされます。つまり、トランザクションごとの分離レベルとトランザクション名はサポートされません。特定の JTA 実装のために、サブクラスでオーバーライドできます。
UserTransaction の
beginメソッドを呼び出す前に、applyIsolationLevelおよびapplyTimeoutを呼び出します。- オーバーライド:
- クラス
JtaTransactionManagerのdoJtaBegin - パラメーター:
txObject- UserTransaction を含む JtaTransactionObjectdefinition- TransactionDefinition インスタンス。伝播動作、分離レベル、読み取り専用フラグ、タイムアウト、トランザクション名を記述します- 例外:
jakarta.transaction.NotSupportedException- JTA メソッドによってスローされた場合jakarta.transaction.SystemException- JTA メソッドによってスローされた場合- 関連事項:
doJtaResume
protected void doJtaResume(@Nullable JtaTransactionObject txObject, ObjectSE suspendedTransaction) throws jakarta.transaction.InvalidTransactionException, jakarta.transaction.SystemException クラスからコピーされた説明:JtaTransactionManagerJTA TransactionManager で JTA 履歴書を実行します。特定の JTA 実装のために、サブクラスでオーバーライドできます。
- オーバーライド:
- クラス
JtaTransactionManagerのdoJtaResume - パラメーター:
txObject- UserTransaction を含む JtaTransactionObjectsuspendedTransaction- 中断された JTA トランザクションオブジェクト- 例外:
jakarta.transaction.InvalidTransactionException- JTA メソッドによってスローされた場合jakarta.transaction.SystemException- JTA メソッドによってスローされた場合- 関連事項:
createTransaction
public jakarta.transaction.Transaction createTransaction(@Nullable StringSE name, int timeout) throws jakarta.transaction.NotSupportedException, jakarta.transaction.SystemException インターフェースからコピーされた説明:TransactionFactory指定された名前とタイムアウトに基づいてアクティブな Transaction オブジェクトを作成します。- 次で指定:
- インターフェース
TransactionFactoryのcreateTransaction - オーバーライド:
- クラス
JtaTransactionManagerのcreateTransaction - パラメーター:
name- トランザクション名 (nullの場合があります)timeout- トランザクションのタイムアウト (デフォルトのタイムアウトの場合は -1)- 戻り値:
- アクティブな Transaction オブジェクト (非
null) - 例外:
jakarta.transaction.NotSupportedException- トランザクションマネージャーが指定された型のトランザクションをサポートしていない場合jakarta.transaction.SystemException- トランザクションマネージャーがトランザクションの作成に失敗した場合