您当前的位置:首页 > 养生 > 内容

ibmmq教程(ibmmq 一个队列可以创建多少个通道)

本文目录

  • ibmmq 一个队列可以创建多少个通道
  • 如何在Wildfly上搭建Ibm mq的消息队列
  • 如何在 JBoss 里配置 IBM MQ
  • 如何正确设置IBM WebSphere MQ 实现群发消息
  • ibm mq 8.0 怎样打开命令控制台
  • 如何用SSL 和IBM MQ 建立连接
  • 使用ibm MQ 在JAVA类中报: NoClassDefFoundError:com/ibm/mq/headers/internal/trace/Names
  • IBM MQ是什么
  • java 怎么样调用IBM MQ 或者通信问题

ibmmq 一个队列可以创建多少个通道

在第一台计算机上创建的消息被传递到第二台计算机上的队列Q1(此队列被称为远程队列)。要点:在本教程中,您将使用创建了队列管理器QM_APPLE和本地队列Q1的机器作为接收机器。您将在发送机器上设置队列管理器和队列(远程队列定义和传输队列)。然后定义消息通道。最后,您将把测试消息放入发送机器,并从接收机器上的队列获取该消息。

如何在Wildfly上搭建Ibm mq的消息队列

消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。

如何在 JBoss 里配置 IBM MQ

安装WebSphere MQ资源适配器:   从安装目录复制wmq.jmsra.rar文件到服务器的部署目录中,例如:《安装路径》/server/default/deploy。此时资源适配器将会自动选择服务器。

安装WebSphere MQ扩展事务客户端:   WebSphere MQ扩展事务客户端允许你使用XA分布式事务,并用客户端模式连接到WebSphere MQ队列管理器。要将客户端安装在JBoss,需要从安装目录复制com.ibm.mqetclient.jar文件到服务器的lib目录中,例如《安装路径》/server/default/lib。

为你的应用程序配置资源适配器:   WebSphere MQ资源适配器允许你定义一些全局的属性。在JBoss中JCA出站流的资源定义在-ds.xml文件,名为wmq.jmsra-ds.xml。此文件的概要如下:

《?xml version=“1.0“ encoding=“UTF-8“?》《connection-factories》《!-- mbeans defining JCA administered objects --》《mbean/》《!-- JCA Connection factory definitions --》《tx-connection-factory/》《/connection-factories》

从上可以看出JCA连接工厂的定义在《tx-connection-factory》元素,而且JMS队列和主题被定义在JCA的管理对象mbean里面。

简单的两个队列-入站和出站的完整示例如下:

在JBoss启动脚本中占位符属性被定义为:-Dchannel=MQTEST -DhostName=localhost -DqueueManager=TST_MGR

配置入站消息传递: 消息传递配置在jboss.xml文件中,这个文件的内容会有所不同,但大致如下:jboss.xml

必须指定目标类型和名称属性。其他属性都是可选的,如果省略,将使用其默认值。

一个简单的MDB定义入站消息如下所示:

如何正确设置IBM WebSphere MQ 实现群发消息

1.现在的问题是建立了共享队列INPUTQ 后,在QMGRI里面压根看不到共享队列。。谁能告诉我为什么么?大哥你怎么看的?QL CLUSTER属性设置对了吗?DEF QL(YOURQNAME) CLUSTER(REPOS_NAME)你看的是QCLUSTER吗?DIS QC(*)2.往一个队列管理器里的队列里发消息,其他的所有对立管理器的本地队列都能收到消息太简单了,注意RFHUTIL里面有个BIND属性,不要设置成OPEN,必须是NOT_FIXED;或者多次使用amqsputc多次打开,不要一次拼命放消息,都可以看到分发效果,默认负载均衡的算法是ROUND_ROBIN3.好了,上面的问题解决了。。不过现在对WebSphere MQ的功能产生了怀疑,我真想捧腹大笑4.应用程序只能主动去询问MQ,指定的队列中有消息否。要是这样的话,那不是要轮询指定的队列?难道不能让MQ将消息直接推送到应用程序么?去看看TRIGGER, MDB有关的资料,我不想费口舌了。当你学会基础之前STOP MAKING JUDGEMENTS.

