[3]TLQ8产品培训开发环境_第1页
[3]TLQ8产品培训开发环境_第2页
[3]TLQ8产品培训开发环境_第3页
[3]TLQ8产品培训开发环境_第4页
[3]TLQ8产品培训开发环境_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、TongLINK/Q8.0 开发环境开发环境演演 讲讲 人:人:演讲时间:演讲时间:目录目录API介绍及应用程序开发介绍及应用程序开发应用举例应用举例练习练习API介绍及应用程序开发介绍及应用程序开发API介绍及应用程序开发介绍及应用程序开发普通普通API介绍介绍APIAPI与核心的交互机制与核心的交互机制TLQ核心处理应用接口函数1432普通普通API介绍介绍主要结构及作用主要结构及作用连接标识:连接标识: TLQ_IDTLQ_ID应用实例标识:应用实例标识:TLQ_QCUHDLTLQ_QCUHDL消息描述:消息描述: TLQMSG_INFOTLQMSG_INFO消息操作选项:消息操作选项:

2、TLQMSG_OPTTLQMSG_OPT消息错误信息:消息错误信息:TLQError TLQError 重要字符串重要字符串消息内容:消息内容:msgcontentmsgcontent用户属性:用户属性:UserPropertyUserProperty普通普通API介绍介绍消息由三部分组成:消息由三部分组成:消息描述(必需)用户自定义属性(可选)消息内容(必需)消息描述(必需)用户自定义属性(可选)消息内容(必需)消息描述TLQMSG_INFO 用户自定义属性UserProperty消息内容msgcontent普通普通API介绍介绍tlq_api.htlq_api.hTLQMSG_INFOTL

3、QMSG_INFO结构:结构:struct msg_infostruct msg_infocharcharVerNo;VerNo;/ /* * 版本号版本号 * */ / char char MsgType;MsgType;/ /* * 消息类型消息类型* */ / charcharUsrContextUSR_CONTEXT_LEN+1; UsrContextUSR_CONTEXT_LEN+1; / /* * 消息的用户数据消息的用户数据 * */ /intintMsgSize;MsgSize;/ /* * 消息长度消息长度 * */ /intintExpiry;Expiry;/ /* * 生

4、命周期生命周期 * */ /charcharPriority;Priority;/ /* * 优先级,优先级,0.9 0.9 * */ /charcharPersistence;Persistence;/ /* * 持久性类型持久性类型 * */ /charcharMsgOperateType;MsgOperateType;/ /* * 消息控制类型消息控制类型 ,压缩或安全出口,压缩或安全出口* */ /charcharMsgOperateInfoOPERATEDATALEN +1; MsgOperateInfoOPERATEDATALEN +1; / /* * 消息控制数据消息控制数据 *

5、 */ /unsigned intunsigned intUserPropertyLen;UserPropertyLen;/ /* * 用户自定义属性串的长度用户自定义属性串的长度 * */ /unsigned intunsigned intUserPropertyNum;UserPropertyNum;/ /* *用户自定义属性的个数用户自定义属性的个数 * */ /charcharCorrMsgIdMSGIDLEN+1; CorrMsgIdMSGIDLEN+1; / /* * 消息的关联属性消息的关联属性* */ /普通普通API介绍介绍以下属性在消息发送时由核心赋值,应用时不必关心以下属

6、性在消息发送时由核心赋值,应用时不必关心, ,* *发送成功返回后,可获取这些属性的值发送成功返回后,可获取这些属性的值charcharSrcNodeNAMELEN+1;SrcNodeNAMELEN+1;/ /* * 消息的源节点消息的源节点* */ /charcharDestQNameNAMELEN+1; DestQNameNAMELEN+1; / /* * 目标队列名目标队列名* */ /intintPutDateTime; PutDateTime; / /* * 消息发送时间消息发送时间* */ /charcharGroupIDMSGIDLEN+1; GroupIDMSGIDLEN+1;

7、 / /* * 组标识组标识* */ /intintGroupSeq; GroupSeq; / /* * 组序号组序号* */ /charcharGroupStatus; GroupStatus; / /* * 组消息的状态组消息的状态* */ / charcharMsgOrigin;MsgOrigin; / /* * 消息的来源消息的来源* */ / charcharMsgIdMSGIDLEN+1;MsgIdMSGIDLEN+1;/ /* * 消息标识消息标识 * */ /unsigned intunsigned intOrgMsgLen;OrgMsgLen;/ /* * 消息处理前的长度消

8、息处理前的长度 * */ /charcharLONG_INT_MAXLEN; LONG_INT_MAXLEN; / /* * 文件大小文件大小* */ /intintEvTime; EvTime; / /* * 事件产生的时间事件产生的时间* */ /unsigned intunsigned intEvStyle;EvStyle;/ /* * 事件类型事件类型* */ /intintRollbackCount; RollbackCount; / /* *消息回滚次数消息回滚次数* */ /charcharReserve16;Reserve16;/ /* * 以备后用以备后用 * */ /sho

