这是场景。我有一个遗留系统,包括A部分和B部分两部分,它们以某种客户端/服务器方式相互发送消息。我已经创建了一个适配器,可以将这些消息转换为另一种格式,以便在新系统中使用。消息发布在多个JMS主题上。适配器也会听取这些相同的主题。但是,因为两个适配器是相同的并且在遗留系统的每个部分上运行,所以我显然会收到与我发送的相同的消息。
是否有一种优雅的方法来过滤与我发出的消息相同的传入消息,除了为每个适配器分配一个具有唯一ID的“消息源”并对其进行过滤?
感谢您的帮助!
答案 0 :(得分:3)
您需要指定您的订阅者忽略本地消息。这可以在:
中指定关键部分是 noLocal ,当设置为 true 时,将忽略从同一javax.jms.Connection发送的消息。从订户的角度来看,它们并不存在。