繁体   English   中英

Java程序MQ 7连接问题

[英]Java program MQ 7 connection issue

我正在尝试连接到MQ7服务器,下面是代码:

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, serverConfig.server); 
        props.put(CMQC.PORT_PROPERTY, serverConfig.port);
        props.put(CMQC.CHANNEL_PROPERTY, serverConfig.sChannel);

        qMgr = new MQQueueManager(qManager, props);
        System.out.println("Queue Manager : "+qMgr+" null");

        int openOptions = MQC.MQOO_INPUT_AS_Q_DEF
                | MQC.MQOO_OUTPUT |  MQC.MQOO_INQUIRE;

        queue = qMgr.accessQueue(queueName, openOptions);

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

        //creating msg
        message = new MQMessage();

它正在连接,但是在发送一条消息后抛出错误

" MQJE001: Completion Code '1', Reason '2068'.
com.ibm.mq.MQException: MQJE001: Completion Code '1', Reason '2068'.
strngError: No valid counters.
strngError: No valid counters.
    at com.ibm.mq.MQManagedObject.inquire(MQManagedObject.java:269)
    at com.ibm.mq.MQManagedObject.getInt(MQManagedObject.java:479)
    at com.ibm.mq.MQQueue.getCurrentDepth(MQQueue.java:995)
    at middlewarex.IBMmq.getQueueCount(IBMmq.java:227)
    at middlewarex.ThreadScenario.run(ThreadScenario.java:94)
    at java.lang.Thread.run(Thread.java:722)

指向线上

" public long getQueueCount() throws Exception{
            return queue.getCurrentDepth();
        } "

请帮助我

您是否在手册中查找了原因码2068? 因为如果这样做了,您将看到使用选项MQOO_INQUIRE是无效的。

其次,为什么要同时打开和接收消息的队列? 这是非常不好的做法。 您说要向队列发送(放入)消息,因此,您应该打开队列仅用于输出。

由于防火墙,我在发送消息时遇到了异常。 请尝试telnet并检查防火墙是否阻止您访问计算机。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM