最近工作中需要用的从MQ队列中取消息的业务..找了一下MQ API写了一个实例..
建立一个QueueManagerEntity实体:
如下:
private String queueManagerName; //队列管理器名称;
private int port; //端口号
private String svrconn; //连接通道
private String hostName; //主机地址
private String queueName; //队列名称;
// getter和setter方法省略...
下列是通过Java程序获取WebSphere MQ 本地队列的消息代码:
public static String getMessageFromQueue(MQQueueManager queueManager,MQQueueEntity entity)
{
logger.debug("getMssageFromQueue begin:"+entity.getQueueName());
MQEnvironment.hostname = entity.getHostName();
MQEnvironment.port = entity.getProt();
MQEnvironment.channel = entity.getChannel();
MQEnvironment.CCSID = 1383;
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF|MQC.MQOO_OUTPUT|MQC.MQOO_INQUIRE;
String msg=null;
try
{
MQQueue queue=queueManager.accessQueue(entity.getQueueName(), openOptions);
MQMessage message=new MQMessage();
MQGetMessageOptions pmo=new MQGetMessageOptions();
queue.get(message,pmo);
message.format=MQC.MQFMT_STRING;
message.characterSet=1381;
msg=message.readString(message.getMessageLength());
queue.close();
queueManager.disconnect();
}
catch (Exception e)
{
e.printStackTrace();
}
return msg;
}
分享到:
相关推荐
通过以上知识点的详细介绍,我们可以看到IBM MQ与Java技术相结合后的强大功能,包括但不限于消息的发送与接收、队列管理器和队列的创建、服务器连接通道的配置等。这些知识点对于深入理解IBM MQ的工作原理以及如何在...
Java IBM MQ 7.5.0 是IBM提供的消息中间件,用于在分布式系统中可靠地传输数据。MQ(Message Queue)允许应用程序通过消息传递进行通信,而不是直接调用彼此,从而提高了系统的可扩展性和解耦性。MQTT(Message ...
- 调用`QueueReceiver`的`receive`方法来获取队列中的消息。可以设置超时时间或者使用阻塞模式等待消息到达。 6. **事务处理**: - JMS支持两种类型的事务:本地事务(依托于JMS会话)和分布式事务(X/Open XA)...
在Java代码中,可以看到如何设置主机名、通道、队列管理器和队列名称,以及建立MQQueueManager实例,使用MQQueue对象进行消息的投入和获取。 6. **MQ环境设置**:包括设置传输协议(例如MQC.TRANSPORT_MQSERIES)、...
2. 创建一个本地队列"Q1",并将它的用法改为"传输",以便作为消息的出站队列。 3. 创建一个远程队列"Q2",将其远程队列和队列管理器分别设置为"Q2"和"Receive",并指定"Q1"作为传输队列。 4. 创建一个名为"C.TO.S"的...
- **将消息发送至本地队列**:使用Java代码将消息发送到本地队列中。 - **将消息发送至远程队列**:编写Java程序,通过消息通道将消息发送到远程队列。 - **在客户机-服务器配置上发送消息**:设计和实现客户机-...
总结起来,Java结合WebSphere MQ实现接收队列文件功能涉及到WebSphere MQ的安装配置、队列和通道的管理,以及使用IBM MQ Java API进行消息的接收和处理。这一过程确保了在企业级环境中,数据能高效、可靠地在不同...
Java消息服务(JMS)是应用程序之间进行异步通信的一种标准API,而MQ(Message Queuing)是一种消息中间件,它允许应用程序在分布式环境中交换消息。JMS通常用于MQ的编程接口,而MQ命令用于管理MQ系统,包括队列管理...
- **MQQueue**:表示消息队列的 Java 对象,可以用于发送和接收消息。 - **MQMessage**:封装消息的数据结构。 ##### Java Message Service (JMS) 支持 文档还介绍了如何使用 Java Message Service (JMS) 规范来...
JMQI是IBM MQ的本地Java API,用于直接与队列管理器交互,执行如打开、关闭队列,发送和接收消息等操作。 3. **commonservices-7.5.jar, commonservices-7.6.jar**: 这两个文件包含了IBM MQ的一些通用服务,可能...
4. **消息接收**:同样,`MQGetMessageOptions`和`MQMessage`类用于从队列中获取并读取消息。可以选择同步或异步接收,根据应用需求选择合适的模式。 5. **事务处理**:为了保证消息的一致性,我们可以使用MQ的事务...
在RabbitMQ中,发送端(Producer)负责生产消息并将其发布到交换机,而接收端(Consumer)则从队列中获取并消费这些消息。这两个文件很可能是Java程序,分别展示了如何使用RabbitMQ Java客户端库来实现消息的发送和...
7. **事务处理**:IBM MQ支持本地Java事务和X/Open XA分布式事务,确保消息的原子性和一致性。 8. **连接工厂和目的地**:在使用JMS时,你需要创建连接工厂来建立与MQ队列管理器的连接,并定义消息的目的地(队列或...
- **本地队列**:位于同一队列管理器内的队列。 - **远程队列**:位于不同队列管理器中的队列。 ##### 1.2.3 队列管理器 (Queue Manager) 队列管理器是 WMQ 的核心组件,负责管理队列和其他资源。它可以被视为一个...
2. **Queue(队列)**:消息的存储和转发单元,可以是本地队列或远程队列。 3. **Channel(通道)**:定义了两个队列管理器之间的通信路径,用于消息传输。 4. **Message(消息)**:在队列间传输的数据单元,可以...
队列可以是本地队列,也可以是远程队列,用于与其他队列管理器通信。 5. **通道**:通道是MQ中数据传输的桥梁,分为服务器通道和客户机通道。它们负责在队列管理器之间建立连接,传输消息。通道配置包括通道名称、...
7. **监控与管理**:为了便于故障排查和性能优化,ActivityMQ-Demo可能会展示如何集成监控工具,如通过JMX(Java Management Extensions)接口获取MQ的相关指标,如消息速率、队列长度等。 通过深入学习和实践...
可以使用`DEFINE QUEUE`命令创建本地队列,也可以通过定义远程队列映射(Remote Queue Mapping,RQM)来访问远程队列。 5. 编写应用程序:WMQ提供了多种语言的API,如Java的JMS(Java Message Service)接口、C/C++...
发送者创建并发送消息,接收者从队列中获取并处理消息,而MQM则负责管理和维护消息队列,包括存储、路由和传递消息。 接下来,我们来讨论“编程模式”。在WebSphere MQ中,有几种常见的编程模式: 1. **点对点模式...