Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mq 多实例MQ设置_Ibm Mq - Fatal编程技术网

Ibm mq 多实例MQ设置

Ibm mq 多实例MQ设置,ibm-mq,Ibm Mq,我正在尝试设置多实例MQ。我已经配置了NFS,并且能够使用dspmq-x查看活动和备用实例。然而,我的疑问是,在这个设置之后,如何进一步进行 如何配置通道。我得到的CONNAME属性应该用于此。e、 g.CONNAME(,)。我不知道该怎么做 我需要启动多少听众 对于MQ的正常模式,我遵循以下步骤: 1. crtmqm QM 2. strmqm QM 3. runmqsc QM 4. runmqlsr -m QM -t tcp -p 1125 5. runmqsc QM 6

我正在尝试设置多实例MQ。我已经配置了NFS,并且能够使用
dspmq-x
查看活动和备用实例。然而,我的疑问是,在这个设置之后,如何进一步进行

  • 如何配置通道。我得到的
    CONNAME
    属性应该用于此。e、 g.
    CONNAME(,)
    。我不知道该怎么做

  • 我需要启动多少听众

  • 对于MQ的正常模式,我遵循以下步骤:

     1. crtmqm QM 
     2. strmqm QM 
     3. runmqsc QM 
     4. runmqlsr -m QM -t tcp -p 1125 
     5. runmqsc QM 
     6. define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN) mcauser('mqm')
    
    对于多实例MQ,我必须对以下步骤进行哪些更改。有许多好的文档可用于多实例MQ设置,但大多数文档仅限于如何使用多实例配置队列管理器。谁能为我介绍一下剩下的步骤吗

    非常感谢您的指导

    编辑

    感谢Shashi和Morag的指导。

    我在两台服务器的端口1600上创建了不同的侦听器。我创建了以下频道:

    定义通道(MYCHANNEL)CHLTYPE(CLNTCONN)TRPTYPE(TCP) 康奈姆(IP11600)、IP2(1600)

    定义通道(MYCHANNEL)CHLTYPE(SVRCONN)TRPTYPE(TCP)MCAUSER(“”)

    下面是我用来将消息放入队列的独立java代码

    public class MutilInstanceMq 
    {
         public static void main(String[] args)
         {
             sendMsg("Test Message");
         }
    
         public static void sendMsg(String msg)
         {
             MQQueueConnectionFactory connectionFactory = null;
             QueueConnection queueConn = null;
             QueueSession queueSession = null;
             QueueSender queueSender = null;
             TextMessage message = null;
    
             try
             {
                 connectionFactory = new MQQueueConnectionFactory();
                 connectionFactory.setConnectionNameList("<IP1>(1600), <IP2>(1600)");
                 connectionFactory.setTransportType(WMQConstants.WMQ_CM_CLIENT);
                 connectionFactory.setQueueManager("MYQM1");
                 connectionFactory.setChannel("MYCHANNEL"); 
                 queueConn = connectionFactory.createQueueConnection(" ","password");
                 queueSession = queueConn.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); 
                 queueSender = queueSession.createSender(queueSession.createQueue("MYQ"));  
                 queueSender.setDeliveryMode(DeliveryMode.NON_PERSISTENT);  
                 message = queueSession.createTextMessage(msg);
                 message.setJMSCorrelationID("12345");
                 queueSender.send(message);        
                 queueConn.close(); 
             } 
             catch (Exception e)
             {
                 e.printStackTrace();
             }
         }  
    }
    
    详细的打印堆栈跟踪是:

        com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'MYQM1' with connection mode 'Client' and host name 'IP1(1600),IP2(1600)'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information.
        at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:608)
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
        at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
        at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
        at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:144)
        at MutilInstanceMq.sendMsg(MutilInstanceMq.java:40)
        at MutilInstanceMq.main(MutilInstanceMq.java:17)
    Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2543' ('MQRC_STANDBY_Q_MGR').
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
        ... 8 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2543;AMQ9204: Connection to host 'IP2(1600)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2543;AMQ9487: Remote queue manager is a standby queue manager instance. [3=MYCHANNEL]],3=IP2(1600),5=RemoteConnection.analyseErrorSegment]
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:2010)
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1227)
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:355)
        ... 7 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2059;AMQ9204: Connection to host 'IP1(1600)' rejected. [3=IP1(1600)]
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1980)
        ... 9 more
    
    com.ibm.msg.client.jms.DetailedJMSExException:JMSWMQ0018:无法连接到连接模式为“客户端”且主机名为“IP1(1600)、IP2(1600)”的队列管理器“MYQM1”。检查队列管理器是否已启动,如果在客户端模式下运行,请检查是否有侦听器正在运行。有关详细信息,请参阅链接的异常。
    位于com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:608)
    位于com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
    位于com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.java:440)
    位于com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
    位于com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
    位于com.ibm.msg.client.jms.admin.jmsconnectionfactorympl.createConnection(jmsconnectionfactorympl.java:295)
    位于com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
    位于com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:144)
    在MutilInstanceMq.sendMsg(MutilInstanceMq.java:40)
    在MutilInstanceMq.main(MutilInstanceMq.java:17)
    原因:com.ibm.mq.MQException:JMSCMQ0001:WebSphere mq调用失败,代码为“2”(“MQCC_失败”)原因为“2543”(“MQRC_备用_Q_MGR”)。
    位于com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
    ... 8个以上
    原因:com.ibm.mq.jmqi.jmqi异常:CC=2;RC=2543;AMQ9204:与主机“IP2(1600)”的连接被拒绝。[1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2543;AMQ9487:远程队列管理器是一个备用队列管理器实例。[3=MYCHANNEL]],3=IP2(1600),5=RemoteConnection.AnalysizeErrorSegment]
    位于com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:2010)
    位于com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1227)
    位于com.ibm.msg.client.wmq.internal.WMQConnection.(WMQConnection.java:355)
    ... 还有7个
    原因:com.ibm.mq.jmqi.jmqi异常:CC=2;RC=2059;AMQ9204:与主机“IP1(1600)”的连接被拒绝。[3=IP1(1600)]
    位于com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1980)
    ... 9更多
    

    我错在哪里?同时,我已关闭通道身份验证并能够连接到队列

    此处的知识中心详细记录了这些步骤:。此处介绍了如何验证多实例设置:

    要回答您明确的问题:

  • 如果您想使用逗号分隔的
    CONNAME
    方法,那么您将得到如下结果<代码>连接名('machine1(1234),machine2(1234)。两个端口中的端口号应该相同
  • 你有两个选择。或者在每台机器上使用runmqlsr—因此在同一端口上有两个侦听器。主计算机上的一个目的是使连接能够连接到队列管理器。备用计算机上的连接的目的是拒绝那些试图连接到那里的连接,这些连接的速度要快于TCP拒绝它们的速度,因为TCP没有侦听器。这也意味着连接报告的错误(由于无法连接的原因)更加明确——“这台机器是备用的”,而不是“这里没有TCP侦听器”。 另一种选择是定义一个
    侦听器
    对象并由队列管理器控制,这样它将只在队列管理器运行的地方运行。这会将配置全部保留在队列管理器中,但并不意味着您无法获得上述好处

  • 谢谢你的回复。我会试试这些。谢谢你详细的解释。我已经按照上面提到的步骤做了。目前我被困在
    RC=2059;尝试连接到队列管理器时出现AMQ9204
    。(请查找问题中的编辑部分)显而易见的问题,队列管理器是否确实以IP1(1600)运行?另外,如果要在应用程序中显式编写连接列表代码,则无需定义CLNTCONN,因为您不使用它。
        com.ibm.msg.client.jms.DetailedJMSException: JMSWMQ0018: Failed to connect to queue manager 'MYQM1' with connection mode 'Client' and host name 'IP1(1600),IP2(1600)'. Check the queue manager is started and if running in client mode, check there is a listener running. Please see the linked exception for more information.
        at com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(Reason.java:608)
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:236)
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:440)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createV7ProviderConnection(WMQConnectionFactory.java:7062)
        at com.ibm.msg.client.wmq.factories.WMQConnectionFactory.createProviderConnection(WMQConnectionFactory.java:6453)
        at com.ibm.msg.client.jms.admin.JmsConnectionFactoryImpl.createConnection(JmsConnectionFactoryImpl.java:295)
        at com.ibm.mq.jms.MQConnectionFactory.createCommonConnection(MQConnectionFactory.java:6230)
        at com.ibm.mq.jms.MQQueueConnectionFactory.createQueueConnection(MQQueueConnectionFactory.java:144)
        at MutilInstanceMq.sendMsg(MutilInstanceMq.java:40)
        at MutilInstanceMq.main(MutilInstanceMq.java:17)
    Caused by: com.ibm.mq.MQException: JMSCMQ0001: WebSphere MQ call failed with compcode '2' ('MQCC_FAILED') reason '2543' ('MQRC_STANDBY_Q_MGR').
        at com.ibm.msg.client.wmq.common.internal.Reason.createException(Reason.java:223)
        ... 8 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2543;AMQ9204: Connection to host 'IP2(1600)' rejected. [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2543;AMQ9487: Remote queue manager is a standby queue manager instance. [3=MYCHANNEL]],3=IP2(1600),5=RemoteConnection.analyseErrorSegment]
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:2010)
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1227)
        at com.ibm.msg.client.wmq.internal.WMQConnection.<init>(WMQConnection.java:355)
        ... 7 more
    Caused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2059;AMQ9204: Connection to host 'IP1(1600)' rejected. [3=IP1(1600)]
        at com.ibm.mq.jmqi.remote.internal.RemoteFAP.jmqiConnect(RemoteFAP.java:1980)
        ... 9 more