MQ集群同步响应消息返回问题

novo3791 2013-05-03 04:41:56
场景如下:
QM1、QM2、QM3都处在一个MQ集群之内,其中QM3上有一个集群队列QueueRequest作为请求消息队列,QM1、QM2上各有一个集群队列,都命名为QueueResponse。 应用A通过连接队列管理器QM1往QM3上的集群队列QueueRequest内发送请求消息;应用B通过连接队列管理器QM2也往QM3上的集群队列QueueRequest内发送请求消息;应用C作为服务提供方连接QM3从QueueRequest内取请求消息并处理后给回响应消息(约定:应用A只允许连接QM1;应用B只允许连接QM2;应用C只允许连接QM3)。
现在的问题是,应用C在只连接队列QM3的情况下,如何让对于应用A的响应消息回到QM1的QueueResponse内,让对于应用B的响应回到QM2的QueueResponse内.
...全文
540 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
mengliqiuxuan 2013-06-03
我使用的是C,MQOPEN的时候指定od.ObjectQMgrName,然后报错2087;按照您的方法换了JAVA做测试,还是报错2087,这个怎么解决?
回复
novo3791 2013-05-30
2L和3L是另一种实现模式,也是可以的@
回复
novo3791 2013-05-30
这个自己解决了,在Open队列的时候,设置一下目标队列管理器即可实现,java中代码如下: MQQueue qreq = qm.accessQueue(qName, MQC.MQOO_OUTPUT, qmgrName, null, null);
回复
mengliqiuxuan 2013-05-28
错了,是3L
回复
mengliqiuxuan 2013-05-28
我试了下,没有生效,4L知道具体如何设置才能生效么?谢谢
回复
dickens88 2013-05-24
2楼说的有道理,对于请求应答模式,每条MQ请求消息MsgID是消息的唯一标示,在MQMD域里面可以看到,应答时correlID=MsgID 就可以标记这条应答消息是针对哪条请求而发的。同时ReplyToQ(回复消息队列的名称)、ReplyToQMgr可以控制消息往哪去
回复
mengliqiuxuan 2013-05-09
MQ 消息头(MQMD),有2个字段,ReplyToQ(回复消息队列的名称)、ReplyToQMgr(回复消息队列所在队列管理器的名称),设置者2个字段去试试吧
回复
mengliqiuxuan 2013-05-09
同求,mark一下
回复
相关推荐
发帖
WebSphere
创建于2007-08-27

2608

社区成员

WebSphere 是 IBM 的软件平台。它包含了编写、运行和监视全天候的工业强度的随需应变 Web 应用程序和跨平台、跨产品解决方案所需要的整个中间件基础设施,如服务器、服务和工具。
申请成为版主
帖子事件
创建了帖子
2013-05-03 04:41
社区公告
暂无公告