有没有办法可以控制EMS或Tibco主题中消息的订单传递(使用JMS主题订阅者)?像消息选择器之类的东西,而不是过滤来做订购。
我想使用像JMSXDeliveryCount这样的标头,以便新消息获得更高的优先级。我知道那里有RedeliveryDelay,但这只适用于队列,而不适用于主题。
如果我可以在收到主题订阅者的消息后设置它,那么即使JMSPriority也可以是一个选项。我能这样做吗?也许使用Java Code活动?
答案 0 :(得分:0)
代理会在接收消息时按顺序传递消息,但重新排序消息是分布式计算/ EIP问题(请参阅音序器)。问题是经纪人不知道有多少消息要来,或者保持窗口打开多长时间以重新排序消息。此活动最好在您的应用程序中的代理外部进行,以便了解该信息。
EIP框架和ESB在为这种工作流程标准化处理程序方面做得很好。
ref:EIP Sequencer http://www.enterpriseintegrationpatterns.com/patterns/messaging/MessageSequence.html
答案 1 :(得分:0)
JMSPriority确实是一个选项,但不能在已收到的消息上设置它。解决方案是确认消息并以不同的优先级重新发布它。