9、rtshortOffSet; OffSet; / /* * 偏移量偏移量* */ / 普通普通API介绍介绍以下属性在消息发送时由核心赋值,应用时不必关心以下属性在消息发送时由核心赋值,应用时不必关心, ,* *发送成功返回后,可获取这些属性的值发送成功返回后,可获取这些属性的值charcharSrcNodeNAMELEN+1;SrcNodeNAMELEN+1;/ /* * 消息的源节点消息的源节点* */ /charcharDestQNameNAMELEN+1; DestQNameNAMELEN+1; / /* * 目标队列名目标队列名* */ /intintPutDateTime; Put

10、DateTime; / /* * 消息发送时间消息发送时间* */ /charcharGroupIDMSGIDLEN+1; GroupIDMSGIDLEN+1; / /* * 组标识组标识* */ /intintGroupSeq; GroupSeq; / /* * 组序号组序号* */ /charcharGroupStatus; GroupStatus; / /* * 组消息的状态组消息的状态* */ / charcharMsgOrigin;MsgOrigin; / /* * 消息的来源消息的来源* */ / charcharMsgIdMSGIDLEN+1;MsgIdMSGIDLEN+1;/

11、/* * 消息标识消息标识 * */ /unsigned intunsigned intOrgMsgLen;OrgMsgLen;/ /* * 消息处理前的长度消息处理前的长度 * */ /charcharLONG_INT_MAXLEN; LONG_INT_MAXLEN; / /* * 文件大小文件大小* */ /intintEvTime; EvTime; / /* * 事件产生的时间事件产生的时间* */ /unsigned intunsigned intEvStyle;EvStyle;/ /* * 事件类型事件类型* */ /intintRollbackCount; RollbackCoun

12、t; / /* *消息回滚次数消息回滚次数* */ /charcharReserve16;Reserve16;/ /* * 以备后用以备后用 * */ /shortshortOffSet; OffSet; / /* * 偏移量偏移量* */ / 普通普通API介绍介绍函数接口的作用:函数接口的作用: 实现应用与核心的交互实现应用与核心的交互 实现个性化应用的定制实现个性化应用的定制普通普通API介绍介绍接口分类接口分类普通API接口初始化连断系统资源打开关闭实例消息处理普通消息触发消息组消息事务消息事件消息应用连接静态管理动态管理管理类接口普通普通API介绍介绍连接断开系统资源连接断开系统资源

13、1.1.连接系统资源连接系统资源int Tlq_Conn(TLQ_ID int Tlq_Conn(TLQ_ID * *gid,TLQError gid,TLQError * *err);err);2.2.断开系统资源断开系统资源int Tlq_DisConn(TLQ_ID int Tlq_DisConn(TLQ_ID * *gid,TLQError gid,TLQError * *err);err);说明:这两个函数成对出现说明:这两个函数成对出现普通普通API介绍介绍开始结束应用实例开始结束应用实例1.1.开始应用实例开始应用实例int Tlq_OpenQCU(TLQ_ID int Tlq_

14、OpenQCU(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,qcuHandle,char char * *QCUName,TLQError QCUName,TLQError * *err);err);2.2.结束应用实例结束应用实例int Tlq_CloseQCU(TLQ_ID int Tlq_CloseQCU(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,qcuHandle,TLQError TLQError * *err);err);说明:这两个函数成对出现说明:这两个

15、函数成对出现普通普通API介绍介绍初始化函数初始化函数1.1.初始化初始化TLQMSG_INFOTLQMSG_INFOint Tlq_InitMsgInfo (TLQMSG_INFO int Tlq_InitMsgInfo (TLQMSG_INFO * *pUsrMsg);pUsrMsg);2.2.初始化初始化TLQMSG_OPTTLQMSG_OPT int Tlq_InitMsgOpt(TLQMSG_OPT int Tlq_InitMsgOpt(TLQMSG_OPT * *msgopt);msgopt);普通普通API介绍介绍发送消息,包括普通消息、组消息、订阅事件消息、发布订阅、取消发布订

