- 浏览: 135423 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
兰博基尼:
...
缓冲和缓存的区别是什么?Cache 和 Buffer 都是缓存,主要区别是什么 -
jiaer0910:
为什么会出现类型转换的错
Java导出Word文档(可设置字体) -
苍天百合:
引用[u][/u] ...
Java导出Word文档(可设置字体) -
xujijun11:
怎么是excel,晕了
Java导出Excel文档 -
xujijun11:
很好,学习了
Java导出Excel文档
第一次接触MQ(Message Query)消息队列,就是往队列里面写消息和从队列里面读取消息两种方式
package com.bulain.wasmq;
import org.apache.log4j.Logger;
import java.io.InputStream;
import java.util.Properties;
import com.ibm.mq.MQC;
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
//----------------------------------------------
// ……
public class Main {
/**
* Logger for this class
*/
private static final Logger logger = Logger.getLogger(Main.class);
private String strExtraSendXmlFileName = "jndi.properties";
private static Properties props;
static {
props = new Properties();
props.put("mqHostName","10.240.13.81");
props.put("mqPort","1414");
props.put("mqCCSID","932");
props.put("mqUserName","mqadmin");
props.put("mqPassword","Art515940");
props.put("mqQManager","QM_mphch085");
props.put("mqChannel","S_mphch085");
props.put("mqLocalOutQueue","clq_default_mphch085");
props.put("mqLocalInQueue","clq_default_mphch085");
}
public static void main(String[] args) {
Main test = new Main();
test.send();
test.recieve();
}
public void send() {
// MQ?送
try {
// 建立MQ客?端?用上下文?境
MQEnvironment.hostname = props.getProperty("mqHostName"); // 服?器ip地址
MQEnvironment.port = Integer.parseInt(props.getProperty("mqPort")); // 服?器MQ服?端口
MQEnvironment.CCSID = Integer.parseInt(props.getProperty("mqCCSID")); // 服?器MQ服?使用的??
MQEnvironment.channel = props.getProperty("mqChannel"); // 服?器?接通道名
MQEnvironment.userID = props.getProperty("mqUserName"); // MQ服?用?名
MQEnvironment.password = props.getProperty("mqPassword");
// ?接?列管理器
MQQueueManager qMgr = new MQQueueManager(props.getProperty("mqQManager"));
int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
// 打?MQ?列
MQQueue q = qMgr.accessQueue(props.getProperty("mqLocalOutQueue"), openOptions);
//FileInputStream fins = new FileInputStream(new File(strExtraSendXmlFileName));
InputStream fins = ClassLoader.getSystemResourceAsStream(strExtraSendXmlFileName);
byte[] data = new byte[fins.available()];
fins.read(data);
fins.close();
MQMessage msg = new MQMessage();
msg.write(data);
// 放入消息
q.put(msg);
// ???列
q.close();
// ???列管理器
qMgr.disconnect();
} catch (MQException e) {
logger.error(e);
e.printStackTrace();
} catch (Exception e) {
logger.error(e);
e.printStackTrace();
}
}
public void recieve() {
// MQ接收
try {
// 建立MQ客?端?用上下文?境
MQEnvironment.hostname = props.getProperty("mqHostName"); // 服?器ip地址
MQEnvironment.port = Integer.parseInt(props.getProperty("mqPort")); // 服?器MQ服?端口
MQEnvironment.CCSID = Integer.parseInt(props.getProperty("mqCCSID")); // 服?器MQ服?使用的??
MQEnvironment.channel = props.getProperty("mqChannel"); // 服?器?接通道名
MQEnvironment.userID = props.getProperty("mqUserName"); // MQ服?用?名
MQEnvironment.password = props.getProperty("mqPassword");
// ?接?列管理器
MQQueueManager qMgr = new MQQueueManager(props.getProperty("mqQManager"));
int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_FAIL_IF_QUIESCING;
// 打?MQ?列
MQQueue q = qMgr.accessQueue(props.getProperty("mqLocalInQueue"), openOptions);
MQGetMessageOptions mgo = new MQGetMessageOptions();
mgo.options |= MQC.MQGMO_NO_WAIT;
MQMessage msg = new MQMessage();
if ((msg = fetchOneMsg(q)) != null) {
byte[] xmlData = new byte[msg.getDataLength()];
msg.readFully(xmlData);
logger.info(new String(xmlData));
}
// ???列
q.close();
// ???列管理器
qMgr.disconnect();
} catch (MQException e) {
logger.error(e);
e.printStackTrace();
} catch (Exception e) {
logger.error(e);
e.printStackTrace();
}
}
/**
* 从?列中取出一个消息
*
* @param q
* ?列名称
* @return
* @throws Exception
*/
private static MQMessage fetchOneMsg(MQQueue q) throws Exception {
MQGetMessageOptions mgo = new MQGetMessageOptions();
mgo.options |= MQC.MQGMO_NO_WAIT;
MQMessage msg = new MQMessage();
try {
// ?取消息
q.get(msg, mgo);
} catch (MQException e) {
return null;
}
return msg;
}
}
发表评论
-
java中HelloWorld的执行流程
2017-03-12 23:23 578HelloWorld.java是我们学习java的第一个程 ... -
单例模式的好处?
2016-11-14 19:28 549单例的好处?啥时候不能用单例? 优点:单例模式保 ... -
lombok精简代码
2016-03-16 16:29 807最近项目组在重构目前的工程,将H5的后台服务和PC上的服务合 ... -
java中的Vector类
2014-10-19 21:08 756这两天看书两遇到这个类,索性把这个类整理一下来研究研究。看看 ... -
java事务的原理和应用
2014-09-27 10:52 676深入Java事务的原理与 ... -
java简单工厂模式解释
2014-09-25 11:23 664简单工厂模式解释: ... -
java多线程和线程池
2014-09-24 14:39 6891. 引言 合理利用线程池能够带来三个好处。第 ... -
windows7在java1.5输出当前时间问题解决方法 .
2012-09-26 19:24 1199Windows7在稳定性和可靠性上确实做的比较成功,但是搞 ... -
java中File的delete()方法删除文件失败的原因
2011-11-18 21:14 24329一般来说 java file.delete失败 有以下几个 ... -
svn Locked的几种解决方法
2011-09-15 20:20 1059SVN错误:Attempted to lock an ... -
Java导出PDF文档
2011-01-13 16:41 1257package tj; import java.awt. ... -
Java导出Excel文档
2011-01-13 16:40 1219package tj; import java.io ... -
Java导出Word文档(可设置字体)
2010-12-20 11:01 12415前天由于新需求需要从java中导出word,然后就从网上开始搜 ... -
oracle函数
2010-12-02 11:21 799PL/SQL单行函数和组函数 ... -
Tomcat:IOException while loading persisted sessions: java.io
2010-10-30 10:44 843Tomcat在启动时出现如下异常问题: 严重: IOExce ... -
oracle中创建Sequence和Trigger的SQL语句
2010-10-26 15:11 2733//建Sequence create sequence ST ... -
全方位解析 Web Services 开发步骤
2010-10-15 16:24 987基本开发环境 操作系 ... -
关于y--==6的程序分析
2010-09-19 16:22 893int x= 1, y = 6; while (y- ... -
判断整数是否为质数的原理
2010-09-19 11:00 1813关于判断是否为质数,有个简单的方法就是:用2到[根号N](中括 ... -
Singleton和Prototype区别
2010-09-17 20:20 1567默认情况下,从bean工厂所取得的实例为Singleton(b ...
相关推荐
在本主题中,我们重点关注IBM MQ与Java的集成,即"IBM_MQ_JAVA程序例子"。 首先,我们要理解的是IBM MQ的核心概念——队列管理器(Queue Manager),它是IBM MQ系统中的核心组件,负责处理消息的存储、路由和传递。...
MQ系列是IBM提供的消息队列服务,它通过消息模型实现了应用之间的解耦。消息队列允许应用程序将数据作为消息放入队列,然后由其他应用程序在合适的时间取出处理,这极大地提高了系统的稳定性和可靠性。 在Java中,...
在编程时,你可以使用IBM MQ的Java API来操作这些队列和消息。例如,你可以创建一个`Message`对象,设置其`report`属性为`MQRO_COA`或`MQRO_COD`,然后将这个消息放入发送队列。IBM MQ的Java API会负责处理消息的...
在提供的压缩包文件中,`mq.java`可能是实现IBM MQ Java API的示例代码。IBM MQ提供了丰富的Java API,使得开发者可以通过编程方式轻松地进行消息的发送和接收。以下是一个简单的`put`操作示例: ```java import ...
"IBM MQ 8.0 Jar包"正是为了这个目的,包含了运行和构建与IBM MQ 8.0版本兼容的Java应用所需的类库。 这个压缩包文件包含了以下几个关键部分: 1. **lib**:这是一个包含32位(或i386架构)JAR文件的目录。这些...
通过IBM MQ Demo,开发者可以学习如何在实际场景中使用消息队列,例如实现系统间的解耦,提高应用程序的响应速度,以及实现故障恢复策略。此外,IBM MQ Demo还可以帮助开发者理解如何将IBM MQ集成到现有系统中,如...
在“IBM WebSphere MQ 多种代码事例”中,我们可以预期包含多个示例,这些示例可能涵盖使用不同编程语言(如Java、C、C++等)与MQ交互的各种场景。以下是一些可能的知识点: 1. **MQ安装与配置**:首先,你需要理解...
本项目"jms-spring3-ibmmq"是关于如何在Spring 3.2.x框架下集成JMS 1.0.2版本和IBM MQ的一个实例教程。 1. **JMS 1.0.2 知识点**: - JMS 是Java平台用于企业级应用间消息传递的API,支持点对点(Point-to-Point,...
该书适用于 IBM WebSphere MQ Version 6.0 及其后续版本,包括 IBM WebSphere MQ for z/OS Version 6.0。书中详细阐述了如何使用 Java 接口与 WebSphere MQ 进行交互,为开发人员提供了深入的技术指导。 #### 二、...
IBM提供了多个样本应用,用以演示如何使用WebSphere MQ Java类。通过运行这些样本应用,开发者可以验证自己的环境配置是否正确,并学习到实际的编码技巧。 ##### (三)解决WebSphere MQ基础Java问题 在实践中,...
在本主题中,我们将聚焦于“MQ发送消息”的源代码实现,特别是与Java编程语言和IBM的WebSphere MQ(也称为IBMMQ)相关的知识。 首先,我们需要理解MQ的基本概念。消息队列是一种中间件,它接收来自生产者的消息,并...
在Java中,我们可以使用多种库来与MQ进行交互,如Apache ActiveMQ、RabbitMQ、IBM WebSphere MQ等。本实例将主要探讨Java向MQ发送消息的三种常见方法。 1. **JMS(Java Message Service)接口** JMS是Java平台定义...
学习IBM WebSphere MQ 7.5的基本用法对于理解消息中间件的工作原理和实现在分布式系统中的应用至关重要。通过深入研究和实践,你可以更好地掌握如何在企业环境中利用WMQ实现可靠、高效的数据交换。
这个“0101_tsh银行.rar”压缩包显然包含了与IBM MQ服务器相关的Java接口调用代码,使得开发者能够通过编程的方式与MQ服务进行交互,从而实现数据的获取和发送。 首先,我们要理解IBM MQ的基本概念。IBM MQ提供了一...
【WebSphere MQ开发JMS】涉及的关键知识点包括Java消息服务(JMS)、Enterprise JavaBean (EJB)、无状态会话Bean(Stateless Session Bean,SSB)、消息驱动Bean(Message-Driven Bean,MDB)、Java Naming and ...
以下是一个使用IBM MQ Java API的简单客户端示例,展示了如何连接到服务器并发送消息: ```java import com.ibm.mq.*; public class Client { public static void main(String[] args) { String hostName = "192...
WebsphereMQ,又称为IBM MQ,是一款由IBM开发的消息中间件,用于在不同系统、应用之间传递消息,实现异构环境下的数据通信。这款软件是企业级集成的关键组件,确保了数据传输的可靠性和安全性。 在使用WebsphereMQ...
5. **程序实现**:通过Java API(如com.ibm.mq.*包)进行消息的put和get操作。在Java代码中,可以看到如何设置主机名、通道、队列管理器和队列名称,以及建立MQQueueManager实例,使用MQQueue对象进行消息的投入和...
总的来说,MQ Java基础编程涉及到Java客户端的创建、JMS与MQ之间的消息转换、在WebSphere Application Server中的配置,以及使用IBM提供的Java API进行消息操作。通过这个基础,你可以构建更复杂的应用,利用MQ实现...