放置消息

  • 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;
    • /**
    • * 发送消息程序
    • */
    • public class Send {
    • public static void main(String[] args) {
    • try {
    • // 主机名称
    • String hostName = "192.168.1.101";
    • // 端口(缺省 1414)
    • int port = 1515;
    • // 通道名称(缺省)
    • String channel = "SYSTEM.DEF.SVRCONN";
    • // 队列管理器名称
    • String qManager = "send";
    • // 队列名称 (远程队列名)
    • String qName = "Q1";
    • // Set up the MQEnvironment properties for Client Connections.
    • // 建立MQEnvironment 属性以便客户机连接.
    • MQEnvironment.hostname = hostName;
    • MQEnvironment.port = port;
    • MQEnvironment.channel = channel;
    • MQEnvironment.properties.put(MQC.TRANSPORT_PROPERTY, MQC.TRANSPORT_MQSERIES);
    • MQEnvironment.CCSID = 1381;
    • // Connection To the Queue Manager.
    • // 连接到队列管理器.
    • MQQueueManager qMgr = new MQQueueManager(qManager);
    • /**
    • * Set up the open options to open the queue for out put
    • * and additionally we have set the option to fail if the queue manager
    • * is quiescing.
    • *
    • * 建立打开选项以便打开用于输出的队列,进一步而言,如果队列管理器是
    • * 停顿的话,我们也已设置了选项去应对不成功情况.
    • */
    • int openOptions = MQC.MQOO_OUTPUT | MQC.MQOO_FAIL_IF_QUIESCING;
    • // Open the queue.
    • // 打开队列.
    • MQQueue queue = qMgr.accessQueue(qName, openOptions, null, null,
    • null);
    • // Set the put message options , we will use the default setting.
    • // 设置放置消息选项我们将使用默认设置.
    • MQPutMessageOptions pmo = new MQPutMessageOptions();
    • /**
    • * Next we Build a message The MQMessage class encapsulates the data
    • * buffer that contains the actual message data, together with all the MQMD
    • * parameters that describe the message.
    • *
    • * 下一步我们建立消息,MQMessage类压缩了包含实际消息数据的数据缓冲区,
    • * 和描述消息的所有MQMD 参数.
    • *
    • * To Build a new message, create a new instance of MQMessage class
    • * and use writxxx (we will be using writeString method).
    • * The put() method of MQQueue also takes an instance of the
    • * MQPutMessageOptions class as a parameter.
    • *
    • * 欲建立新消息,创建MQMessage类新实例以及使用writxxx(我们将使用writeString 方法.).
    • * MQQueue 的put()方法也可作为参数MQPutMessageOptions 类的实例.
    • */
    • // Create The message buffer.
    • // 创建消息缓冲区.
    • MQMessage outMsg = new MQMessage();
    • // Set the MQMD format field.
    • // 设置MQMD 格式字段.
    • outMsg.format = MQC.MQFMT_STRING;
    • // Prepare message with user data.
    • // 准备用户数据消息.
    • String msgString = "HEAD7C5218991310615536   BOCOMC     0100521899        200909170720470020090917101000000022164428000000020000000000000000000000020000  1110408715  0000    0 1564439990000044399900000                          1 1  000                                               DOMN200909170720470016100115400000000156          HA1310011130028738445 AT032007101900000068835700000110000000000000000020090915000000010000000000431643000000000000                       PENG PING          6532CAFCR102                                                                    000281548016372856DQPD        2007100120071030                               000002000000000000000000000068835700000110000000000000000000000001000000000043164300000048411900000010000000620090917072055550                                                                                                                                      19790117                                                               518000          20090917000000272977113714719646         1310710130979       MALE                    SSNO180001016790                             MS0000000000                2007101920090912000000002007103001                  0           00000004841192007102004064394C       000000000           TAIL";
    • // Now we put The message on the Queue.
    • // 现在我们在队列上放置消息.
    • outMsg.writeString(msgString);
    • // Commit the transaction.
    • // 提交事务处理.
    • queue.put(outMsg, pmo);
    • qMgr.commit();
    • System.out.println(" The message has been Sussesfully put/n/n#########");
    • // Close the the Queue and Queue manager objects.
    • // 关闭队列和队列管理器对象.
    • queue.close();
    • qMgr.disconnect();
    • } catch (MQException ex) {
    • System.out.println("An MQ Error Occurred: Completion Code is :/t" +
    • ex.completionCode + "/n/n The Reason Code is :/t" + ex.reasonCode);
    • ex.printStackTrace();
    • } catch (Exception e) {
    • e.printStackTrace();
    • }
    • }
    • }
时间: 2024-11-03 20:50:30

放置消息的相关文章

win 消息

