没有进入checkLocalTransaction方法
来源:9-12 分布式事务02-编码实现

将自己发配于人海
2022-05-26
1.在executeLocalTransaction方法里 return RocketMQLocalTransactionState.COMMIT处加了断点,并且已经 taskkill进程了
2.content_center数据库里,share表、rocketmq_transaction_log表都已经有数据了。user_center中是没有的,我重启content_center项目之后,发现并没有进入checkLocalTransaction方法,需要怎么排查一下吗
Spring Boot:2.1.5
Spring Cloud:Greenwich.SR1
Spring Cloud Alibaba : 2.1.4.RELEASE
rocketmq-spring-boot-starter: 2.0.3
写回答
1回答
-
大目
2022-05-27
我怀疑是你的ide版本问题。我印象中,某些idea在执行到commit那行代码时关闭应用,依然会执行完这个方法。也就是说,半消息直接变全消息投递给消费者了。所以不会进后续的回查方法。
同学可以看看,消费者侧是不是消费了该消息。如果会消费,那么,升级idea,或者执行到commit那行时,人工kill 应用进程即可。
如果消费者侧没有消费,那么可以查询一下半消息是否投递到broker了,如果没有,那就是消息发送有问题。可以开debug日志看下消息发送的细节。
042022-06-09
相似问题