jar 见附件
代码:
package csmp.util;
import java.util.Date;
import org.w3c.dom.Document;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.ws.management.application.dfltbndngs.DOMParser;
import csmp.base.SystemInfo;
import csmp.util.XmlUtil;
public class MQUtil {
private static String qmName;
private static String qName;
private static MQQueueManager qMgr;
private static void initMq() throws Exception{
String patch= SystemInfo.getMQFolder();
DOMParser parser = new DOMParser();
Document doc = parser.parse(patch);
MQEnvironment.hostname=XmlUtil.getNodeValue(doc.getDocumentElement(), "HOSTNAME");
MQEnvironment.channel=XmlUtil.getNodeValue(doc.getDocumentElement(), "CHANNEL");
MQEnvironment.CCSID=Integer.parseInt(XmlUtil.getNodeValue(doc.getDocumentElement(), "CCSID"));
MQEnvironment.port=Integer.parseInt(XmlUtil.getNodeValue(doc.getDocumentElement(), "PORT"));
qmName = XmlUtil.getNodeValue(doc.getDocumentElement(), "QMNAME");
qName = XmlUtil.getNodeValue(doc.getDocumentElement(), "SENDNAME");
try {
qMgr = new MQQueueManager(qmName);
} catch (MQException e) {
throw e;
}
}
public static void sendMessage(String message,String msgID) throws Exception{
try{
initMq();
int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
if(qMgr==null || !qMgr.isConnected()){
qMgr = new MQQueueManager(qmName);
}
MQQueue queue = qMgr.accessQueue(qName, openOptions);
MQMessage putMessage = new MQMessage();
putMessage.messageId = msgID.getBytes();
// putMessage.writeUTF(message);
putMessage.write(message.getBytes("UTF-8"));
MQPutMessageOptions pmo = new MQPutMessageOptions();
queue.put(putMessage,pmo);
queue.close();
}catch(Exception e){
e.printStackTrace(System.out);
throw e;
}finally{
try {
qMgr.disconnect();
} catch (MQException e) {
throw e;
}
}
}
public static void getMessage(String msgID) throws MQException {
//手动赋值
MQEnvironment.hostname="192.168.1.123";
MQEnvironment.channel="SYSTEM.DEF.SVRCONN";
MQEnvironment.CCSID=1208;
MQEnvironment.port=1414;
qmName = "QM";
qName = "LB.IN";
try {
qMgr = new MQQueueManager(qmName);
} catch (MQException e) {
throw e;
}
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;
MQQueue queue = null;
try {
queue = qMgr.accessQueue(qName, openOptions, null, null,null);
int depth = queue.getCurrentDepth();
//将队列的里的消息读出来
while(depth-->0)
{
MQMessage msg = new MQMessage();// 要读的队列的消息
msg.messageId = msgID.getBytes();
MQGetMessageOptions gmo = new MQGetMessageOptions();
queue.get(msg, gmo);
int len = msg.getDataLength();
byte[] buf = new byte[len];
msg.readFully(buf, 0, len);
String strmsgCont = new String(buf, "UTF-8");
System.out.println("消息的内容:\n"+strmsgCont);
}
} catch (MQException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(queue!=null){
try {
queue.close();
} catch (MQException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
本地文件XML :
<?xml version="1.0" encoding="UTF-8"?>
<mq>
<HOSTNAME>172.16.31.100</HOSTNAME>
<queue-mgr-name>QM_NAME</queue-mgr-name>
<QMNAME>QUEUE_NAME</QMNAME>
<SENDNAME>CHANNEL_Name</SENDNAME>
<CCSID>1208</CCSID>
<PORT>1414</PORT>
</mq>