对集群/高可用性IBM MQ管理器的Spring集成支持

时间:2016-03-30 16:25:49

标签: spring-integration ibm-mq

我正在使用spring集成来连接IBM MQ。我的spring集成应用程序与IBM MQ成功连接。现在,MQ团队将MQ管理器作为集群管理器,即队列管理器包含2个主机,一个主机和一个主机,因为如果一个主机关闭,被动主机将启动并运行。 下面是我的MQ弹簧集成配置,我只能传递一个主机。

public class VisualLedPanel
{
    private readonly Lazy<List<VisualLed>> _lazyVisualLeds = new Lazy<List<VisualLed>>(CreateVisualLeds);

    public VisualLed this[int x, int y]
    {
        get
        {
            var result = VisualLeds.FirstOrDefault(f => f.X == x && f.Y == y);
            return result;
        }
    }

    public IEnumerable<VisualLed> VisualLeds
    {
        get
        {
            return _lazyVisualLeds.Value;
        }
        set
        {
            var tt = value;
        }
    }

    private static List<VisualLed> CreateVisualLeds()
    {
        var result = new List<VisualLed>();
        for (var x = 0; x <= 7; x++)
        {
            for (var y = 0; y <= 7; y++)
            {
                result.Add(new VisualLed(x, y));
            }
        }

        return result;
    }
}

我们有什么方法可以从配置中传递主动和被动主机。我尝试使用主机中的逗号,但不支持。

请建议

2 个答案:

答案 0 :(得分:1)

您应该在属性connectionNameList下指定主机,不要使用hostName和port。

http://www-01.ibm.com/support/docview.wss?uid=swg21397867

Multi Instance MQ set up

答案 1 :(得分:1)

ConnectionNameList将允许传递主动和被动主机

 <bean id="mqQueueConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
        <property name="connectionNameList" value="activeHost(port),passiveHost(port)"/>
        <property name="channel" value="channel Name"/>
        <property name="queueManager" value="Queue Manager name"/>
        <property name="transportType" value="transport type"/>
  </bean>