`
q395488499
  • 浏览: 9349 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java与websphere mq的交互

阅读更多
Test Team 一直用 rfhutil 对MQ项目进行测试,而 rfhutil 每次只能对一个 Queue 进行读写操作,一旦有批量的 Queue 需要进行测试时,工作变得特别繁琐。
领导找到我们几个同事,用 java 做了一个测试 MQ 的小工具。
这个测试工具的主要工作流程为:将本地的用作测试的请求数据,发送至 Input MQ,经过MQ项目的内部处理之后,接收 Output MQ 的数据,将这个数据与本地的期望数据进行比对,如果结果为true,则表示测试通过,如果为false,则表示测试失败。另外还有一些零碎的需求,如清空 Output MQ、保存 Output MQ 的数据等。
这里主要讨论该工具中java与mq的交互方式。

1、首先将mq的jar包准备好;



2、1)使用com.ibm.mq.jar下的 MQEnvironment、MQQueueManager、MQQueue等工具类,与MQ建立连接;
   2)建立连接之后,使用 MQMessage、MQGetMessageOptions、MQPutMessageOptions等进行发送和接收数据。
连接类源码如下:
import com.ibm.mq.MQEnvironment;
import com.ibm.mq.MQException;
import com.ibm.mq.MQGetMessageOptions;
import com.ibm.mq.MQMessage;
import com.ibm.mq.MQPutMessageOptions;
import com.ibm.mq.MQQueue;
import com.ibm.mq.MQQueueManager;
import com.ibm.mq.constants.CMQC;

public class MQConnection {

private MQQueueManager mqQueueManager;
private MQQueue defaultQueue;

//建立连接
public MQConnection(String hostName, String channel, String queueManagerName, String queue, int portNumber)

{
MQEnvironment.hostname = hostName;
MQEnvironment.channel = channel;
MQEnvironment.port = portNumber;
int openOptions = CMQC.MQOO_INPUT_AS_Q_DEF | CMQC.MQOO_OUTPUT | CMQC.MQOO_INQUIRE;
try {
mqQueueManager = new MQQueueManager(queueManagerName);
defaultQueue = mqQueueManager.accessQueue(queue, openOptions, null, queue, null);
} catch (MQException e) {
e.printStackTrace();
}
}

//发送数据至MQ
public void placeMessageOnQueue(MQMessage msg, MQPutMessageOptions options)
throws MQException {
defaultQueue.put(msg, options);
}

//从MQ中获取数据
public MQMessage getMessageFromQueue() {
MQMessage msg = new MQMessage();
try {
MQGetMessageOptions mqgetmessageoptions = new MQGetMessageOptions();
mqgetmessageoptions.waitInterval = 0x7a120;
defaultQueue.get(msg, mqgetmessageoptions);
} catch (MQException ex) {
System.out.println("An MQ error occurred : Completion code "
+ ex.completionCode + " Reason code " + ex.reasonCode);
ex.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
return msg;
}

//获取MQ的深度
public int getCurrentDepth() {
try {
return defaultQueue.getCurrentDepth();
} catch (MQException e) {
e.printStackTrace();
}
return 0;
}

//使用示例:
public static void main(String args[]) {

private String inputQueueHost = "此处为有效的IP";
private String inputQueueChannel = "此处为有效的Channel信息";
private String inputQueueManager = "此处为有效的QManager名称";
private String inputQueueName = "此处为有效的QueueName";
private int inputQueuePortNumber = [此处为有效的MQ端口];

FileInputStream fileInputStream = null;
try {
MQConnection mqi = new MQConnection(inputQueueHost,
inputQueueChannel,
inputQueueManager,
inputQueueName,
inputQueuePortNumber);

String inputFilePath = "【此处为有效的文件路径】";
File inputFile = new File(inputFilePath);

fileInputStream = new FileInputStream(inputFile);
byte inputMessageContent[] = new byte[(int)inputFile.length()];
fileInputStream.read(inputMessageContent);
MQMessage message = new MQMessage();
message.setStringProperty("fileName", inputFile.getName());
message.write(inputMessageContent);
MQPutMessageOptions putMessageOptions = new MQPutMessageOptions();
mqi.placeMessageOnQueue(message, putMessageOptions);
} catch (Exception e) {
e.printStackTrace();
System.err.println(e);
} finally {
if(fileInputStream!=null) {
try {
fileInputStream.close();
} catch(Exception e) {
e.printStackTrace();
}
}
}
}
}

只可惜没有 com.ibm.mq 包的源码,无法了解具体的实现方式。
  • 大小: 80.1 KB
分享到:
评论

相关推荐

    Java监控WebSphere MQ 7.5中间件信息

    Java 通过PCF连接WebSphere MQ7.1以上版本获取数据。!!!

    WebSphere MQ自学笔记

    本人自学IBM的WebSphereMQ自学笔记,内有MQ安装文档,...3、WebSphere MQ Java编程实例 11 3.1 开发前步骤 11 3.1.1将消息发送至本地队列 11 3.1.2 将消息发送至远程队列 14 3.1.3 在客户机 - 服务器配置上发送消息 19

    Java下操作IBM Websphere MQ的项目案例

    Java下操作IBM Websphere MQ的项目案例, eclipse工程压缩包, 导入直接可用.

    WebSphere MQ7.0配置与测试(java 源码,含图)

    WebSphere MQ7.0配置与测试 WebSphere MQ发送接收消息的实现 附java 源码

    Websphere MQ入门教程

    12.2.2 WebSphere MQ for Java的运行环境 159 12.3 使用WebSphere MQ for Java 161 12.3.1客户机连接模式 161 12.3.2绑定模式 162 12.3.3 类库 162 12.4用WebSphere MQ Java API开展工作 164 12.4.1 设置连接 164 ...

    非常全面的WebsphereMQ的PDF学习资料

    Websphere MQ Programming Guide,Websphere MQ Using C++,WebSphere MQ Using Java,WEBSPHERE MQ6.0 JAVA编程,WebSphere MQ基础教程,IBM WEBSPHERE MQ教程,精通WebSphere MQ,WebSphere MQ开发快速入门,IBM ...

    IBM WebSphere MQ 安装包

    IBM WebSphere MQ是IBM业界领先面向消息的中间件产品,也是MQ系列产品的基础和核心,它使不同的应用程序能够以企业级的性能,在广泛的平台上安全而可靠地通讯。

    java 开发 IBM WebSphere MQ 最新jar

    Java连接IBM WebSphere MQ 7处理队列信息所需jar包,从安装目录直接打的包。主要包括: /com.ibm.mq.commonservices.jar /com.ibm.mq.defaultconfig.jar /com.ibm.mq.fta.jar /com.ibm.mq.headers.jar /...

    Websphere MQ入门教程7

    全书共分为3部分共14章,第一部分 WebSphere MQ原理和体系结构,分为两章;第二部分 WebSphere MQ系统管理,分为六章,分别介绍安装、配置、管理、控制命令和问题确定;第三部分 WebSphere MQ应用开发,由五章组成,...

    WebSphere MQ Using Java

    WebSphere MQ Using Java,MQ作为一种中间件还是不错的,可以由一个系统发送一些消息给MQ Server,然后另外一个系统来取得这些消息。比较方便的实现不同系统、不同语言间的通信。

    WebSphereMQ_V7.5.0.2_for_Windows(4-1)

    WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...

    IBM Websphere MQ 教程之备份与恢复

    IBM Websphere MQ 教程之备份与恢复

    Websphere MQ using java

    Websphere MQ using java. Websphere MQ class for java and JMS.

    WebSphere MQ 开发培训

    WebSphere MQ 开发培训 IBM软件部 软件部 WebSphere MQ 议程 WebSphere MQ 概览 WebSphere MQ 安装配置 WebSphere MQ 应用开发 WebSphere MQ 参考

    IBM Websphere mq安装

    IBM Websphere mq安装IBM Websphere mq安装

    WebSphereMQ_V7.5.0.2_for_Windows.part2.rar

    WebSphere® MQ (也称MQSeries)以一致的、可靠的和易于管理的方式来连接应用程序,并为跨部门、企业范围的集成提供了可靠的基础。通过为重要的消息和事务提供可靠的、一次且仅一次的传递,Websphere MQ 可以处理...

    aaaa.zip_JAVA Websphere_JAVA接收MQ_WebSphere MQ_websphere_webspher

    Websphere MQ java编程发送和接收代码

    WebSphere MQ V7.0 jar

    WebSphere_MQ_V7.0.1.3 安装目录下\java\doc;\java\lib;\java\lib64. 包含com.ibm.mq.jar,com.ibm.mq.jmqi.jar,com.ibm.mq.axis2.jar,com.ibm.mq.commonservices.jar等等

    WebSphere MQ

    WebSphere MQ WebSphere MQWebSphere MQ WebSphere MQ

    IBM WebSphere MQ 8.0 linux 安装包 part3

    IBM WebSphere MQ 8.0 linux 安装包 part3,IBM WebSphere MQ 8.0 linux 安装包 part3

Global site tag (gtag.js) - Google Analytics