Spring integration 直接消息通道,但仍获得乐观锁定异常
给定帐户ID和SomeLUW,另一个LUW(工作逻辑单元),其中帐户在两个LUW中更新 当我尝试执行以下操作时:Spring integration 直接消息通道,但仍获得乐观锁定异常,spring-integration,Spring Integration,给定帐户ID和SomeLUW,另一个LUW(工作逻辑单元),其中帐户在两个LUW中更新 当我尝试执行以下操作时: SomeLUW luw1 = new SomeLUW(accountId); messagingTemplate.send(channel1, new GenericMessage<>(luw1)); AnotherLUW luw2 = new AnotherLUW (accountId); messagingTemplate.send(channel2, new Ge
SomeLUW luw1 = new SomeLUW(accountId);
messagingTemplate.send(channel1, new GenericMessage<>(luw1));
AnotherLUW luw2 = new AnotherLUW (accountId);
messagingTemplate.send(channel2, new GenericMessage<>(luw2));
在日志中,我只能找到一个线程(典型的SIDefaultMessageListenerContainer-1)
我有一个errorHandler,它使JMS代理重新提交,但是日志被异常污染
你知道为什么会这样吗?好吧,因为你的进程是从
DefaultMessageListenerContainer
开始的,这对你来说确实可能是一个事实,一些消息是在不同的线程中处理的。因此,这是平行的
是的,这是一个连续的过程,但是当所有的事情都在同一个线程中完成时
考虑使用
DefaultLockRegistry
来获取对资源的相互访问。我猜在你的例子中是JPA。好吧,因为你的过程是从DefaultMessageListenerContainer
开始的,这对你来说确实可能是一个事实,一些消息是在不同的线程中处理的。因此,这是平行的
是的,这是一个连续的过程,但是当所有的事情都在同一个线程中完成时
考虑使用
DefaultLockRegistry
来获取对资源的相互访问。我猜你的情况是JPA。如何使用DefaultLockRegistry。我试图找到任何例子,但我找不到任何你可以看的。但一般用途是:通过一些键
从注册表中获取锁,在过程中将其锁定,最后解锁,就像普通的锁一样。唯一的区别是,不同的键不会在那里被阻止。我如何使用DefaultLockRegistry。我试图找到任何例子,但我找不到任何你可以看的。但一般用途是:通过一些键
从注册表中获取锁,在过程中将其锁定,最后解锁,就像普通的锁一样。唯一的区别是,不同的关键点不会阻止您。
MessageChannels.direct()
.datatype(AnotherLUW.class)
.get();
MessageChannels.direct()
.datatype(RedemptionLUW.class)
.get();