我有几个需要使用JMS相互通信的应用程序。我将它们描述为服务器和客户端。执行以下步骤:
如果它只是那两个,这个工作正常。
当我们介绍(基于内容的)路由器时,执行以下步骤:
我无法终身了解如何在符合JMS规范的情况下正确实现路由器。
我已经提出以下内容但不知道这是否是最佳做法:
JMS路由器如何工作/我的设计是否正确?
答案 0 :(得分:0)
当您拥有基于内容的路由器时,事情不起作用的原因是基于内容的路由器正在创建具有新消息ID的新消息对象,并且它没有从原始消息设置的相关ID
以下是我过去的做法。假设您有以下队列。
频道S - 服务器获取请求
因此路由器根本不应该参与响应消息处理。说过这里是实现这种模式的一些常见错误。
答案 1 :(得分:0)
我正在寻找一个更权威的答案,可能包含对官方文档的引用,所以我做了更多的研究,这是我能找到的最好的:
在引用的文档中,描述了两种模式:
下图提供了实现消息ID模式并将路由器实现为代理的想法:
简而言之,我已经完成了我最初的想法。
来源:http://docs.oracle.com/cd/E13171_01/alsb/docs25/interopjms/MsgIDPatternforJMS.html