Ibm mq MQ:2队列管理器下的相同队列名称

Ibm mq MQ:2队列管理器下的相同队列名称,ibm-mq,mq,Ibm Mq,Mq,我配置了两个具有相同队列名称的MQ队列管理器。两者都配置为向不同的服务器发送数据。当前队列管理器(QM1)已停止(状态立即结束),QM2正在运行 现在,我的程序打开队列并发送数据。它没有指定队列管理器名称。当我执行程序时,MQ连接请求返回错误2059 我的问题是: 当多个队列管理器具有相同的队列名称时会发生什么情况 如何在不改变代码的情况下应对这种情况 如果描述含糊不清,请原谅。如果有人提供链接,让像我这样的新手能学到一些东西,那将是很有帮助的 谢谢如果您能提供您申请的详细信息,那将非常有用。无

我配置了两个具有相同队列名称的MQ队列管理器。两者都配置为向不同的服务器发送数据。当前队列管理器(QM1)已停止(状态立即结束),QM2正在运行

现在,我的程序打开队列并发送数据。它没有指定队列管理器名称。当我执行程序时,MQ连接请求返回
错误2059

我的问题是:

  • 当多个队列管理器具有相同的队列名称时会发生什么情况
  • 如何在不改变代码的情况下应对这种情况
  • 如果描述含糊不清,请原谅。如果有人提供链接,让像我这样的新手能学到一些东西,那将是很有帮助的


    谢谢

    如果您能提供您申请的详细信息,那将非常有用。无论是使用服务器绑定还是客户端模式连接到队列管理器。您使用的是什么版本的MQ

    以下信息对MQ v7.x有效:

    如果使用客户端模式,则可以使用多个连接名进行连接。如果一个队列管理器关闭,则应用程序将连接到CONNAME列表中的下一个队列管理器。使用客户机模式连接时,最简单的方法之一是定义MQSERVER环境变量并指定多个连接名

    SET MQSERVER=<channel name>/TCP/host1(port1), host2(port2)
    

    在服务器绑定模式下,如果未指定队列管理器名称,则应用程序将尝试连接到默认队列管理器。如果默认队列管理器关闭,则抛出2059

    如果您能提供有关您的申请的详细信息,那将很有帮助。无论是使用服务器绑定还是客户端模式连接到队列管理器。您使用的是什么版本的MQ

    以下信息对MQ v7.x有效:

    如果使用客户端模式,则可以使用多个连接名进行连接。如果一个队列管理器关闭,则应用程序将连接到CONNAME列表中的下一个队列管理器。使用客户机模式连接时,最简单的方法之一是定义MQSERVER环境变量并指定多个连接名

    SET MQSERVER=<channel name>/TCP/host1(port1), host2(port2)
    

    在服务器绑定模式下,如果未指定队列管理器名称,则应用程序将尝试连接到默认队列管理器。如果默认队列管理器关闭,则抛出2059

    您的解释没有明确说明您的要求

    你写道:

    我的问题是1。当多个队列管理器具有相同的队列名称时会发生什么情况。

    没什么。这是正常情况。不同的队列管理器可能具有相同名称的队列,并且不会产生任何歧义。尽管如此,当队列管理器在同一个集群中并且队列也是集群队列时,场景会有点不同。那么一切都将取决于需求和设计

    你写道:

    2。如何在不更改代码的情况下解决问题

  • 运行已停止的队列管理器
  • 你写道:

    现在,我的程序打开队列并发送数据。它没有具体说明 队列管理器名称

    您使用的是什么应用程序?对于客户端应用程序,您可以使用队列管理器的对象访问队列。 我假设您正在使用一个应用程序(客户端),它不从您那里获取队列管理器详细信息,只获取队列详细信息。队列管理器可能是在代码中硬编码的。它首先将消息发送到队列管理器1的队列,然后发送到队列管理器2。但是,在您的情况下,队列管理器1已关闭


    如果是上述情况,则需要更改应用程序的代码。您应该以这样一种方式进行异常处理,即即使第一行代码抛出错误,它也会执行将消息发送到第二个队列管理器的代码。

    您的解释没有明确说明您的要求

    你写道:

    我的问题是1。当多个队列管理器具有相同的队列名称时会发生什么情况。

    没什么。这是正常情况。不同的队列管理器可能具有相同名称的队列,并且不会产生任何歧义。尽管如此,当队列管理器在同一个集群中并且队列也是集群队列时,场景会有点不同。那么一切都将取决于需求和设计

    你写道:

    2。如何在不更改代码的情况下解决问题

  • 运行已停止的队列管理器
  • 你写道:

    现在,我的程序打开队列并发送数据。它没有具体说明 队列管理器名称

    您使用的是什么应用程序?对于客户端应用程序,您可以使用队列管理器的对象访问队列。 我假设您正在使用一个应用程序(客户端),它不从您那里获取队列管理器详细信息,只获取队列详细信息。队列管理器可能是在代码中硬编码的。它首先将消息发送到队列管理器1的队列,然后发送到队列管理器2。但是,在您的情况下,队列管理器1已关闭


    如果是上述情况,则需要更改应用程序的代码。您应该以这样的方式进行异常处理:即使第一行代码抛出错误,它也会执行将消息发送到第二个队列管理器的代码。

    您是如何先将消息发送到队列管理器1的队列,然后再发送到队列管理器2的。我还想使用JMS?做同样的事情。有什么帮助吗?您是如何先将消息发送到队列管理器1的队列,然后再发送到队列管理器2的。我还想使用JMS?做同样的事情。有什么帮助吗?@Shasi我们如何先将消息发送到队列管理器1的队列,然后再发送到队列管理器2。我想使用JMS?做同样的事情。因为JMS允许我一次在1个QCF的帮助下创建队列协作。有什么帮助吗?@Shasi我们如何先将消息发送到队列管理器1的队列,然后再发送到队列管理器2。我想使用JMS?做同样的事情。因为JMS允许我在每次1个QCF的帮助下创建队列协作。有什么帮助吗?