Spring整合IBM MQ怎么监听多个消息通道发送接收消息
<bean id="receiveQueue" class="com.ibm.mq.jms.MQQueue">
    <property name="baseQueueName" value="${mq.inQueue}" />
</bean>
<!-- 发送消息队列-->
<bean id="sendQueue" class="com.ibm.mq.jms.MQQueue">
    <property name="baseQueueName" value="${mq.outQueue}"/>
</bean>

怎么配置多个消息通道呢

1个回答

应该是建立多个bean的实例

qq_26182739
搬砖盖楼 已经这么做了,但是还没有开始测试,现在是要监听多个队列管理器的多个通道消息
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Spring整合JMS、IBM MQ发送和接收消息
最近才接触到MQ,由于之前完全不知道是干嘛用的,还是很花了一点时间研究的~先来简单解释一下名词啦一、名词解释 MQMQ(message queue)指消息队列,是应用程序对应用程序的通信方法。可以利用消息队列暂存数据报文。 MQ的原理其实就是生产者-消费者模式。有关生产者-消费者模式的详细解释可以看这篇博文http://blog.csdn.net/yolanda_nuonuo/article/de
IBM WebSphere MQ发送消息和接收消息
package com.imp; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List; import com.ibm.mq.MQC; import com.ibm.mq.MQEnvironment; import com.ibm.mq.MQGetMessageOptions; imp
Java 接收IBM mq队列消息
void getConnectInfo() throws MQException { if(qMgr==null){ getInfo(); MQEnvironment.hostname = hostname;//主机IP MQEnvironment.channel = channel;//连接通道名字
ibm mq 发送读取消息问题
如题:在实际工作中,比如有10人在线。现在A用户发送信息给B用户,然后在线的其他用户都不能看到(收到)此信息;左右B用户才能收到A发送的消息。需要怎么做啊???
IBM Websphere MQ _02 MQ消息队列、通道、消息的创建及传输
准备条件: 1)  IBM MQ消息中间件软件安装完毕,详见文件夹下TXT文档 2)  Mqm用户及用户组创建完毕 下面开始建立MQ通道及队列 1、  查看目前已创建的队列:dspmq 2、  由于做本地实验,建立并启动两个队列管理器 分别用于ZHAOCONG发送和ZC接收message消息 创建:crtmqm  ZHAOCONG、crtmqm  ZC 启动:strm
Spring整合ActiveMQ接收消息
操作步骤 第一步:把Activemq相关的jar包,添加到工程中 第二步:创建一个MessageListener的实现类,负责监听 第三步:配置MessageListener监听器 第四步:初始化Spring容器,进行监听 添加jar包 &amp;lt;!-- activemq的jar包 --&amp;gt; &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;org.apac...
MQ发送延时消息
延时消息用于指定消息发送到MQ服务器端后,延时一段时间才被投递到客户端进行消费(例如3秒后才被消费),适用于解决一些消息生产和消费有时间窗口要求的场景,或者通过消息触发延迟任务的场景,类似于延迟队列。 代码示例 public class ProducerDelayTest { public static void main(String[] args) { Proper
MQ发送事务消息
MQ事务消息交互流程如下: 发送事务消息包含以下两个步骤: 发送半消息及执行本地事务 package com.alibaba.webx.TryHsf.app1;import com.aliyun.openservices.ons.api.Message;import com.aliyun.openservices.ons.api.PropertyKeyConst;im
一段同步接收和发送MQ消息的代码
JAVA代码: [code=&quot;java&quot;] package com.sdb.payment.core.mq; import org.apache.log4j.Logger; import com.ibm.mq.MQC; import com.ibm.mq.MQEnvironment; import com.ibm.mq.MQExcep...
MQ发送接收消息完整版本下载
基于Java编写的,SWT界面的完整的发送接收消息。 演示了分组和设置。 最近学习MQ写的,是学习的捷径。
WebSphere MQ发送接收消息_二
WebSphere MQ发送接收消息_二 MQQueueConnectionFactory
JAVA实现MQ发送接收消息详解
JAVA实现MQ发送接收消息详解 MQ配置文档 MQ配置
发送mq消息
在我们开发的过程中,有很多的时候会用到发送消息来通知另一方我们的一些改变,这个时候我们就要来发送mq消息了,首先,我们要先有pid,topic,tag,这些是我们发消息的时候要用的,然后要配置一下。 然后写一个producer继承ONSProducer,然后将你配置的要用到的tag写在这里,然后继承一下你所要用的发送mq消息的方法。 然后接收消息的人拿同样的topic和ta...
Active MQ发送/接收消息的顺序问题
场景: A系统以一个生产者向Queue里连续发送了两条消息(消息1、消息2) B系统以一个消费者监听Queue,结果是先收到的消息2,再收到的消息1   目前这个问题正在调查…… 疑问1:对某个Queue只配置一个消费者,是否意味着只有一个线程在处理消息呢?...
WebSphere MQ安装配置,java发送接收消息
一.准备工作 二.创建MQ队列管理器,本地队列,通道 三.验证MQ是否配置成功 四.java发送接收消息
MQ 发送通道 和 接收通道, ping不通?
IBM WebSphere MQ自带的实例子,配置不通,请高手指教。rn例子2)将消息发送至远程队列:rn1)在A机,创建队列管理rn新建->队列管理器rn名称:QM_ORANGE rn勾选 使此队列管理器成为缺省队列管理器rn确保选择自动启动队列管理器rnTCP/IP侦听器复选框rn侦听端口号:1414rn2)在B机,创建队列管理rn新建->队列管理器rn名称:QM_APPLErn勾选 使此队列管理器成为缺省队列管理器rn确保选择自动启动队列管理器rnTCP/IP侦听器复选框rn侦听端口号:1414rn2.1)在B机,创建队列rn新建->本地的队列rn名称:Q1rnrn3)在A机,创建队列rn展开QM_ORANGErn新建->远程队列定义rn名称1rn远程队列字段中,输入Q1rn远程队列管理器字段中,输入QM_APPLErn传输队列字段中,输入QM_APPLErn3.1)新建->本地的队列rn名称:QM_APPLErn用途:传输rnrn4)在B机,QM_APPLE上创建通道的接收方端:rn通道->新建接收方通道rn在名称字段中,输入 QM_ORANGE.QM_APPLErnrn5)在A机,QM_ORANGE上创建通道的发送方端:rn通道->新建发送方通道rn在名称字段中,输入 QM_ORANGE.QM_APPLErn连接名称:B机IP(192.168.1.5)rn在传输队列字段中,输入 QM_APPLErn启动QM_ORANGE.QM_APPLErnrn------------------------------------------------rnMQ 发送通道 和 接收通道 ping 唔通?rn名一样的,设置没问题rnrn出现以下的错误信息:rn远程系统不可用。无法为远程系统分配对话 (AMQ4061)rnrn帮帮手呀! rnrnrn继:加上端口号了,发送方:192.168.1.5(1414) 出现以下问题:rn把端口加上了,再ping 就出现以下的错误:rn此请求从底层的API或拿住请求中接收到意外原因码。原因码为2195. (AMQ4048)rnrnrn在ERROR LOG文档中有以下信息:rn----- amqxfdcp.c : 821 --------------------------------------------------------rn17/8/2010 09:44:55 - Process(4644.37) User(Administrator) Program(javaw.exe)rn Host(NB03)rnAMQ6125: 发生了内部 WebSphere MQ 错误。rnrn说明:rn发生有关标识 893 的内部错误。此消息与其他消息一起发出。rn操作:rn请使用随系统提供的标准设施来记录问题标识,并保存生成的输出文件。使用 WMQ 支持站rn点(http://www.ibm.com/software/integration/wmq/support/)或 IBM SupportrnAssistant(ISA)站点(http://www.ibm.com/software/support/isa/)来查看是否已有rn可用的解决方案。如果找不到匹配项,请与 IBM 支持中心联系。解决此问题后再废弃这些rn文件。 rn----- amqxfdcp.c : 777 --------------------------------------------------------rn17/8/2010 09:44:55 - Process(4644.37) User(Administrator) Program(javaw.exe)rn Host(NB03)rnAMQ6183: 发生了内部 WebSphere MQ 错误。rnrn说明:rn检测到错误,并调用了 WebSphere MQ 错误记录例程。失败的进程是进程 4644。rn操作:rn请使用随系统提供的标准设施来记录问题标识,并保存生成的输出文件。使用 WMQ 支持站rn点(http://www.ibm.com/software/integration/wmq/support/)或 IBM SupportrnAssistant(ISA)站点(http://www.ibm.com/software/support/isa/)来查看是否已有rn可用的解决方案。如果找不到匹配项,请与 IBM 支持中心联系。解决此问题后再废弃这些rn文件。 rn----- amqxfdcp.c : 821 --------------------------------------------------------rn17/8/2010 09:44:55 - Process(4644.37) User(Administrator) Program(javaw.exe)rn Host(NB03)rnAMQ6091: 发生了内部 WebSphere MQ 错误。rnrn说明:rn专用内存检测到错误,并由于 invalid tail tag 而异常结束。错误数据为 617132552。rn操作:rn请使用随系统提供的标准设施来记录问题标识,并保存生成的输出文件。使用 WMQ 支持站rn点(http://www.ibm.com/software/integration/wmq/support/)或 IBM SupportrnAssistant(ISA)站点(http://www.ibm.com/software/support/isa/)来查看是否已有rn可用的解决方案。如果找不到匹配项,请与 IBM 支持中心联系。解决此问题后再废弃这些rn文件。 rn-------------------------------------------------------------------------------rn17/8/2010 09:44:55 - Process(4644.37) User(Administrator) Program(javaw.exe)rn Host(NB03)rnAMQ6183: 发生了内部 WebSphere MQ 错误。rnrn说明:rn检测到错误,并调用了 WebSphere MQ 错误记录例程。失败的进程是进程 4644。rn操作:rn请使用随系统提供的标准设施来记录问题标识,并保存生成的输出文件。使用 WMQ 支持站rn点(http://www.ibm.com/software/integration/wmq/support/)或 IBM SupportrnAssistant(ISA)站点(http://www.ibm.com/software/support/isa/)来查看是否已有rn可用的解决方案。如果找不到匹配项,请与 IBM 支持中心联系。解决此问题后再废弃这些rn文件。 rn----- amqxfdcp.c : 821 --------------------------------------------------------
RabbitMQ消息队列+spring监听mq服务器,接收消费mq消息
最近soa项目要和官网系统对接,实现mq信息监听,保存等一些列操作。项目用的是Maven+SSM框架。然后学习和开发用了两天时间,算是搞定,趁加班时间做个总结。
WinForm怎么发送和接收消息?
form1中有一个button1和一个textbox1,form2中有一个textbox2rn在textbox1输入后点击button1,此时发个消息给form2,form2收到后将textbox2的值改成textbox1的值,然后form2发回一个消息给form1,form1根据接收的值判断form2是否修改成功rn请问怎么实现?
JAVA IBM MQ 接收、发送
JAVA IBM MQ 接收消息、发送消息例子
IBM MQ消息的传递过程
来,让我用接地气的、通俗的语言描述一下IBM MQ消息的传递过程。 JAVA的,每个字描述都很严谨,有问题欢迎指正,欢迎交流。 消息从A系统【10.10.10.1】 单向传递到B系统【10.10.10.4】的过程。B到A的按相反的配置,不描述了。 4个系统: A系统【10.10.10.1】:eclipse开发环境 ,主要连接参数:MQserver1【10.10.10.2】的IP、PORT、...
(发送和接收广播消息(电量监听))
(发送和接收广播消息(电量监听)) 实验目的:开发一个程序,用SF+学号为项目名称,创建一个android应用程序项目,实现功能:当电池电量低于5%时给出提示(提示:根据电池电量变化Action,Intent对象能获取的电池电量的额外信息, “level”:表示当前电量(整数),“scale”:表示电量的总刻度(整数))。 实验步骤: ①创建监听者 //一些头文件 import android.c...
IBM WebSphere MQ消息持久化
描述MQ消息持久化,在队列管理器发生异常时,传送到队列中的信息怎样通过日志将信息恢复到队列中。
IBM MQ 放消息出错
MQJE001: 完成代码为 '2',原因为 '2539'。rn初使化MQ出错rncom.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2539'。rn at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:233)rn at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)rn at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)rn at com.ibm.mq.StoredManagedConnection.(StoredManagedConnection.java:95)rn at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)rn at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:882)rn at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:770)rn at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:719)rn at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:175)rn at com.ibm.mq.MQQueueManager.(MQQueueManager.java:647)rn at com.xmgrid.services.mq.MessageByMQ.(MessageByMQ.java:33)rnCaused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2539;AMQ9204: 与主机 '192.168.10.15(1433)' 的连接被拒绝。 [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2539;AMQ9547: 远程通道的类型对于请求的操作不合适。 [3=T33.TCEN]],3=192.168.10.15(1433),5=RemoteConnection.analyseErrorSegment]rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1862)rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1144)rn at com.ibm.mq.MQSESSION.MQCONNX_j(MQSESSION.java:924)rn at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:222)rn ... 10 morernCaused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2539;AMQ9547: 远程通道的类型对于请求的操作不合适。 [3=T33.TCEN]rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.analyseErrorSegment(RemoteConnection.java:3573)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.receiveTSH(RemoteConnection.java:2551)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.initSess(RemoteConnection.java:992)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:685)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:347)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:259)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:144)rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1491)rn ... 13 morernMQJE001: 完成代码为 '2',原因为 '2539'。rnA WebSphere MQ error occurred : Completion code 2 Reason code 2539rncom.ibm.mq.MQException: MQJE001: 完成代码为 '2',原因为 '2539'。rn at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:233)rn at com.ibm.mq.MQClientManagedConnectionFactoryJ11._createManagedConnection(MQClientManagedConnectionFactoryJ11.java:553)rn at com.ibm.mq.MQClientManagedConnectionFactoryJ11.createManagedConnection(MQClientManagedConnectionFactoryJ11.java:593)rn at com.ibm.mq.StoredManagedConnection.(StoredManagedConnection.java:95)rn at com.ibm.mq.MQSimpleConnectionManager.allocateConnection(MQSimpleConnectionManager.java:198)rn at com.ibm.mq.MQQueueManagerFactory.obtainBaseMQQueueManager(MQQueueManagerFactory.java:882)rn at com.ibm.mq.MQQueueManagerFactory.procure(MQQueueManagerFactory.java:770)rn at com.ibm.mq.MQQueueManagerFactory.constructQueueManager(MQQueueManagerFactory.java:719)rn at com.ibm.mq.MQQueueManagerFactory.createQueueManager(MQQueueManagerFactory.java:175)rn at com.ibm.mq.MQQueueManager.(MQQueueManager.java:647)rn at com.xmgrid.services.mq.MessageByMQ.sendMessage(MessageByMQ.java:62)rn at com.xmgrid.services.mq.MessageByMQ.main(MessageByMQ.java:142)rnCaused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2539;AMQ9204: 与主机 '192.168.10.15(1433)' 的连接被拒绝。 [1=com.ibm.mq.jmqi.JmqiException[CC=2;RC=2539;AMQ9547: 远程通道的类型对于请求的操作不合适。 [3=T33.TCEN]],3=192.168.10.15(1433),5=RemoteConnection.analyseErrorSegment]rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1862)rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1144)rn at com.ibm.mq.MQSESSION.MQCONNX_j(MQSESSION.java:924)rn at com.ibm.mq.MQManagedConnectionJ11.(MQManagedConnectionJ11.java:222)rn ... 11 morernCaused by: com.ibm.mq.jmqi.JmqiException: CC=2;RC=2539;AMQ9547: 远程通道的类型对于请求的操作不合适。 [3=T33.TCEN]rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.analyseErrorSegment(RemoteConnection.java:3573)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.receiveTSH(RemoteConnection.java:2551)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.initSess(RemoteConnection.java:992)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnection.connect(RemoteConnection.java:685)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSessionFromNewConnection(RemoteConnectionSpecification.java:347)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionSpecification.getSession(RemoteConnectionSpecification.java:259)rn at com.ibm.mq.jmqi.remote.impl.RemoteConnectionPool.getSession(RemoteConnectionPool.java:144)rn at com.ibm.mq.jmqi.remote.api.RemoteFAP.jmqiConnect(RemoteFAP.java:1491)rn ... 14 morernException in thread "main" java.lang.NullPointerExceptionrn at com.xmgrid.services.mq.MessageByMQ.sendMessage(MessageByMQ.java:85)rn at com.xmgrid.services.mq.MessageByMQ.main(MessageByMQ.java:142)rn
rabbitmq发送&接收消息
NULL 博文链接:https://xj84.iteye.com/blog/2069929
activemq 发送接收消息
下载apache activemq: http://activemq.apache.org/download-archives.html 选择自己选用版本。 这里本地测试选用window版本 解压zip文件,不做任何修改 /bin目录下有window启动文件 运行activemq.bat启动activemq服务 默认服务连接地址:tcp://localhost:6161...
ActiveMQ发送、接收消息
本文主要以一个简单的示例展示ActiveMQ收发消息:   一、ActiveMQ说明 二、代码示例   一、ActiveMQ说明 1、当前ActiveMQ的最新版本为: ActiveMQ 5.15.3 Release  ====》点击:官网下载ActiveMQ地址   2、下载好之后解压,然后启动ActiveMQ,启动时要根据系统的位数来选择     二、代码示例   ...
发送/接收消息的例子
1、消息发送程序 public class UMProducer { private MessageProducer producer = null; private Connection connection = null; private Session session = null; public void start(){ try{ //自动重连 ...
消息的发送,接收机制
小弟我对于消息的发送和接收机制不大懂,哪位好心的大哥能给我讲解一下啊!!小弟感激不尽!!谢谢
发送接收消息
两个独立的程序,要求一个程序不断的发送消息,另一个程序不断的接收消息,如果接收不到了,告诉用户已停止发送!rnrn 求源码例子!
[003]消息的接收和发送
前面一篇我们做了服务器配置,接下来就是基础的消息交互的实现了。首先我们先了解一下消息交互的过程:当用户向公众账号发送一条消息,并收到公众账号回复的消息。其中消息的“发”、“收”经历了什么过程呢?这是我们必须分析的过程开发者文档给了我们很好的解答。 接收消息:当微信用户向公众账号发送消息时,微信服务器将POST消息账号的XML数据包发送到开发者填写的URL上。 发送消息:对于每一个POST请求,
UDPSocket发送和接收消息
package com.xjh.demo.socket.udp; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.InetAddress; public...
JMS消息的发送和接收
[b]1.JMS消息的发送[/b] [code=&quot;java&quot;]import java.io.Serializable; import java.util.HashMap; import java.util.Iterator; import javax.jms.Destination; import javax.jms.JMSException; import javax.jms.M...
jms 发送接收消息
jms 发送接收消息       jms发送和接收消息的步骤 1.建立连接 ActiveMQConnectionFactory ac = new ActiveMQConnectionFactory(); // ac.setBrokerURL(&quot;tcp://localhost:61616?trace=false&quot;);   ConnectionFacto...
类对象 发送和接收消息
问题1. 类对象如何向创建了它自身的 “父线程”(这么说妥当吗?)发送消息?rn 如果可以发送消息,那类对象如何获知 它的 父窗口是谁?rnrn问题2. 类对象,有消息队列么?rnrn问题3. win32控制台 程序,有没有消息队列? 为什么 PostQuitMessage 控制台程序没有结束。rnrnrn
接收发送图片消息
微信公众平台开发之消息管理是子恒老师《微信公众平台开发》视频教程的第4部。详细讲解了用php开发微信,对微信公众平台中的消息管理开发。内容包含微信关键字回复,多图文消息回复开发,接收图片消息,视频,小视频消息等等。欢迎反馈,微信/QQ:68183131
使用JAVA代码发送MQ消息
这一节介绍使用JAVA发送文本内容至MQ中 首先新建一个项目,导入必要的包,我记得,必要的包有6个,后来用了maven,我就把本地的删了,测试的时候,可以把jar全部丢进去,在MQ安装目录有个JAVA——lib文件夹,里面就是用到的架包了。 新建类RemoteTest 其他都我就不写了,稍后在文尾给个下载地址供大家参考。 /** * 初始化 */ privat
kafka 发送和接收消息
消息中间件kafka 进行消息的分发和接收示例 应用中包含分通道发送和多线程接收
RocketMQ —— 发送和接收消息
文章目录RocketMQ —— 发送和接收消息消费者分类DefaultMQPushConsumer如何使用Consumer的GroupNameNameServerTopic处理流程流量控制DefaultMQPullConsumerConsumer启动关闭流程 RocketMQ —— 发送和接收消息 消费者分类 消费者可分为两种类型 DefaultMQPushConsumer 系统控制读取操作,收...
RabbitMq-发送接收消息
下载安装: windows: rabbit-mq官方文档:rabbit下载 rabbitmq依赖erlang:erlang下载 相关文档:https://jingyan.baidu.com/album/a17d5285173ce68098c8f2e5.html?picindex=1 发送/接收消息: ...
MQ接收消息时怎么检索自己消息
我用的是redhat6.1 64位系统,mq client用的是6.6 64位,服务端不知道什么版本(不知两端版本不一样有没有影响),程序是用C写的,编译成64位程序,我就是用的基本的方法,1.MQ_CONNECT连接到队列管理器,2.MQ_OPEN打开请求队列和应答队列,3.MQPUT发送数据,4.接收数据MQGET。问题来了,具体代码在下边,我接收的时候,别的人说,他们的数据被我接收来了,我就改成根据msgid或CorrelId接收,但是却接收不到任何信息:rn[code=c]rn// 打开队列rnMQLONG MQ_OPEN(PIBMMQINSTANCE pMQInstance)rnrn MQOD vTmpOd = MQOD_DEFAULT; /*MQ Object Descriptor*/rn MQLONG OPEN_OPT;rn //参数rn if(pMQInstance->lStyle == MQ_STYLE_RECV)rn rn OPEN_OPT = (MQLONG)MQOO_INPUT_AS_Q_DEF | (MQLONG)MQOO_FAIL_IF_QUIESCING; rn rn else if(pMQInstance->lStyle == MQ_STYLE_SEND)rn rn OPEN_OPT = (MQLONG)MQOO_OUTPUT | (MQLONG)MQOO_FAIL_IF_QUIESCING; rn rn elsern rn OPEN_OPT = pMQInstance->lStyle;rn rn rn strcpy(vTmpOd.ObjectName,pMQInstance->szQUEUENAME);rn rn pMQInstance->lStatusCode = 0;rn pMQInstance->lReasonCode = 0;rn rn MQOPEN(pMQInstance->hCONN, /*MQ Connection*/rn &vTmpOd, /*MQ Object Descriptor*/rn OPEN_OPT, /*MQ Open options*/rn &(pMQInstance->hQUEUE), /*MQ Object*/rn &(pMQInstance->lStatusCode), /*MQ Completion code*/rn &(pMQInstance->lReasonCode)); /*MQ Reason code*/rnrn if((pMQInstance->lStatusCode != MQCC_OK) || (pMQInstance->lReasonCode != MQRC_NONE))rn rn sprintf(pMQInstance->szError,"MQOPEN failured! and with completion code %d,reason code %d",pMQInstance->lStatusCode,pMQInstance->lReasonCode);rn return pMQInstance->lReasonCode;rn rnrn sleep(1);rn return (MQCC_OK);rnrn// 发送数据rnMQLONG MQ_SEND(PIBMMQINSTANCE pMQInstance,const char *pszBuffer,MQLONG iSendLength)rnrn MQMD vMQMD = MQMD_DEFAULT; /* Message Descriptor*/rn MQPMO vMQPMO = MQPMO_DEFAULT; /* Put message options*/rn rn memcpy(vMQMD.Format,MQFMT_STRING, (size_t)MQ_FORMAT_LENGTH); /* character string format*/rn strcpy(vMQMD.ReplyToQ,pMQInstanceRecv->szQUEUENAME); /* 接收队列*/rn vMQMD.MsgType = MQMT_REQUEST;rn rn vMQPMO.Options |= MQPMO_NEW_MSG_ID;rn vMQPMO.Options |= MQPMO_NEW_CORREL_ID;rnrn pMQInstance->lStatusCode = 0;rn pMQInstance->lReasonCode = 0;rn rn MQPUT(pMQInstance->hCONN, /*MQ Connection*/rn pMQInstance->hQUEUE, /*MQ Object*/rn &vMQMD, /*MQ Message descriptor*/rn &vMQPMO, /*MQ Put options(datagram)*/rn iSendLength, /*MSG Length*/rn (char *)pszBuffer, /*USER Message buffer*/rn &(pMQInstance->lStatusCode), /*MQ Completion code*/rn &(pMQInstance->lReasonCode)); /*MQ Reason code*/rn rn if((pMQInstance->lStatusCode != MQCC_OK) || (pMQInstance->lReasonCode != MQRC_NONE))rn rn sprintf(pMQInstance->szError,"MQPUT failured! and with completion code %d,reason code %d",pMQInstance->lStatusCode,pMQInstance->lReasonCode);rn return pMQInstance->lReasonCode;rn rn rn // 保存消息IDrn memcpy(pMQInstance->usMsgId,vMQMD.MsgId,MQ_MSG_ID_LENGTH);rn memcpy(pMQInstance->usCorrelId,vMQMD.CorrelId,MQ_MSG_ID_LENGTH);rnrn usleep(2);rn return (MQCC_OK);rnrn// 接收数据rnMQLONG MQ_RECV(PIBMMQINSTANCE pMQInstance,char *pszBuffer,MQLONG *piRecvLength)rnrn MQLONG lRecvLength; /* Recv Length*/rn MQLONG lMsgLength; /* Msg Length*/rn rn MQMD vMQMD = MQMD_DEFAULT; /* Message Descriptor*/rn MQGMO vMQGMO = MQGMO_DEFAULT; /* Get message options*/rn rn vMQGMO.Options = MQGMO_WAIT + /* Wait for new messages*/rn MQGMO_CONVERT; /* Convert if necessary*/rn /*vMQGMO.WaitInterval = MQWI_UNLIMITED; WaitTime second limit for waiting*/rn vMQGMO.WaitInterval = 60000;rn rn vMQGMO.MatchOptions = MQMO_MATCH_CORREL_ID; /* 按消息ID接收 */rn rn memcpy(vMQMD.Format,MQFMT_STRING, sizeof(vMQMD.Format)); /* character string format*/rn memcpy(vMQMD.MsgId,MQMI_NONE,sizeof(vMQMD.MsgId)); /* reset MsgId to get a new one*/rnrn [color=#FF0000]memcpy(vMQMD.CorrelId,pMQInstanceSend->usCorrelId, MQ_MSG_ID_LENGTH);/*如果这条注释掉就没问题*/[/color]rn rn vMQMD.Encoding = MQENC_NATIVE; /* default*/rn vMQMD.CodedCharSetId = MQCCSI_Q_MGR; /* default*/rn rn lRecvLength = (MQLONG)(*piRecvLength);rn rn pMQInstance->lStatusCode = 0;rn pMQInstance->lReasonCode = 0;rn rn MQGET(pMQInstance->hCONN, /*MQ Connection*/rn pMQInstance->hQUEUE, /*MQ Object*/rn &vMQMD, /*MQ Message descriptor*/rn &vMQGMO, /*MQ Gut options(datagram)*/rn lRecvLength, /*RCV Length*/rn (char *)pszBuffer, /*USER Message buffer*/rn &lMsgLength, /*RECVED Length*/rn &(pMQInstance->lStatusCode), /*MQ Completion code*/rn &(pMQInstance->lReasonCode)); /*MQ Reason code*/rn rn *piRecvLength = lMsgLength;rnrn if((pMQInstance->lStatusCode != MQCC_OK) || (pMQInstance->lReasonCode != MQRC_NONE))rn rn if(pMQInstance->lReasonCode == MQRC_NO_MSG_AVAILABLE)rn /* special report for normal end */rn sprintf(pMQInstance->szError,"MQGET failured!ERR:No more messages!\0\0\0");rn rn else if(pMQInstance->lReasonCode == MQRC_TRUNCATED_MSG_FAILED) rn /* treat truncated message as a failure for this call */rn sprintf(pMQInstance->szError,"MQGET failured!ERR:The message is out of the buffer!\0\0\0");rn rn elsern rn sprintf(pMQInstance->szError,"MQGET failured! and with completion code %d,reason code %d",pMQInstance->lStatusCode,pMQInstance->lReasonCode);rn rn return pMQInstance->lReasonCode;rn rn usleep(2);rn return (MQCC_OK); rn[/code]rnrn请高手帮忙给找一下原因,弄了好几天了,各种方法都试了,只要给msgid ,CorrelId赋值就不行,而且我把从服务端接收到的msgid ,CorrelId打印出来,和我的msgid值不一样,是什么原因不接收不到数据呢,请指教
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件