Ibm mq 如何启动WebSphereMQ服务?

Ibm mq 如何启动WebSphereMQ服务?,ibm-mq,Ibm Mq,我正在使用WebSphere7.5版,这是否需要系统代理来启动MQ服务。当我通过Java代码访问时,如何启动MQ服务。目前我通过代码访问时遇到以下异常 MQJE001:发生MQException:完成代码2,原因2009 MQJE016:MQ队列管理器在连接期间立即关闭通道 关闭原因=2009年 MQJE001:发生MQException:完成代码2,原因2009 MQJE016:MQ队列管理器在连接期间立即关闭通道 关闭原因=2009年 com.ibm.mq.MQException:MQJE0

我正在使用WebSphere7.5版,这是否需要系统代理来启动MQ服务。当我通过Java代码访问时,如何启动MQ服务。目前我通过代码访问时遇到以下异常

MQJE001:发生MQException:完成代码2,原因2009 MQJE016:MQ队列管理器在连接期间立即关闭通道 关闭原因=2009年

MQJE001:发生MQException:完成代码2,原因2009 MQJE016:MQ队列管理器在连接期间立即关闭通道 关闭原因=2009年

com.ibm.mq.MQException:MQJE001:发生MQException:完成代码2,原因2009

MQJE016:MQ队列管理器在连接期间立即关闭通道 关闭原因=2009年

下面给出了我使用的代码

public class Demo {
            private MQQueueManager _queueManager = null;
            public int port = 1422;
            public String hostname = "192.168.1.5";//IP OF HOST
            public String channel = "QM_ORANGE.QM_APPLE";//channel name
            public String qManager = "QM_ORANGE";//queue manager name
            public String inputQName = "Q1";//remote q type
            public String outputQName = "QM_APPLE";//queue manager

            public Demo() {
                super();
            }

            private void init(String[] args) throws IllegalArgumentException {
                // Set up MQ environment
                MQEnvironment.hostname = hostname;
                MQEnvironment.channel = channel;
                MQEnvironment.port = port;
            }

            public static void main(String[] args) {

                Demo readQ = new Demo();

                try {
                    readQ.init(args);
                    readQ.selectQMgr();
                    readQ.read();
                    readQ.write();
                } catch (IllegalArgumentException e) {
                    System.out
                            .println("Usage: java MQRead <-h host> <-p port> <-c channel> <-m QueueManagerName> <-q QueueName>");
                    System.exit(1);
                } catch (MQException e) {
                    System.out.println(e);
                    System.exit(1);
                }
            }

            private void read() throws MQException {
                int openOptions = MQC.MQOO_INQUIRE + MQC.MQOO_FAIL_IF_QUIESCING
                        + MQC.MQOO_INPUT_SHARED;

                MQQueue queue = _queueManager.accessQueue(inputQName, openOptions,
                        null, // default q manager
                        null, // no dynamic q name
                        null); // no alternate user id

                System.out.println("MQRead v1.0 connected.\n");

                int depth = queue.getCurrentDepth();
                System.out.println("Current depth: " + depth + "\n");
                if (depth == 0) {
                    return;
                }

                MQGetMessageOptions getOptions = new MQGetMessageOptions();
                getOptions.options = MQC.MQGMO_NO_WAIT + MQC.MQGMO_FAIL_IF_QUIESCING
                        + MQC.MQGMO_CONVERT;
                while (true) {
                    MQMessage message = new MQMessage();
                    try {
                        queue.get(message, getOptions);
                        byte[] b = new byte[message.getMessageLength()];
                        message.readFully(b);
                        System.out.println(new String(b));
                        message.clearMessage();
                    } catch (IOException e) {
                        System.out.println("IOException during GET: " + e.getMessage());
                        break;
                    } catch (MQException e) {
                        if (e.completionCode == 2
                                && e.reasonCode == MQException.MQRC_NO_MSG_AVAILABLE) {
                            if (depth > 0) {
                                System.out.println("All messages read.");
                            }
                        } else {
                            System.out.println("GET Exception: "+e);
                        }
                        break;
                    }
                }
                queue.close();
                _queueManager.disconnect();
            }

            private void selectQMgr() throws MQException {
                _queueManager = new MQQueueManager(qManager);
            }

