MQ--API总结

研究MQ很长时间了, 每个类,方法,都查了很长时间,在此总结一下!

Java编写访问MQ的程序 

1、MQQueueManager―――队列管理器访问类 

常用方法: 
public MQQueueManager(String queueManagerName)―――建立一个管理器实例 

创建队列管理器有两种方式:

1:绑定方式,这种方式要求MQ服务器与应用程序同属一台服务器,效率比较高。

2:客户机方式:这种方式应用程序和MQ服务器可以不在同一台服务器上,但是要考虑到MQ权限的问题,尤其是MQ7.5之后,权限变的很复杂,慎重对待。
注:如果使用绑定的方式则可以直接创建一个新的队列管理器实例。但是在某些平台下这样直接创建会出错,必须采用MQClient的方式进行连接。此时需要先定义服务通道,端口,服务名等环境变量,再创建一个队列管理器实例。如:

MQEnvironment.hostname = "IP地址";
MQEnvironment.channel = "channelname";
MQEnvironment.port = port ;
MQEnvironment.CCSID = CCSID;
MQQueueManager qMgr = new MQQueueManager(hostname);

其中hostname表示队列管理器所在的机器地址(一般在本地则填localhost或127.0.0.1)。

port就是队列管理器的侦听端口。

Channel定义访问的服务器通道名(需要自己在队列管理器中先定义,其方法类似与一般通道的定义,不过类型是服务器通道)

public bool isConnected()―――返回队列管理器是否在连接状态 

public synchronized void disconnect()―――断开队列管理器的连接  

2、MQQueue―――队列访问类 

常用方法:
通常MQQueue实例的生成通过调用MQQueueManager的accessQueue方法类实例化。 

public synchornized MQQueue accessQueue(String QueueName,int openOptions)―――返回一个连接队列的实例(类名为:MQQueue) 


常用方法: 
public synchronized void get(MQMessage message,MQGetMessageOptions gmo)―――从队列管理器读取一条

消息通过message实例返回。MQGetMessageOptions的用法下面再详述。

 public synchronized void put(MQMessage message,MQPutMessageOptions pmo)―――往队列管理器放入一条

消息 MQPutMessageOptions的用法下面再详述 

public synchronized void close()―――关闭队列的连接 

3.openOptions---队列的打开方式

常用值有: 
MQC.MQOO_FAIL_IF_QUIESCING―――如果队列管理器停止则返回失败 

MQC.MQOO_OUTPUT――――以写方式打开队列 
MQC.MQOO_INPUT_AS_Q_DEF―――以队列默认读取方式打开队列 使用的时候可以采用与操作来实现多种打开队列方式,

MQC.MQOO_BROWSE;――――以浏览方式打开队列

MQC.MQGMO_BROWSE_NEXT; ――――浏览下一个消息

如: 
int openOptions = MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_OUTPUT | MQC.MQOO_INPUT_AS_Q_DEF; 表示以读、写方式打开队列  


4.MQMessage―――消息操作类 常用方法: 

public MQMessage()―――默认构造函数 
public int getDataLength()―――返回可读取的消息的长度(以byte作为单位) 
public void readFully(byte b[])―――读取消息到数组b中,长度以b的数组长度为准 

属性:

format = MQC.MQFMT_STRING;

msg.characterSet = ccsid;//字符集
msg.encoding = ccsid;//写的字符集


一般读取消息的操作为: 

MQMessage message = new MQMessage(); …. 
int length = message.getDataLength(); 
byte buffer[] = new byte[length]; 
message.readFully(buffer); 

public void write(byte b[])―――把指定的字节数组写入消息 
一般写消息的操作为: 

byte[] buffer = “asdasdad”.getBytes(); 
MQMessage message = new MQMessage(); …. 
message.write(buffer); 
queue.put(message…. 

5.MQGetMessageOptions―――取消息操作选项

 常用方法: 
public MQGetMessageOptions()―――默认构造函数 

public int options―――操作选项(位操作) 
public int matchOptions―――条件选项(按照某种条件获取消息) 
public int waitInterval―――等待时长(单位:毫秒)仅当options选项有MQC.MQGMO_WAIT才有效  

6.MQPutMessageOptions―――放消息操作选项 

常用方法: 
public MQPutMessageOptions()―――默认构造函数 

public int options―――操作选项(位操作)   

7.MQ自带连接池

MQ队列管理器有自己的连接池,可以使用连接池获得连接

我们可以使用的MQ自己的默认连接池

MQPoolToken token=MQEnvironment.addConnectionPoolToken();

这样就会把在本线程中对队列管理器的连接纳入到了MQ自带的线程管理机制中(qm.disconnect()实际上就是将qm的连接重新放回池中 qm= new MQQueueManager()会去池里找一个可用的连接赋给qm)

因为队列管理器是选择了侦听端口,可以使用netstat -an |grep 9004 看到连接到这个队列管理器上连接.



  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Uniapp 是基于Vue.js开发的一套跨平台应用开发框架,可以通过一套代码同时开发iOS和安卓应用。而MQ(消息队列)是一种基于异步通信的系统,用于处理大量消息的传输和存储。 在Uniapp开发安卓应用中使用MQ,可以借助第三方插件来实现。例如,可以使用UniMQ插件,在Uniapp项目中引入该插件后,即可使用MQ相关的API来进行开发。 首先,我们需要安装UniMQ插件,并在项目配置文件中进行相关配置。然后,可以在需要使用MQ的页面或组件中引入UniMQ插件,并创建一个MQ实例。 在创建MQ实例后,我们可以使用MQ实例提供的方法,如"send"和"receive"来发送和接收消息。通过"send"方法,我们可以将需要传输的消息发送到指定的队列中;而通过"receive"方法,我们可以从指定的队列中接收消息。 在接收消息时,可以将消息进行处理,并根据需要进行相应操作。例如,可以将接收到的消息展示在页面上,或根据消息内容执行特定的逻辑。 同时,UniMQ插件也提供了其他一些常用的方法,如"subscribe"和"unsubscribe"等,用于订阅和取消订阅指定的消息主题。 需要注意的是,使用MQ的同时,我们也需要保证MQ服务器的正常运行。因此,在开发安卓应用时,我们需要提前搭建好MQ服务器,并确保应用能够正常连接和与之通信。 总结来说,Uniapp开发安卓应用中使用MQ可以借助第三方插件,通过相关的API进行消息队列的发送和接收。这样可以方便地处理大量的异步消息,并根据需要对消息进行相应的处理操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值