My Below is the code works good with MQ6 but for MQ7 its giving exception
'package javaapplication1;
import java.io.*;
import java.net.*;
import java.util.*;
import java.util.TimerTask;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.CMQC;
class Connectivity
{
public static void main(String args[]) throws MQException
{
String qManager="";
int port_num=0;
int openOptions = CMQC.MQOO_FAIL_IF_QUIESCING + CMQC.MQOO_INPUT_SHARED;
MQEnvironment.hostname = "Host_name";
MQEnvironment.port = port_num;
MQEnvironment.channel = "Chn_name";
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, "Host_name");
props.put(CMQC.PORT_PROPERTY, port_num);
props.put(CMQC.CHANNEL_PROPERTY, "Chn_Name");
MQQueueManager qMgr = new MQQueueManager(qManager, props);
//MQQueueManager qMgr = new MQQueueManager("SW1_QM");
MQQueue destQueue = qMgr.accessQueue("Q_Name", openOptions);
System.out.println("E_RETRY size:" + destQueue.getCurrentDepth());
destQueue.close();
qMgr.disconnect();
}
}'
I get exception on the line
'System.out.println("E_RETRY size:" + destQueue.getCurrentDepth());'
and the exception message is
'MQJE001: Completion Code 1, Reason 2068
Exception in thread "main" com.ibm.mq.MQException: MQJE001: Completion Code 1, Reason 2068
at com.ibm.mq.MQManagedObject.inquire(MQManagedObject.java:257)
at com.ibm.mq.MQManagedObject.getInt(MQManagedObject.java:428)
at com.ibm.mq.MQQueue.getCurrentDepth(MQQueue.java:1478)
at javaapplication1.Connectivity.main(Connectivity.java:36)
Java Result: 1'
Kindly help me..
Is it possible the properties of the queue are different between the v6 and v7 queue managers? The documentation for the error message indicates this can occur with a cluster queue that resolves to a remote instance of the queue.
Have you verified that destQueue is in fact a valid queue?
Your open option does not include
MQOO_INQUIRE
which is a must for getting queue depth. I expected a MQRC 2038 because MQOO_INQUIRE option was not specified.Not sure why you are initializing MQEnvironment also and you are passing a properties hash table to MQQueueManager constructor.
Anyway here is the sample code that gets queue depth for a local queue.