            private void write() throws MQException {
                int lineNum = 0;
                int openOptions = MQC.MQOO_OUTPUT + MQC.MQOO_FAIL_IF_QUIESCING;
                try {
                    MQQueue queue = _queueManager.accessQueue(outputQName, openOptions,
                            null, // default q manager
                            null, // no dynamic q name
                            null); // no alternate user id

                    DataInputStream input = new DataInputStream(System.in);

                    System.out.println("MQWrite v1.0 connected");
                    System.out.println("and ready for input, terminate with ^Z\n\n");

                    // Define a simple MQ message, and write some text in UTF format..
                    MQMessage sendmsg = new MQMessage();
                    sendmsg.format = MQC.MQFMT_STRING;
                    sendmsg.feedback = MQC.MQFB_NONE;
                    sendmsg.messageType = MQC.MQMT_DATAGRAM;
                    sendmsg.replyToQueueName = "ROGER.QUEUE";
                    sendmsg.replyToQueueManagerName = qManager;

                    MQPutMessageOptions pmo = new MQPutMessageOptions(); // accept the
                                                                            // defaults,
                                                                            // same
                    // as MQPMO_DEFAULT constant

                    String line = "test message";
                    sendmsg.clearMessage();
                    sendmsg.messageId = MQC.MQMI_NONE;
                    sendmsg.correlationId = MQC.MQCI_NONE;
                    sendmsg.writeString(line);

                    // put the message on the queue

                    queue.put(sendmsg, pmo);
                    System.out.println(++lineNum + ": " + line);

                    queue.close();
                    _queueManager.disconnect();

                } catch (com.ibm.mq.MQException mqex) {
                    System.out.println(mqex);
                } catch (java.io.IOException ioex) {
                    System.out.println("An MQ IO error occurred : " + ioex);
                }

            }
        }
公共类演示{
专用MQQueueManager _queueManager=null;
公共int端口=1422;
公共字符串hostname=“192.168.1.5”;//主机的IP
公共字符串channel=“QM\u ORANGE.QM\u APPLE”;//频道名称
公共字符串qManager=“QM_ORANGE”;//队列管理器名称
公共字符串inputQName=“Q1”//远程q类型
公共字符串outputQName=“QM_APPLE”;//队列管理器
公共演示(){
超级();
}
私有void init(字符串[]args)引发IllegalArgumentException{
//设置MQ环境
MQEnvironment.hostname=主机名;
MQEnvironment.channel=通道;
MQEnvironment.port=端口;
}
公共静态void main(字符串[]args){
Demo readQ=新的Demo();
试一试{
readQ.init(args);
readQ.selectQMgr();
readQ.read();
readQ.write();
}捕获(IllegalArgumentException e){
系统输出
.println(“用法:java MQRead”);
系统出口(1);
}捕获(MQE异常){
系统输出打印ln(e);
系统出口(1);
}
}
私有void read()引发MQException{
int openOptions=MQC.MQOO_INQUIRE+MQC.MQOO_FAIL_IF_QUIESCING
+MQC.MQOO_输入_共享;
MQQueue queue=\u queueManager.accessQueue(inputQName,openOptions,
null,//默认q管理器
null,//没有动态q名称
null);//没有备用用户id
System.out.println(“MQRead v1.0已连接。\n”);
int depth=queue.getCurrentDepth();
System.out.println(“当前深度:“+depth+”\n”);
如果(深度==0){
回来
}
MQGetMessageOptions getOptions=新的MQGetMessageOptions();
getOptions.options=MQC.MQGMO_NO_WAIT+MQC.MQGMO_FAIL_IF_QUIESCING
+MQC.MQGMO_CONVERT;
while(true){
MQMessage message=新的MQMessage();
试一试{
get(message,getOptions);
byte[]b=新字节[message.getMessageLength()];
信息。准备就绪(b);
System.out.println(新字符串(b));
message.clearMessage();
}捕获(IOE异常){
System.out.println(“GET期间的IOException:+e.getMessage());
打破
}捕获(MQE异常){
如果(e.completionCode==2
&&e.reasonCode==MQException.MQRC\u无可用消息){
如果(深度>0){
System.out.println(“读取所有消息”);
}
}否则{
System.out.println(“获取异常:+e”);
}
打破
}
}
queue.close();
_queueManager.disconnect();
}
私有void selectQMgr()引发MQException{
_queueManager=新的MQQueueManager(qManager);
}
private void write()引发MQException{
int lineNum=0;
int openOptions=MQC.MQOO_输出+MQC.MQOO_失败(如果停止);
试一试{
MQQueue queue=\u queueManager.accessQueue(outputQName,openOptions,
null,//默认q管理器
null,//没有动态q名称
null);//没有备用用户id
DataInputStream输入=新的DataInputStream(System.in);
System.out.println(“连接了MQWrite v1.0”);
System.out.println(“并准备好输入,以^Z终止\n\n”);
//定义一个简单的MQ消息,并以UTF格式写入一些文本。。
MQMessage sendmsg=新MQMessage();
sendmsg.format=MQC.MQFMT_字符串;
sendmsg.feedback=MQC.MQFB_NONE;
sendmsg.messageType=MQC.MQMT_数据报;
sendmsg.replyToQueueName=“ROGER.QUEUE”;
sendmsg.replyToQueueManagerName=qManager;
MQPutMessageOptions pmo=new MQPutMessageOptions();//接受
//违约,
//同样的
//作为MQPMO_默认常量
String line=“测试消息”;
sendmsg.clearMessage();
sendmsg.messageId=MQC.MQMI_