Ibm mq 如何启动WebSphereMQ服务?
我正在使用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年 下面给出了我使用的代码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
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_