MQ--API总结
2021-05-13 23:29
标签:boa href 访问 details 环境变量 string asd 自己的 int 研究MQ很长时间了, 每个类,方法,都查了很长时间,在此总结一下! Java编写访问MQ的程序 常用方法: 创建队列管理器有两种方式: 1:绑定方式,这种方式要求MQ服务器与应用程序同属一台服务器,效率比较高。 2:客户机方式:这种方式应用程序和MQ服务器可以不在同一台服务器上,但是要考虑到MQ权限的问题,尤其是MQ7.5之后,权限变的很复杂,慎重对待。 其中hostname表示队列管理器所在的机器地址(一般在本地则填localhost或127.0.0.1)。 port就是队列管理器的侦听端口。 Channel定义访问的服务器通道名(需要自己在队列管理器中先定义,其方法类似与一般通道的定义,不过类型是服务器通道) public bool isConnected()―――返回队列管理器是否在连接状态 public synchronized void disconnect()―――断开队列管理器的连接
常用方法: public synchornized MQQueue accessQueue(String QueueName,int openOptions)―――返回一个连接队列的实例(类名为:MQQueue) 常用方法: 消息通过message实例返回。MQGetMessageOptions的用法下面再详述。 public synchronized void put(MQMessage message,MQPutMessageOptions pmo)―――往队列管理器放入一条 消息 MQPutMessageOptions的用法下面再详述 public synchronized void close()―――关闭队列的连接 常用值有: MQC.MQOO_OUTPUT――――以写方式打开队列 MQC.MQOO_BROWSE;――――以浏览方式打开队列 MQC.MQGMO_BROWSE_NEXT; ――――浏览下一个消息 如:
public MQMessage()―――默认构造函数 属性: format = MQC.MQFMT_STRING; msg.characterSet = ccsid;//字符集 public void write(byte b[])―――把指定的字节数组写入消息 常用方法: public int options―――操作选项(位操作) 常用方法: public int options―――操作选项(位操作) MQ队列管理器有自己的连接池,可以使用连接池获得连接 我们可以使用的MQ自己的默认连接池 MQPoolToken token=MQEnvironment.addConnectionPoolToken(); 这样就会把在本线程中对队列管理器的连接纳入到了MQ自带的线程管理机制中(qm.disconnect()实际上就是将qm的连接重新放回池中 qm= new MQQueueManager()会去池里找一个可用的连接赋给qm) 因为队列管理器是选择了侦听端口,可以使用netstat -an |grep 9004 看到连接到这个队列管理器上连接. MQ--API总结 标签:boa href 访问 details 环境变量 string asd 自己的 int 原文地址:http://www.cnblogs.com/haitaofeiyang/p/7531090.html1、MQQueueManager―――队列管理器访问类
public MQQueueManager(String queueManagerName)―――建立一个管理器实例
注:如果使用绑定的方式则可以直接创建一个新的队列管理器实例。但是在某些平台下这样直接创建会出错,必须采用MQClient的方式进行连接。此时需要先定义服务通道,端口,服务名等环境变量,再创建一个队列管理器实例。如:
2、MQQueue―――队列访问类
通常MQQueue实例的生成通过调用MQQueueManager的accessQueue方法类实例化。
public synchronized void get(MQMessage message,MQGetMessageOptions gmo)―――从队列管理器读取一条3.openOptions---队列的打开方式
MQC.MQOO_FAIL_IF_QUIESCING―――如果队列管理器停止则返回失败
MQC.MQOO_INPUT_AS_Q_DEF―――以队列默认读取方式打开队列 使用的时候可以采用与操作来实现多种打开队列方式,
int openOptions = MQC.MQOO_FAIL_IF_QUIESCING | MQC.MQOO_OUTPUT | MQC.MQOO_INPUT_AS_Q_DEF; 表示以读、写方式打开队列 4.MQMessage―――消息操作类 常用方法:
public int getDataLength()―――返回可读取的消息的长度(以byte作为单位)
public void readFully(byte b[])―――读取消息到数组b中,长度以b的数组长度为准
msg.encoding = ccsid;//写的字符集
一般读取消息的操作为:
一般写消息的操作为:
5.MQGetMessageOptions―――取消息操作选项
public MQGetMessageOptions()―――默认构造函数
public int matchOptions―――条件选项(按照某种条件获取消息)
public int waitInterval―――等待时长(单位:毫秒)仅当options选项有MQC.MQGMO_WAIT才有效 6.MQPutMessageOptions―――放消息操作选项
public MQPutMessageOptions()―――默认构造函数 7.MQ自带连接池