23.2. トランザクションの設定
23.2.1. トランザクションの設定 (ライブラリーモード) リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Red Hat JBoss Data Grid では、ライブラリーモードのトランザクションは、同期化およびトランザクションリカバリーと共に設定できます。トランザクションは全体として (同期化およびトランザクションリカバリーを含む)、リモートクライアントサーバーモードで使用することはできません。
ライブラリーモードでは、トランザクションは以下のように設定されます。
手順23.1 ライブラリーモードでのトランザクションの設定 (XML 設定)
トランザクションモードを設定します。
以下のテーブルで、利用可能なルックアップクラスのリストについての手順を確認します。<namedCache ...> <transaction transactionMode="{TRANSACTIONAL,NON_TRANSACTIONAL}"> ... </namedCache><namedCache ...> <transaction transactionMode="{TRANSACTIONAL,NON_TRANSACTIONAL}"> ... </namedCache>Copy to Clipboard Copied! Toggle word wrap Toggle overflow トランザクションマネージャーを設定します。
transactionMode要素は、キャッシュがトランザクションであるかどうかを設定します。<namedCache ...> <transaction transactionMode="TRANSACTIONAL" transactionManagerLookupClass="{TransactionManagerLookupClass}"> </namedCache><namedCache ...> <transaction transactionMode="TRANSACTIONAL" transactionManagerLookupClass="{TransactionManagerLookupClass}"> </namedCache>Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロックモードを設定します。
lockingModeパラメーターは、楽観的ロックまたは悲観的ロックのメソッドが使用されるかどうかを決定します。キャッシュが非トランザクションの場合、ロックモードは無視されます。このパラメーターのデフォルト値はOPTIMISTICです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同期化を指定します。
useSynchronization要素は、トランザクションマネージャーを使って同期化を登録するようにキャッシュを設定するか、またはキャッシュ自体を XA リソースとして登録するようにキャッシュを設定します。この要素のデフォルト値はtrue(同期化の使用) です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リカバリーを設定します。
recovery要素は、trueに設定されるとキャッシュのリカバリーを有効にします。recoveryInfoCacheNameパラメーターは、リカバリー情報が保持されるキャッシュの名前を設定します。キャッシュのデフォルト名は__recoveryInfoCacheName__です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 書き込みスキューチェックを設定します。
writeSkewチェックは、異なるトランザクションからのエントリーに対する変更によりトランザクションがロールバックされるべきかどうかを判別します。trueに設定された書き込みスキューにより、isolation_levelをREPEATABLE_READに設定する必要があります。writeSkewおよびisolation_levelのデフォルト値はそれぞれfalseとREAD_COMMITTEDです。Copy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーのバージョン管理を設定します。
クラスター化されたキャッシュについては、エントリーのバージョン管理を有効にし、その値をSIMPLEに設定することにより書き込みスキューのチェックを有効にします。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
手順23.2 ライブラリーモード (プログラムを用いた設定) でトランザクションを設定します。
トランザクションモードを設定します。
以下のようにトランザクションモードを設定します。Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL);Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL);Copy to Clipboard Copied! Toggle word wrap Toggle overflow トランザクションマネージャーを設定します。
以下のテーブルで、利用可能なルックアップクラスのリストについての手順を確認します。Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .transactionManagerLookup(new GenericTransactionManagerLookup());Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .transactionManagerLookup(new GenericTransactionManagerLookup());Copy to Clipboard Copied! Toggle word wrap Toggle overflow ロックモードを設定します。
lockingMode値は、楽観的または悲観的ロックを使用するかどうかを決定します。キャッシュが非トランザクションの場合、ロックモードは無視されます。デフォルト値はOPTIMISTICです。Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .transactionManagerLookup(new GenericTransactionManagerLookup()); .lockingMode(LockingMode.OPTIMISTIC);Configuration config = new ConfigurationBuilder()/* ... */.transaction() .transactionMode(TransactionMode.TRANSACTIONAL) .transactionManagerLookup(new GenericTransactionManagerLookup()); .lockingMode(LockingMode.OPTIMISTIC);Copy to Clipboard Copied! Toggle word wrap Toggle overflow 同期化を指定します。
useSynchronization値は、トランザクションマネージャーを使って同期化を登録するようにキャッシュを設定するか、またはキャッシュ自体を XA リソースとして登録するようにキャッシュを設定します。デフォルト値はtrue(同期の使用) です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リカバリーを設定します。
recoveryパラメーターは、trueに設定されるとキャッシュのリカバリーを有効にします。recoveryInfoCacheNameは、リカバリー情報が保持されるキャッシュの名前を設定します。キャッシュのデフォルト名はRecoveryConfiguration.DEFAULT_RECOVERY_INFO_CACHEによって指定されます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 書き込みスキューチェックを設定します。
writeSkewチェックは、異なるトランザクションからのエントリーに対する変更によりトランザクションがロールバックされるべきかどうかを判別します。trueに設定された書き込みスキューにより、isolation_levelをREPEATABLE_READに設定する必要があります。writeSkewおよびisolation_levelのデフォルト値はそれぞれfalseとREAD_COMMITTEDです。Configuration config = new ConfigurationBuilder()/* ... */.locking() .isolationLevel(IsolationLevel.REPEATABLE_READ).writeSkewCheck(true);Configuration config = new ConfigurationBuilder()/* ... */.locking() .isolationLevel(IsolationLevel.REPEATABLE_READ).writeSkewCheck(true);Copy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーのバージョン管理を設定します。
クラスター化されたキャッシュについては、エントリーのバージョン管理を有効にし、その値をSIMPLEに設定することにより書き込みスキューのチェックを有効にします。Configuration config = new ConfigurationBuilder()/* ... */.versioning() .enable() .scheme(VersioningScheme.SIMPLE);Configuration config = new ConfigurationBuilder()/* ... */.versioning() .enable() .scheme(VersioningScheme.SIMPLE);Copy to Clipboard Copied! Toggle word wrap Toggle overflow
| クラス名 | 説明 |
|---|---|
| org.infinispan.transaction.lookup.DummyTransactionManagerLookup | テスト環境で主に使用されます。このテスト向けのトランザクションマネージャーは実稼働環境では使用されず、特に並列トランザクションやリカバリーなどの機能は厳しく制限されます。 |
| org.infinispan.transaction.lookup.JBossStandaloneJTAManagerLookup | Red Hat JBoss Data Grid がスタンドアロン環境で実行される場合のデフォルトのトランザクションマネージャーです。これにより、JBoss Transactions ベースの完全に機能するトランザクションマネージャーで、DummyTransactionManager の機能上の制限が解消されます。 |
| org.infinispan.transaction.lookup.GenericTransactionManagerLookup | GenericTransactionManagerLookup は、トランザクションルックアップクラスが指定されていない場合にデフォルトで使用されます。このルックアップクラスは、TransactionManager インターフェースを提供する Java EE 互換環境で JBoss Data Grid を使用する場合に推奨され、ほとんどの Java EE アプリケーションサーバーでトランザクションマネージャーを見つけるために使用できます。トランザクションマネージャーが見つからない場合、デフォルトは DummyTransactionManager になります。 |
| org.infinispan.transaction.lookup.JBossTransactionManagerLookup | JbossTransactionManagerLookup は、アプリケーションサーバーで実行中の標準的なトランザクションマネージャーを見つけます。このルックアップクラスは JNDI を使用して TransactionManager インスタンスを検索します。これは、カスタムキャッシュが JTA トランザクションで使用されている場合に推奨されます。 |