ibm mq 8.0 怎样打开命令控制台

这个例子的目的是建立可以实现消息传递的一对MQ服务器,它们分别基于NT和UNIX平台。运行MQ控制台命令runmqsc QM_NT运行MQ控制台命令runmqsc QM_UNIX

如何用SSL 和IBM MQ 建立连接

使用到MQ是为了保证各系统之间通信的安全性、可靠性和高效性比如,在传输过程中的消息加密,这就可以用IBM提供好的SSL来完成或者是在非实时接收的消息,在接收方系统因各种原因宕机了,希望在接收方系统一旦恢复使用时,就立即将此消息发送,这个时候也可用到MQ又或者是希望简单地完成各消息服务器传输消息时的负载均衡,IBM的MQ也能方便地完成集群要说更简单一点,就是:银行/政府这种的项目就会用到IBM的MQ因为用IBM产品最最重要的一点:得有钱基本上,现在在中间件市场上份额最大的就属IBM的了

使用ibm MQ 在JAVA类中报: NoClassDefFoundError:com/ibm/mq/headers/internal/trace/Names

1.相关jar包:

com.ibm.mq.commonservices.jar

com.ibm.mq.headers.jar

com.ibm.mq.jar

com.ibm.mq.jmqi.jar

connector.jar

junit-4.4.jar

相关jar可以在ibm mq的安装目录下找到:

2.在mq服务器上创建相应的队列管理器,和队列,以及服务器传输通道。附上操作命令:

--启动队列管理器strmqm  QMEMBFE

--启动监听runmqlsr -m QMEMBFE -p 1414 -t tcp &

--用户交互管理界面程序runmqsc  QMEMBFE--创建本地队列DEFINE QLOCAL (Q1)--创建名称为DC.SVRCONN的服务器连接通道DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE--删除通道DELETE CHANNEL(DC.SVRCONN)

3.使用java编写调用程序:

运行方法:单元测试运行:testMQ

