`
wenzi5a321
  • 浏览: 4153 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

MQ客户端

MQ 
阅读更多
public class mqSendSample {
@SuppressWarnings("rawtypes")
private static Hashtable<String, Comparable> env = new Hashtable<String, Comparable>();

// 队列管理器名
private static String queueManagerName;
// 队列管理器引用
private static MQQueueManager queueManager;
// 队列名
private static String queueName;
// 队列引用
private MQQueue queue;

/**
* <应用启动时初始化队列管理器连
* 由于连接队列管理器如同连接数据一样,建立时需要资源较多, 连接时间较长,因此不要每次创建关闭,建议应用程序保持
* 或多个队列管理器连接但应用关闭时注意关闭连接,释放资源!
*
* @throws Exception
*/
@BeforeClass
public static void initEnvironment() throws Exception {
// 服务器地id、名称
env.put(MQConstants.HOST_NAME_PROPERTY, "192.168.102.29");
// 连接通道
env.put(MQConstants.CHANNEL_PROPERTY, "ESB_TEST");
// 服务器MQ服务使用的编1381代表GBK,1208代表UTF(Coded Character Set Identifier:CCSID)
env.put(MQConstants.CCSID_PROPERTY, 1208);
// 端口号
env.put(MQConstants.PORT_PROPERTY, 1414);
// 传输类型
env.put(MQConstants.TRANSPORT_PROPERTY, MQConstants.TRANSPORT_MQSERIES);
MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES_CLIENT);
// 设置目标队列管理器
queueManagerName = "AIRP_QMGR_002";
// 设置目标队列
queueName = "topic_in3";

// 建立队列管理器连接
connectQM();
}

/**
* 程序结束时释放队列管理连接资源
*
* @throws Exception
*/
@AfterClass
public static void destroyEnvironment() throws Exception {
disconnectQM();
}

@Test
public void testSend() throws Exception {
// 队列打开参数
int openOptions = MQConstants.MQOO_BIND_AS_Q_DEF
| MQConstants.MQOO_OUTPUT;
// 打开队列(同一线程内,同时只能打开该队列一次)
queue = queueManager.accessQueue(queueName, openOptions);
// 设置发送消息参数为:具有同步性,及支持事务
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQConstants.MQPMO_SYNCPOINT;
try {
// 发送消息(这是为同时多条消息发送)
for (int i = 0; i < 10; i++) {
// 设置消息格式为字符串类型
MQMessage msg = new MQMessage();
msg.format = MQConstants.MQFMT_STRING;
/*
* 设置自定义消息头
*/
msg.setStringProperty("sys", "md"); // 服务id
msg.characterSet = 1208;
// 消息内容
String message = "<msg>你好<msg>";
// 设置消息内容
msg.writeString(message);
// 发�?消息
queue.put(msg, pmo);

}
// 提交事务
queueManager.commit();

} catch (MQException e) {
// 事务回滚
queueManager.backout();
e.printStackTrace();
} finally {
// 关闭队列
if (queue != null) {
queue.close();
}
}

}

private static void connectQM() throws Exception {
queueManager = new MQQueueManager(queueManagerName, env);
}

private static void disconnectQM() throws Exception {
if (queueManager != null) {
queueManager.disconnect();
}
}

public static void main(String[] args) throws Exception {
mqSendSample queue1 = new mqSendSample();
queue1.initEnvironment();
// 队列打开参数
int openOptions = MQConstants.MQOO_BIND_AS_Q_DEF
| MQConstants.MQOO_OUTPUT;
// 打开队列(同一线程内,同时只能打开该队列一次)
queue1.queue = queue1.queueManager.accessQueue(queueName, openOptions);
// 设置发送消息参数为:具有同步性,及支持事务
MQPutMessageOptions pmo = new MQPutMessageOptions();
pmo.options = MQConstants.MQPMO_SYNCPOINT;
try {
// 设置消息格式为字符串类型
MQMessage msg = new MQMessage();
msg.format = MQConstants.MQFMT_STRING;
// 消息内容编码(1208:utf-8)
msg.characterSet = 1208;
msg.setStringProperty("sys", "md");
String message = "<root><RequestHead><RequestID>123</RequestID><SourceSystem>VMSCODE</SourceSystem>" +
"<TargetSystem>DCECODE</TargetSystem><ServiceName>S0802001A</ServiceName>" +
"<ServiceOperation>TO_ZF</ServiceOperation>" +
"<ServiceVersion></ServiceVersion></RequestHead><RequestBody><updateProductReq><product><action>2</action><prod_id>1010002956</prod_id><prod_code>1010002956</prod_code><prod_simple_code></prod_simple_code><prod_name>测试产品00013</prod_name><unit_id>118</unit_id><prod_memo2k></prod_memo2k><prod_list_price>200.0000</prod_list_price></product></updateProductReq></RequestBody></root>";
// 设置消息内容
msg.writeString(message);
// 发�?消息
queue1.queue.put(msg, pmo);

// 提交事务
queue1.queueManager.commit();

} catch (MQException e) {
// 事务回滚
queue1.queueManager.backout();
e.printStackTrace();
} finally {
// 关闭队列
if (queue1.queue != null) {
queue1.queue.close();
}
}
}
}
分享到:
评论

相关推荐

    mq客户端安装包7.5.0.3

    MQ客户端安装包7.5.0.3是IBM WebSphere MQ客户端的一个版本,它提供了与IBM消息中间件交互的能力。WebSphere MQ,通常简称为MQ,是一个强大的消息传递平台,用于在不同应用程序之间可靠地传输数据,确保了数据的高...

    ibm mq客户端与服务端互连

    ### IBM MQ客户端与服务端互连 #### 一、IBM MQ简介 IBM MQ(以前称为WebSphere MQ)是一种消息中间件,它允许应用程序在分布式环境中发送消息。这种技术被广泛应用于金融、医疗、电信等行业,因为其可靠的消息...

    MQ实验4_MQ客户端配置

    在本实验“MQ实验4_MQ客户端配置”中,我们将探讨如何配置IBM WebSphere MQ(简称MQ)客户端,使其能够连接到MQ服务器进行消息传递。这个实验主要分为以下几个步骤: **步骤一:配置MQ服务器端队列管理器** 在...

    MQ客户端消息发送接收程序

    【MQ客户端消息发送接收程序】是一个基于特定MQ(Message Queue)技术实现的程序,它能够帮助用户发送和接收消息。MQ技术是分布式系统中广泛采用的一种异步通信机制,通过消息队列,不同组件可以解耦,提高系统的可...

    IBM WEBSPHERE MQ 客户端--服务器端安装配置.doc

    2. 客户端配置相对简单,只需安装MQ客户端组件。实际上,即使不安装,只要正确设置连接参数,客户端程序也能与服务器通信。 **客户端连接示例** 以下是一个使用IBM MQ Java API的简单客户端示例,展示了如何连接到...

    WebSphere MQ Clients

    - **WebSphere MQ 客户端**:指那些安装了 WebSphere MQ 客户端软件的应用程序或系统。客户端通过连接到 WebSphere MQ 服务器来发送和接收消息。 - **连接方式**:客户端通常通过网络连接到 WebSphere MQ 服务器,...

    websphere mq客户端

    websphere mq客户端

    Windows上MQ客户端MQTTBox-win.rar

    **MQTTBox**是一款方便的MQTT客户端工具,适用于多种操作系统,包括Windows。MQTTBox提供了一个图形用户界面(GUI),使得用户可以轻松地测试和调试MQTT服务器,而无需编写代码。它支持发布和订阅主题,查看接收到的...

    MQ Client文档

    **MQ客户端文档** 本文档将深入探讨IBM WebSphere MQ(简称MQ)的客户端技术,它是一种强大、可靠的异步消息传递平台,广泛用于企业级应用之间的通信。MQ客户端是与MQ服务器进行交互的软件组件,它允许应用程序发送...

    MQ客户端,配合JMeterAMQP.jar使用

    使用Jmeter进行RabbitMQ的性能测试,将此文件和JmeterAMQP.jar一同放到/lib/ext目录下,重启Jmeter即可

    IBM WebSphere MQ 在AIX环境下服务端和模拟客户端配置步骤 .doc

    【IBM WebSphere MQ在AIX环境下服务端和模拟客户端配置步骤】 IBM WebSphere MQ是一款强大的消息中间件,它允许应用程序之间安全、可靠地交换数据。在AIX操作系统中配置WebSphere MQ服务端和模拟客户端,可以省去在...

    IBM MQ 全部JAR包

    1. **com.ibm.mq.allclient.jar**:这是IBM MQ Java客户端的核心库,提供了连接MQ服务器、创建队列管理器、发送和接收消息等基本操作的API。这个JAR包是所有其他JAR包的基础,包含了MQ的主类和接口。 2. **...

    IBM MQ Explore windows下安装包

    IBM MQ Explore是一款强大的工具,专为管理IBM WebSphere MQ(以前称为IBM Message Queuing或IBM MQ)环境而设计。在Windows环境下安装IBM MQ Explorer,可以帮助系统管理员和开发人员监控、配置和管理IBM MQ队列...

    websphere mq 7.5 jar

    在描述中提到的"所有jar"意味着这个压缩包包含了运行Websphere MQ 7.5所需的所有Java类库,这对于那些无法直接从客户端拷贝jar文件的用户来说非常便利。 Websphere MQ的核心功能包括: 1. **消息传递**:MQ提供了...

    WebSphere MQ 系统管理指南 6.0

    《WebSphere MQ 系统管理指南 6.0》是一份详尽的文档,旨在为IT专业人士提供关于IBM WebSphere MQ版本6.0的全面系统管理指导。此指南覆盖了WebSphere MQ的基础知识、配置、操作与维护,以及高级主题,如故障排除和...

    利用Websphere MQ实现大文件交换

    - **架构二**:Websphere MQ客户端断点上传应用部署在一台机器上,而Websphere MQ Server与Websphere MQ客户端断点下载应用部署在同一台机器上。 2. **多个Websphere MQ Server架构**: - **架构三**:在整个系统...

Global site tag (gtag.js) - Google Analytics