我正在使用activemq和持久主题订阅。 我也在使用JTA,因此如果出现错误,我希望重新发送由activeMQ触发。为了实现这个目的,我做了redeliveryPlugin设置,它工作正常,直到我启用persistent = true。
有了这个,现在我的消息没有传递给接收者,而在activemq日志中,它说消息是重复的
WARN | TopicStorePrefetch(...,storeHasMessages=true) ID:... - org.apache.activemq.broker.region.cursors.TopicStorePrefetch:...,batchResetNeeded=false,size=0,cacheEnabled=true,maxBatchSize:200,hasSpace:true,pendingCachedIds.size:0,lastSyncCachedId:ID:...,lastSyncCachedId-seq:39,lastAsyncCachedId:null,lastAsyncCachedId-seq:null - cursor got duplicate send ID:... seq: 40
WARN | duplicate message from store ID:..., redirecting for dlq processing
据我所知,activemq默认启用了重复检查,但我无法找到如何禁用它的任何地方。 我得到的最接近的是使用networkConnectors上的conduitSubscriptions选项。但是,我只有一个经纪人,所以不确定如何使用它。