16、阅等发送消息,包括普通消息、组消息、订阅事件消息、发布订阅、取消发布订阅等int Tlq_PutMsg(TLQ_ID int Tlq_PutMsg(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQMSG_INFO qcuHandle,TLQMSG_INFO * *pUsrMsg,TLQMSG_OPT pUsrMsg,TLQMSG_OPT * *msgopt,char msgopt,char * *UsrProperty, char UsrProperty, char * *msgcontent,TLQError msgconten

17、t,TLQError * *err)err);msgopt .OperateType msgopt .OperateType 为不同的值,表示的不同操作为不同的值,表示的不同操作TLQOT_PUT TLQOT_PUT 发送消息发送消息TLQOT_PUBTLQOT_PUB发布消息发布消息TLQOT_DELPUB TLQOT_DELPUB 取消发布取消发布TLQOT_SUB TLQOT_SUB 订阅消息订阅消息TLQOT_DELSUB TLQOT_DELSUB 取消订阅取消订阅普通普通API介绍介绍int Tlq_GetMsg(TLQ_ID int Tlq_GetMsg(TLQ_ID * *gid

18、,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQMSG_INFO qcuHandle,TLQMSG_INFO * *pUsrMsg,TLQMSG_OPT pUsrMsg,TLQMSG_OPT * *msgopt,char msgopt,char * * *msgcontent,TLQError msgcontent,TLQError * *err);err);msgopt .OperateTypemsgopt .OperateTypeTLQOT_GET TLQOT_GET 时,表示接收消息时,表示接收消息msgopt .OperateTypemsgopt

19、.OperateTypeTLQOT_BROWSE TLQOT_BROWSE 时,表示浏览消息时,表示浏览消息接收消息和浏览消息接收消息和浏览消息普通普通API介绍介绍 int Tlq_DeleteMsg(TLQ_ID int Tlq_DeleteMsg(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle, TLQMSG_INFO qcuHandle, TLQMSG_INFO * *pUsrMsg,TLQMSG_OPT pUsrMsg,TLQMSG_OPT * *msgopt,int msgopt,int * *msg_num,TLQErro

20、r msg_num,TLQError * *err);err);msgopt .DelStatemsgopt .DelState值标识删除不同状态的消息值标识删除不同状态的消息 TLQSTATE_ALLTLQSTATE_ALL 删除所有状态的消息删除所有状态的消息TLQSTATE_READYTLQSTATE_READY 删除没有发送或接收完毕的消息删除没有发送或接收完毕的消息TLQSTATE_SENDINGTLQSTATE_SENDING 删除正在发送的消息删除正在发送的消息TLQSTATE_RECEIVING TLQSTATE_RECEIVING 删除正在接收的消息删除正在接收的消息 删除消

21、息删除消息普通普通API介绍介绍 int Tlq_AckMsg(TLQ_ID int Tlq_AckMsg(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQMSG_INFO qcuHandle,TLQMSG_INFO * *pUsrMsg ,TLQMSG_OPT pUsrMsg ,TLQMSG_OPT * *msgopt,int AckType,TLQError msgopt,int AckType,TLQError * *err);err);msgopt . AckModemsgopt . AckMode值标识删除不同状态的消息

22、值标识删除不同状态的消息 TLQACK_AUTO TLQACK_AUTO 自动确认模式自动确认模式,消息接收后即被删除,消息接收后即被删除TLQACK_USER TLQACK_USER 用户确认模式用户确认模式,消息接收后并不删除,必须等待,消息接收后并不删除,必须等待用户确认模式下用户确认模式下,AckTypeAckType分别取值如下:分别取值如下:TLQACK_COMMITTLQACK_COMMIT提交确认提交确认TLQACK_ROLLBACKTLQACK_ROLLBACK回滚确认回滚确认 消息接收确认消息接收确认普通普通API介绍介绍1.1.组消息开始的标志组消息开始的标志 int T

23、lq_BeginGroup (TLQ_ID int Tlq_BeginGroup (TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQError qcuHandle,TLQError * *err);err);2.2.提交组消息提交组消息 int Tlq_CommitGroup (TLQ_ID int Tlq_CommitGroup (TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQError qcuHandle,TLQError * *err);err);3.3.回滚

