我正在尝试连接到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();
} "
请帮助我
答案 0 :(得分:0)
您是否在手册中查找了原因代码2068?因为如果你这样做,你会发现使用选项MQOO_INQUIRE是无效的。
其次,为什么要打开和收到消息的队列?这是一个非常糟糕的做法。您说您正在向队列发送(发送)消息,因此,您应该打开队列以仅输出。
答案 1 :(得分:0)
由于防火墙,我在发送邮件时遇到异常。请尝试使用telnet并检查防火墙是否阻止您访问本机。