-1
        qMgr = new MQQueueManager(qManager);            
        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF
               | MQC.MQOO_OUTPUT |  MQC.MQOO_INQUIRE;        

       *queue = qMgr.accessQueue(queueName, openOptions);* //Here i need to change it for MQ7, as for Mq7 their is no Queue Manager Name.

        System.out.println("Successfully registered");

大家好,

我需要监视队列IBM MQ7.. 目前我们为 .. 做了MQ6,但因为MQ7他们没有队列管理器名称,所以我坚持这样做。谁能帮我

4

1 回答 1

0

我想我已经理解了你的问题:

首先要清楚,无论是服务器还是其他任何东西,您都无法连接到不存在的东西。要连接一个对象,该对象必须存在。

同样的情况也适用于 MQ。要连接到队列管理器,该队列管理器必须存在并且正在运行。

来到您提到的代码片段:MQ Java API 没有采用队列管理器名称参数的MQQueueManager构造函数。not因此队列管理器名称参数是必需的,而不是可选的。但是您可以将“”(空白)作为队列管理器的名称传递给 MQQueueManager 构造函数。在这种情况下,应用程序将根据主机、端口和通道参数连接到队列管理器。所以你必须至少传递主机、端口和通道参数。

希望我已经回答了你的问题。

编辑示例代码

    // Create a connection to the QueueManager
    qManager = "";    
    System.out.println("Connecting to queue manager: " + qManager);
    Hashtable props = new Hashtable();

    // Change the host name to your host name. Leave it as it is if 
    // queue manager is on the same machine
    props.put(CMQC.HOST_NAME_PROPERTY, "localhost"); 
    props.put(CMQC.PORT_PROPERTY, 1414);
    props.put(CMQC.CHANNEL_PROPERTY, "SYSTEM.DEF.SVRCONN");

    MQQueueManager qMgr = new MQQueueManager(qManager, props);
于 2013-10-31T05:41:52.900 回答