MessageByMQ

 view plain copy

  • import org.junit.After;  

  • import org.junit.Before;  

  • import org.junit.Test;  

  • 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.MQPutMessageOptions;  

  • import com.ibm.mq.MQQueue;  

  • import com.ibm.mq.MQQueueManager;  

  • /** 

  • * 列出常用的错误码:如下: 

  • * 2540:通道定义有错误:《/p》 

  • *      解决方式如下:《/p》 

  • *          1.进入用户交互界面:runmqsc  QMEMBFE(QMEMBFE为队列管理器名称) 

  • *          2.创建相应的服务器连接通道:DEFINE CHANNEL(DC.SVRCONN) CHLTYPE (SVRCONN) REPLACE 

  • * 2035:授权相关错误:解决方式如下: 

  • *      进入用户交互界面:(同上): 

  • *  ALTER CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) MCAUSER(’mqm’) 

  • *  说明:DC.SVRCONN 服务器连接通道名称 mqm为ibm mq用户名称 

  • *  

  • *  

  • *  

  • *  

  • * @author kefan 

  • */  

  • public class MessageByMQ {  

  • /** 

  • * 队列管理器的名称 

  • */  

  • private String qManagerName=“QMEMBFE“;  

  • /** 

  • * 队列管理器 

  • */  

  • private   MQQueueManager qMgr;  

  • /** 

  • * 队列名称 

  • */  

  • private  String queueName=“Q1“;  

  • /** 

  • * 队列 

  • */  

  • private MQQueue qQueue;  

  • /** 

  • * mq服务器所在的主机名称 

  • */  

  • private String hostname=“192.168.233.134“;  

  • /** 

  • * 服务器连接通道名称 

  • */  

  • private String channelName=“DC.SVRCONN“;  

  • /** 

  • * 监听器监听的端口 

  • */  

  • private  int  port=1414;  

  • /** 

  • * 传输的编码类型 

  • */  

  • private  int CCSID = 1381;   

  • @Before  

  • public  void  init(){  

  • try {  

  • MQEnvironment.hostname = this.hostname; // 安装MQ所在的ip address  

  • MQEnvironment.port = this.port; // TCP/IP port  

  • MQEnvironment.channel = this.channelName;  

  • MQEnvironment.CCSID = CCSID;  

  • qMgr = new MQQueueManager(this.qManagerName);  

  • int qOptioin = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_INQUIRE  

  • | MQC.MQOO_OUTPUT;  

  • qQueue = qMgr.accessQueue(queueName, qOptioin);  

  • } catch (MQException e) {  

  • e.printStackTrace();  

  • }  

  • }  

  • /** 

  • * 发送信息 

  • */  

  • public void SendMsg(byte qByte) {  

  • try {  

  • MQMessage qMsg = new MQMessage();  

  • qMsg.write(qByte);  

  • MQPutMessageOptions pmo = new MQPutMessageOptions();  

  • qQueue.put(qMsg, pmo);  

  • System.out.println(“The message is sent!“);  

  • System.out.println(“\tThe message is “ + new String(qByte, “GBK“));  

  • } catch (MQException e) {  

  • e.printStackTrace();  

  • System.out  

  • .println(“A WebSphere MQ error occurred : Completion code “  

  • + e.completionCode + “ Reason Code is “  

  • + e.reasonCode);  

  • } catch (java.io.IOException e) {  

  • e.printStackTrace();  

  • System.out  

  • .println(“An error occurred whilst to the message buffer “  

  • + e);  

  • }  

  • }  

  • /** 

  • * 从消息队列取数据 

  • */  

  • public void GetMsg() {  

  • try {  

  • MQMessage retrievedMessage = new MQMessage();  

  • MQGetMessageOptions gmo = new MQGetMessageOptions();  

  • gmo.options += MQC.MQPMO_SYNCPOINT;  

  • qQueue.get(retrievedMessage, gmo);  

  • int length = retrievedMessage.getDataLength();  

  • byte;  

  • retrievedMessage.readFully(msg);  

  • String sMsg = new String(msg,“GBK“);  

  • System.out.println(sMsg);  

  • } catch (RuntimeException e) {  

  • e.printStackTrace();  

  • } catch (MQException e) {  

  • e.printStackTrace();  

  • if (e.reasonCode != 2033) // 没有消息  

  • {  

  • e.printStackTrace();  

  • System.out  

  • .println(“A WebSphere MQ error occurred : Completion code “  

  • + e.completionCode  

  • + “ Reason Code is “  

  • + e.reasonCode);  

  • }  

  • } catch (java.io.IOException e) {  

  • System.out  

  • .println(“An error occurred whilst to the message buffer “  

  • + e);  

  • }  

  • }  

  • /** 

  • * 单元测试方法 

  • */  

  • @Test  

  • public  void  testMQ(){  

  • MessageByMQ mqst = new MessageByMQ();  

  • mqst.init();  

  • try {  

  • mqst.SendMsg(“你好,Webshpere MQ 7.5!“.getBytes(“GBK“));  

  • mqst.GetMsg();  

  • } catch (Exception e) {  

  • e.printStackTrace();  

  • }  

  • }  

  • /** 

  • * 释放资源 

  • */  

  • @After  

  • public  void  release(){  

  • try {  

  • qQueue.close();  

  • qMgr.disconnect();  

  • } catch (MQException e) {  

  • System.out  

  • .println(“A WebSphere MQ error occurred : Completion code “  

  • + e.completionCode + “ Reason Code is “  

  • + e.reasonCode);  

  • }     

  • }  

  • }  

IBM MQ是什么

IBM MQ 消息队列(MQ)是一种应用程序对应用程序的通信方法。应用程序通过写和检索出入列队的针对应用程序的数据(消息)来通信,而无需专用连接来链接它们。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过直接调用彼此来通信,直接调用通常是用于诸如远程过程调用的技术。排队指的是应用程序通过队列来通信。队列的使用除去了接收和发送应用程序同时执行的要求。IBM WebSphere MQ 产品支持应用程序通过不同组件如处理器、子系统、操作系统以及通信协议的网络彼此进行通信。例如,IBM WebSphere MQ 支持 35 种以上的不同操作系统。IBM WebSphere MQ 支持两种不同的应用程序编程接口:Java 消息服务(JMS)和消息队列接口(MQI)。在 IBM WebSphere MQ 服务器上,JMS 绑定方式被映射到 MQI。如图 3 所示,应用程序直接与其本地队列管理器通过使用 MQI 进行对话,MQI 是一组要求队列管理器提供服务的调用。MQI 的引人之处是它只提供 13 次调用。这意味着对于应用程序编程员它是一种非常易于使用的接口,因为大部分艰苦工作都将透明完成的

