【问题标题】:WAS MQ Routing message from Cluster QMGR来自集群 QMGR 的 WAS MQ 路由消息
【发布时间】:2014-01-28 21:26:02
【问题描述】:

我正在使用 WAS MQ 7.0 并且有我的场景;

我有一个名为 'CLUSD' 的集群队列管理器和两个名为 'N1' , 'N2' 的集群节点。 N1N2 配置相同。

当我尝试向CLUSD 发送消息时,qmgr 尝试向其节点(N1, N2)发送消息;在这个时候一切都很好。但是,如果这些节点之一关闭;例如,如果N1 关闭;我希望CLUSD 将所有消息发送到N2 并且当N1 可用时; CLUSD 向两者发送消息;但它不起作用,这意味着当N1 关闭时; CLUSD 将部分消息(不是所有消息)发送给N2,并将其他消息保留给他的TRANSMIT.QUEUE,并且当N1 可用时; CLUSD 将未送达的消息发送至N1

当我向CLUSD发送消息时似乎;我认为这个 qmgr 将标签设置为目标 qmgr;并在目的地可用时保留它。

我能做些什么来掩盖这个。

【问题讨论】:

  • 我通过更改集群 CLUSD 中所有队列的配置解决了这个问题。我将 DEFBIND 从默认值“ON OPEN”更改为“NOTFIXES”。这是创建队列的命令:DEFINE QLOCAL (Q1) CLUSTER(CLUSD) DEFBIND(NOTFIXED);

标签: ibm-mq


【解决方案1】:

您如何将消息发送到队列?当您打开集群队列时,使用 BIND_NOT_FIXED 选项打开它。这将允许接收 qmgr 决定在运行时使用哪个集群队列。这也将允许接收 qmgr 路由到可用的集群队列。

http://publib.boulder.ibm.com/infocenter/wmqv7/v7r0/index.jsp?topic=%2Fcom.ibm.mq.csqzah.doc%2Fqc11040_.htm

WAS 应该允许默认绑定不固定。 http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Fumj_pqdsxm.html

【讨论】:

  • 我正在使用 JMS 向队列发送消息。如何打开与 BIND_NOT_FIXED 的连接。
  • 我在某处看到了一条评论,建议将队列 DEFBIND 属性设置为 BIND_NOT_FIXED。我正在尝试,但它不起作用。你知道我在 SMSCLUSD 中的 CLUSSDR 通道何时到节点 N1;状态已停止,想要使用此通道的新消息存储在 TRANSMIT.QUEUE 中。我希望这些消息路由到 N2 的另一个频道。
  • WAS 应该支持它。如果不使用集群别名并在 JMS 绑定定义中使用该集群别名而不是 qmgr。集群别名应该指向一个别名队列指向集群队列并设置为DEFBND(NOTFIXED)
  • 我只检查 DEFBND(NOTFIXED);但它不起作用。如您所知,默认情况下队列具有 DEFBND(OPEN),我将其更改为 NOTFIXED 但它不起作用。在这些更改之后我必须停止和启动 SMSCLUSD 是否有必要这样做?
  • CLUSTER 是 IBM mq(提供者)特定的,而 JMS 是一个标准。如果您想混合使用这两者,请使用您自己的 JNDI 绑定文件以使用队列详细信息引导应用程序。使用 JMSAdmin 生成 JNDI 绑定。每个集群队列都应该有一个用 DEFBND(NOTFIXED) 定义的别名。然后定义一个集群别名(类似于 qmgr 别名)并使用该集群别名而不是上述 JMS JNDI Q 定义中的队列管理器。当应用程序连接到集群网关 qmgr 时,qmgr 被强制解析与可用集群队列的绑定。
猜你喜欢
  • 1970-01-01
  • 2011-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多