Windows消息机制概述 消息是指什么?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.    消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标.这个

Linux环境编程之IPC进程间通信(五):Posix消息队列1

对于管道和FIFO来说,必须应该先有读取者存在,否则先有写入者是没有意义的.而消息队列则不同,它是一个消息链表,有足够写权限的线程可往别的队列中放置消息,有足够读权限的线程可从队列中取走消息.每个消息都是一个记录,它由发送者赋予一个优先级.在某个进程往一个队列写入消息之前,并不需要另外某个进程在该队列上等待消息的到达.消息队列是随内核的持续性,一个进程可以往某个队列写入一些消息,然后终止,再让另外一个进程在以后的某个时刻读出这些消息.这跟管道和FIFO不一样,当一个管道或FIFO的最后一次关闭时

消息队列 Kafka 的基本知识及 .NET Core 客户端

前言 最新项目中要用到消息队列来做消息的传输,之所以选着 Kafka 是因为要配合其他 java 项目中,所以就对 Kafka 了解了一下,也算是做个笔记吧. 本篇不谈论 Kafka 和其他的一些消息队列的区别,包括性能及其使用方式. 简介 Kafka 是一个实现了分布式的.具有分区.以及复制的日志的一个服务.它通过一套独特的设计提供了消息系统中间件的功能.它是一种发布订阅功能的消息系统. 一些名词 如果要使用 Kafka ,那么在 Kafka 中有一些名词需要知道,文本不讨论这些名词是否在其他

进程间通信(二)——Posix消息队列

1.概述 消息队列可认为是消息链表.有足够写权限的线程可以往队列中放置消息,有足够读权限的进程可以从队列中取走消息.每个消息是一个记录,由发送着赋予一个优先级. 在像队列中写入消息时,不需要某个进程在该队列上等待消息到达.这与管道不同,管道必须现有读再有写. 消息队列具有随内核的持续性,与管道不同.进程结束后,消息队列中消息不会消失.当管道最后一次关闭,其中的数据将丢弃. 消息队列具有名字,可用于非亲缘关系的进程间. Posix消息队列读总是返回最高优先级的最早消息,而System V消息队列的

Windows消息机制详解

消息是指什么?      消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉.一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向 Windows发出一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序. 消息本身是作为一个记录传递给应用程序的,这个记录中包含了消息的类型以及其他信息.例如,对于单击鼠标所产生的消息来说,这个记录中包含了单击鼠标时的坐标.这个记录类型叫做MSG,MSG含有来

IPC-----POSIX消息队列

消息队列可以认为是一个链表.进程(线程)可以往里写消息,也可以从里面取出消息.一个进程可以往某个消息队列里写消息,然后终止,另一个进程随时可以从消息队列里取走这些消息.这里也说明了,消息队列具有随内核的持续性,也就是系统不重启,消息队列永久存在. 1.创建/获取一个消息队列 #include <fcntl.h> /* For O_* constants */ #include <sys/stat.h> /* For mode constants */ #include <mq

深度解析VC中的消息(转发)

http://blog.csdn.net/chenlycly/article/details/7586067 这篇转发的文章总结的比较好,但是没有告诉我为什么ON_MESSAGE的返回值必须是LRESULT 摘要: Windows编程和Dos编程,一个很大的区别就是,windows编程是事件驱动,消息传递的.所以,要做好windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的论述,由于小生初学VC,里面可能有一些错误的地方,还往各位大虾批评.指正. 注意:有些消息

windows 消息循环的那些事

本文将结合网上的一些资料及自己的经验.见解,对windows消息机制进行简单的剖析,有不对的地方欢迎指正哈!! 首先,指明一些消息在windows系统中是什么角色: 消息是消息机制中的邮件,用于工作线程与UI线程.窗体与窗体.一个进程对另一个线程的窗体进行通讯.他是win32程序运行的血液,通过消息才能把整个系统关联起来. 消息对应于系统的一个UINT值,也即32位的无符号整形值,例如我们平时会自定义的WM_USER.WM_PAINT等等.它唯一的定义了一个事件,向 Windows发出一个通知,

Windows 消息机制详解

总的来说: MSG包括: 窗口句柄,指示MSG发送的目的窗口 消息标识 lPARAM.wParam 发送时间 发送时的鼠标位置   关于消息队列: Windows系统有一个系统消息队列 每个线程都有一个自己的消 息队列(由于发送消息MSG需 要提供一个窗口HWnd,而基 本有窗口的线程,都是UI线 程),因此基本上如果线程使用了GDI函数,则windows给该线程分配一个线程消息队列,这个消息队列负责该线程的所有窗口的消息.   所有的窗口都有自己的句柄(HWND),消息被发送时,这个句柄就已经