我们有一个需要与多实例QueueManager通信的应用程序。两种(实例)都在默认端口上运行,并且具有唯一的地址。

  • serverA.internal.company.address
  • serverB.internal.company.address

  • 我们使用以下代码建立ConnectionFactory:
    MQQueueConnectionFactory connectionFactory = new MQQueueConnectionFactory();
    connectionFactory.setTransportType(1);
    connectionFactory.setPort(1414);
    connectionFactory.setChannel("CLIENTCONNECTION");
    connectionFactory.setQueueManager("queue.manager.name.here");
    connectionFactory.setHostName("serverA.internal.company.address");
    

    我们如何指定两个地址,以便在不编写我们自己的重试逻辑的情况下实现故障转移?

    最佳答案

    使用以下内容:

    connectionFactory.setConnectionNameList("serverA.internal.company.address(1414),"
                                          + "serverB.internal.company.address(1414)")
    

    代替
    connectionFactory.setHostName("serverA.internal.company.address");
    connectionFactory.setPort(1414);
    

    为我们做了把戏。

    10-05 17:42