MQSeries编程
索引:
1.MQSeries Messages
由两部分组成:Message descriptor和Application data。
Message descriptor由消息ID和控制信息组成。队列管理器不会修改Application data的内容,除非做了数据转化,数据的大小不能超过队列和队列管理器允许的最大值(MaxMsgLength)。
不同平台的缺省MaxMsgLength值不同。
消息类型有四种:Datagram、Request、Reply、Report。
2.Message Queue Interface(MQI)
(1).MQCONN, MQCONNX, and MQDISC
与队列管理器建立连接/断开连接。
(2).MQOPEN and MQCLOSE
打开/关闭一个对象,如队列。
(3).MQPUT and MQPUT1
放消息到队列。
(4).MQGET
在队列中浏览消息或取走消息。
(5).MQINQ
查询一个对象的属性。
(6).MQSET
设置一个队列的某些属性。
(7).MQBEGIN, MQCMIT, and MQBACK
事务控制。
(8).数据类型
MQI提供如下数据类型(C语言):
- MQBYTE:A single byte of data;
- MQBYTEn:A string of 16, 24, 32, 40, or 64 bytes;
- MQCHAR:One single-byte character;
- MQCHARn:A string of 4, 8, 12, 16, 20, 28, 32, 48, 64, 128, or 256 single-byte characters;
- MQHCONN:A connection handle(this data is 32 bits long);
- MQHOBJ:An object handle(this data is 32 bits long);
- MQLONG:A 32-bit signed binary integer;
- PMQLONG:A pointer to data of type MQLONG;
(9).所有调用普遍使用的参数
connection handle:由MQCONN和MQCONNX调用返回。
object handle:由MQOPEN调用返回。
completion code:MQCC_OK、MQCC_FAILED、MQCC_WARNING之一。
return codes:指定出错原因。
3.编译程序
AIX环境:
联接的库(Server端,Client见前):
non-threaded environment:libmqm.a;
a threaded environment:libmqm_r.a;
AT&T GIS UNIX环境:
libmqm.so;
libmqmzse.so
HP-UNIX环境:
non-threaded environment:libmqm.sl;
a threaded environment:libmqm_r.sl;
SUN-Solaris环境:
libmqm.so, libmqmcs.so, and libmqmzse.so;
WINDOWS NT环境:
MQM.LIB server for 32-bit C
4.示例程序
见csqzal04.pdf:Application Programming Guide附录B。
5.参考手册
csqzak04.pdf:Application Programming Reference。