问题描述
我只是个实习生;很多东西都不懂;请大家解释的详细点谢谢做MQ的压力测试的时候;写了一个读string数组写入MQ的方法;结果出现如下错误MQJE001:发生MQException:完成码2,原因2009MQJE003:发送消息缓冲区时发生输入输出错误MQJE001:完成码2,原因2009com.ibm.mq.MQException:MQJE001:完成码2,原因2009atcom.ibm.mq.MQQueue.put(MQQueue.java:1207)atcom.ibm.mq.MQQueue.put(MQQueue.java:1227)错误不是一开始就出的;当写入一定数量的MQ时(数量不定);会出现该错误出错时不会结束进程;会继续执行下去;不过这个string数组里只写到出错的那条;解决方法是什么请问问题出在什么地方代码如下publicvoidsend(StringsendStr[],StringqManager,StringqName){try{MQQueueManagerqMgr=newMQQueueManager(qManager);intopenOptions=MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT;MQQueuequeue=qMgr.accessQueue(qName,openOptions,null,null,null);MQMessagemsg=newMQMessage();msg.format=MQC.MQFMT_STRING;msg.characterSet=1208;for(inti=0;i<sendStr.length;i++)if(sendStr[i]!=null){msg.write(sendStr[i].getBytes("UTF-8"));queue.put(msg);//经测试是执行到这句时出错;System.out.println("read"+i);}queue.close();qMgr.disconnect();}catch(MQExceptionex){ex.printStackTrace();}catch(java.io.IOExceptionex){System.out.println("AnIOExceptionoccuredwhilstwritingtothemessagebuffer:"+ex);}}
解决方案
本帖最后由 hellkasim 于 2011-07-18 14:27:58 编辑
解决方案二:
问题解决了;把MQMessagemsg=newMQMessage();msg.format=MQC.MQFMT_STRING;msg.characterSet=1208;从循环外放入循环体就完成了
解决方案三:
该回复于2011-07-26 10:51:11被版主删除
解决方案四:
该回复于2011-08-18 11:58:48被版主删除
解决方案五:
问题解决了;把MQMessagemsg=newMQMessage();msg.format=MQC.MQFMT_STRING;msg.characterSet=1208;从循环外放入循环体就完成了