24、组消息回滚组消息 int Tlq_RollbackGroup (TLQ_ID int Tlq_RollbackGroup (TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQError qcuHandle,TLQError * *err);err);说明:说明:2 2、3 3必须与必须与1 1配对使用配对使用组消息接口组消息接口普通普通API介绍介绍1.1.事务开始标志事务开始标志 int Tlq_Begin(TLQ_ID int Tlq_Begin(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL *

25、 *qcuHandle,TLQError qcuHandle,TLQError * *err);err);2.2.事务提交标志事务提交标志 int Tlq_Commit(TLQ_ID int Tlq_Commit(TLQ_ID * *gid,TLQ_QCUHDL gid,TLQ_QCUHDL * *qcuHandle,TLQError qcuHandle,TLQError * *err);err);3.3.事务失败后用于回滚事务事务失败后用于回滚事务 int Tlq_Rollback(TLQ_ID int Tlq_Rollback(TLQ_ID * *gid,TLQ_QCUHDL gid,TL

26、Q_QCUHDL * *qcuHandle,TLQError qcuHandle,TLQError * *err);err);说明:说明:2 2、3 3必须与必须与1 1配对使用配对使用事务接口事务接口普通普通API介绍介绍 main() Tlq_Conn(&gid,&errstru);/连接系统资源连接系统资源Tlq_OpenQCU(&gid,&qcuId1,QcuName1,&errstru); /开始应用实例开始应用实例Tlq_Begin(); /消息处理,如发送消息,接收消息等操作消息处理,如发送消息,接收消息等操作Tlq_Commit()/Tl

27、q_Rollback();Tlq_CloseQCU(&gid,&qcuId1,&errstru); /结束应用实例结束应用实例Tlq_DisConn(&gid,&errstru);/断开系统资源断开系统资源说明:这是应用实例运行的基本框架,是必需的应用模式应用模式瘦客户瘦客户瘦客户开发瘦客户开发瘦客户瘦客户API接口函数应用连接消息操作初始化获取连接工厂创建集群连接实例消费者释放连接 释放资源生产者瘦客户瘦客户1 1、获取连接工厂、获取连接工厂Tlq_ClusterLookup(TLQCLUSTER_FACTORY Tlq_ClusterLookup(T

28、LQCLUSTER_FACTORY * *list, /list, /集群连接列表集群连接列表int int * *num,num, / /集群连接数集群连接数char char * *jndiUrl,jndiUrl, /jndi /jndi服务器地址服务器地址char char * *ClusterQname, /ClusterQname, /集群队列名集群队列名TLQError TLQError * *tlqerr); /tlqerr); /错误信息错误信息客户端专用函数说明客户端专用函数说明瘦客户瘦客户2 2、创建生产、消费者实例、创建生产、消费者实例Tlq_ClusterCreateI

29、nstance(TLQCLUSTER_HANDLE Tlq_ClusterCreateInstance(TLQCLUSTER_HANDLE * *ClusterId, /IN/OUTClusterId, /IN/OUT实例句柄实例句柄 TLQCLUSTER_FACTORY TLQCLUSTER_FACTORY * *list, /list, /集群成员地址列表集群成员地址列表 int listnum, / int listnum, /集群成员个数集群成员个数 int ConnectionNum, / int ConnectionNum, /单个成员创建连接数单个成员创建连接数 int flag

30、, int flag, /实例类型,实例类型,0 0:发送,:发送,1 1:接收:接收 int sequence, / int sequence, /实例序号,同一进程中不同实例序号不能相同实例序号,同一进程中不同实例序号不能相同 TLQMSG_INFO TLQMSG_INFO * *uMsg, /uMsg, /用于接收消息的消息描述,发送实例忽略此参数用于接收消息的消息描述,发送实例忽略此参数 TLQMSG_OPT TLQMSG_OPT * *msgopt,/msgopt,/用于接收消息的操作选项,发送实例忽略此参数用于接收消息的操作选项,发送实例忽略此参数 int MaxSize, / i

31、nt MaxSize, / /发送实例可发送消息的最大值,发送实例可发送消息的最大值,小于等于小于等于0 0时使用系统默认值时使用系统默认值 char char * *library, /library, /用于接收实例处理消息用的动态库全路径用于接收实例处理消息用的动态库全路径 OnException_t OnException_t * *ExHandle, /ExHandle, /自定义的回调函数自定义的回调函数 TLQError TLQError * *tlqerr) tlqerr) /错误信息错误信息瘦客户瘦客户3 3、生产者发送消息、生产者发送消息Tlq_ClusterProducer(TLQCLUSTER_HANDLE Tlq_ClusterProducer(TLQCLUSTER_HANDLE * *ClusterId, /Clus

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论