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>
分享到:
相关推荐
类的方法来创建连接。 - 例如,通过`MQQueueManager qMgr = new MQQueueManager("QM1")`创建与队列管理器QM1的连接。 #### 三、连接测试 在完成了基本的配置后,下一步是对连接进行测试,确保一切正常。 1. **...
为了确保这类系统的设计与开发达到预期的效果,选择一款稳定可靠的消息中间件尤为重要。IBM MQ(前身为 WebSphere MQ)作为业界领先的消息中间件之一,以其强大的异步消息处理能力和跨平台兼容性著称,被广泛应用于...
1. **配置MQ连接**: 首先,我们需要创建一个`ConnectionFactory`对象,它是连接到MQ服务器的工厂类。我们需要提供MQ服务器的相关信息,如主机名、端口、队列管理器名称和通道名称。 2. **创建Connection**: 使用`...
他们下发任务的时候要么发个闭包,要么发个序列化的类,包括我之前做的一个队列组件也是这么做的,后来我看了阿里云的消息队列服务的开发者 文档我觉得,消息服务本质上就是个纯消息服务,没必要把任务也放里面,一...
在本文中,我们将深入探讨如何使用Go语言实现与...了解Go的并发模型和错误处理机制,以及STOMP协议的基本原理,将有助于你更高效地实现这类应用。记得在编写代码时遵循Go的最佳实践,确保代码的可读性和可维护性。
3. **定义消息模型**:创建一个 Java 类作为消息实体,用于封装邮件通知的信息,如收件人、主题、正文等。 4. **创建 RabbitMQ 配置类**:定义一个配置类,使用 `@EnableRabbit` 注解启动 RabbitMQ 的自动配置,并...
在燃气检测部分,可能包含了一种高灵敏度的气体传感器,如MQ系列的热导式气体传感器,用于探测环境中燃气浓度的微小变化。一旦燃气浓度超过设定的安全阈值,GSM模块将被触发,向用户发送报警短信,提醒他们可能存在...
### ORACLE EBS 系统主数据管理精析 #### 一、EBS主数据概述(Master Data) 在Oracle E-Business Suite (EBS) 的系统架构中,“主数据”虽然不是一个官方术语,但其重要性和核心地位不容忽视。...
ZeroMQ,又称为ØMQ或0MQ,是一个开源的多协议、多平台的轻量级消息中间件,它提供了一种灵活的、基于模式的消息传递机制,常用于构建分布式系统。 ZeroMQ的核心概念包括插座(Socket)、地址(Address)和消息...
这个例子中,生产者通过`Stomp`类连接到指定的ActiveMQ服务器,并向队列`/queue/userReg`发送包含用户注册信息的消息。 **consumer1.php**和**consumer2.php**(消费者): ```php $stomp = new Stomp('tcp://...
首先,我们了解到气敏传感器有多种类型,主要分为半导体和非半导体两大类。在实际应用中,半导体气敏传感器使用最为广泛。 接触燃烧式气敏传感器是其中一种常见的类型,它由气敏元件和铂电阻等组成。当可燃性气体与...
收件人的邮箱客户端作为消费者从MQ中获取邮件并显示给用户。 - **抢红包**:用户发出红包请求,系统将其封装为消息并发送至队列;抢红包的用户作为消费者监听队列并处理抢红包请求。 #### 2.3 入门案例工程 在...
在IT行业中,消息队列(Message Queue,MQ)是一种常用于分布式系统中的组件,它扮演着数据通信和异步处理的重要角色。标题“08_啥?我发到消息队列里面的数据怎么不见了?”暗示了一个常见问题:用户可能在使用消息...
1. **联系方式**:客户可通过电话、邮件或直接来访的方式告知所需图纸的名称、型号、数量及收货地址等信息。 2. **付款方式**:支持邮局或银行汇款,并可将汇款凭证传真至该厂确认。 3. **发货流程**:收到汇款凭证...
(MQ) :发布/订阅模式的同级,当订户和发布者不需要同时与MQ进行交互时使用。 这意味着将消息放入队列中,以便稍后由接收方处理 :是一个中间计算机程序模块,它将消息从发送方的正式消息传递协议转换为接收方的...
ZeroMQ,又称ØMQ或零MQ,是一个轻量级、高性能的开源消息库,它提供了多种消息模式,如发布/订阅、请求/响应、推送/拉取等。ZeroMQ的工作原理是将网络通信抽象为套接字,使得应用程序可以像操作本地进程间通信一样...
可以通过`MimeMessage`设置发件人、收件人、主题和正文: ```java MimeMessage message = new MimeMessage(session); message.setFrom(new InternetAddress("from@example.com")); message.setRecipients(Message....