java 怎么样调用IBM MQ 或者通信问题

websphere mq  : 用于传输信息 具有跨平台的功能。1 安装websphere mq 并启动2 websphere mq 建立 queue Manager (如:MQSI_SAMPLE_QM)3 建立queue 类型选择 Local类型 的 (如lq  )3 建立channels 类型选择Server Connection (如BridgeChannel)

java 代码如下:package test.mq;import com.ibm.mq.*;/* * 成功的访问mq 的java 类 */public class FirstMqTest {//    public static void main(String){//        FirstMqTest first = new FirstMqTest();//        first.test();//    }    public static void main(String args){        FirstMqTest first = new FirstMqTest();        first.test();            }    public void test(){        String qManager = “MQSI_SAMPLE_QM“; //QueueManager name          String qName = “lq“;//Queue Name          try {                    //configure connection parameters                    MQEnvironment.hostname=“172.16.17.123“;//MQ Server name or IP                    //MQEnvironment.port=1414;//listenr port                    MQEnvironment.channel=“BridgeChannel“;//Server-Connection Channel                    MQEnvironment.CCSID =1381;                    // Create a connection to the QueueManager                    System.out.println(“Connecting to queue manager: “+qManager);                    MQQueueManager qMgr = new MQQueueManager(qManager);                    // Set up the options on the queue we wish to open                     int openOptions = MQC.MQOO_INPUT_AS_Q_DEF | MQC.MQOO_OUTPUT;                    // Now specify the queue that we wish to open and the open options                    System.out.println(“Accessing queue: “+qName);                    MQQueue queue = qMgr.accessQueue(qName, openOptions);                    // Define a simple WebSphere MQ Message ...                     MQMessage msg = new MQMessage();                    // ... and write some text in UTF8 format                    msg.writeUTF(“Hello, World!“);                    // Specify the default put message options                    MQPutMessageOptions pmo = new MQPutMessageOptions();                    // Put the message to the queue                    System.out.println(“Sending a message...“);                                        /*                     * 在此测试一下 mq 的传输次列                     *                      */                     for(int j=0;j《 5;j++){                         String str =“test11111111111“;                         str = str+j;                         msg.writeUTF(str);                         queue.put(msg, pmo);                     }                    queue.put(msg, pmo);                    // Now get the message back again. First define a WebSphere MQ message                     // to receive the data                     MQMessage rcvMessage = new MQMessage();                                        // Specify default get message options                     MQGetMessageOptions gmo = new MQGetMessageOptions();                    // Get the message off the queue.                    System.out.println(“...and getting the message back again“);                    queue.get(rcvMessage, gmo);                    // And display the message text...                    String msgText = rcvMessage.readUTF();                    System.out.println(“The message is: “ + msgText);                    // Close the queue                    System.out.println(“Closing the queue“);                    queue.close();                    // Disconnect from the QueueManager                    System.out.println(“Disconnecting from the Queue Manager“);                    qMgr.disconnect();                    System.out.println(“Done!“);                }                catch (MQException ex) {                    System.out.println(“A WebSphere MQ Error occured : Completion Code “                            + ex.completionCode + “ Reason Code “ + ex.reasonCode);                }                catch (java.io.IOException ex) {                    System.out.println(“An IOException occured whilst writing to the message buffer: “                            + ex);                }    }}


声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,谢谢。

上一篇: 神逸精准瘦身怎么样?逸的寓意

下一篇: x7200 进bios 哪个键?《地球人x7200》是那个品牌的



猜你感兴趣

推荐阅读

网站内容来自网络,如有侵权请联系我们,立即删除! | 软文发布 | 粤ICP备2021106084号