は、私は次の操作を実行しようとすると、アカウントがbothsののLUWにダイレクトメッセージチャネルが、それでも楽観的ロックの例外を取得
に更新されたaccountIdとSomeLUW、AnotherLUW(作品の論理ユニット)、を持つアカウントを考える:
SomeLUW luw1 = new SomeLUW(accountId);
messagingTemplate.send(channel1, new GenericMessage<>(luw1));
AnotherLUW luw2 = new AnotherLUW (accountId);
messagingTemplate.send(channel2, new GenericMessage<>(luw2));
時には、オプティミスティックロック例外が発生することがあります。典型的な(
MessageChannels.direct()
.datatype(AnotherLUW.class)
.get();
MessageChannels.direct()
.datatype(RedemptionLUW.class)
.get();
とログで、私は一つのスレッドだけを見つけることができます。それができる理由 が、私は理解していない、私はそれは私が直接のチャネルを使用しているため
順次処理であると仮定したいですSI DefaultMessageListenerContainer-1)
私が持っているのErrorHandler JMSブローカーの再配信になりますが、ログは例外で汚染されている
これがなぜこのように考えられますか?
どのようにDefaultLockRegistryを使用できますか?私は例を見つけようとしていますが、見つけられませんでした –
https://github.com/spring-projects/spring-integration/blob/master/spring-integration-core/src/を見ることができますテスト/ java/org/springframework/integration/support/locks/DefaultLockRegistryTests.java。しかし一般的な目的は、いくつかの 'key'でレジストリからロックを取得し、プロセス中ロックし、最後にロックを解除します。異なるキーに対してブロックされていない違いのみ。 –