TongLINKQ8.1系统开发手册_C#编程参考

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TongTech®
TongLINK/Q8.1
系统开发手册 -C#编程参考
2011年7月
TongLINK/Q V8.1系统开发手册_C#编程参考
北京东方通科技股份有限公司
地址:北京市海淀区彩和坊路10号1+1大厦2、3层客户服务热线:400-650-7088
Email:
版权声明
版权
©2006-2016东方通科技版权所有。

版权保护说明
未经东方通科技公司书面许可,本文档不得整体或部分地复印、复制、翻译或缩减成任何电子介质或计算机可以阅读的格式。

本文档中的信息可能不加通知进行修改。

商标
©2006-2016东方通科技版权所有。

、TongTech、TongLINK、TongLINK/Q、Tong Integrator、Tong SEC、Tong Web、Tong EASY、Tong Workflow是东方通科技的注册商标。

其他所有的公司和产品名称可能为第三方所有。

前言
本手册主要介绍C#提供的结构和C#提供的类等有关说明。

通过阅读此手册能快速查找到应用编写中用到的方法及用法等。

1. 阅读对象
本手册面向消息中间件TongLINKQ8.1产品用户以及对消息中间件感兴趣的读者。

2.手册约定
本手册遵循以下约定:
●手册中所有的队列控制单元简称为QCU。

●手册中所有的消息中间件TongLINK/Q8.1简称为TLQ。

●此手册适用于UNIX &Windows。

●下面相关技术文档中的蓝色字体,表示当前阅读文档。

3.相关技术文档
●《TongLINKQ8.1快速使用手册》
主要介绍产品简介、基本概念、产品安装、发送节点和接收节点的配置、节点启动停止、程序流程、程序运行及错误号的跟踪与查找等。

●《TongLINKQ8.1系统安装手册_服务端安装》
主要介绍系统安装的环境、系统安装过程、系统有关环境变量配置、系统的启动、License相关说明、系统的停止及系统日志说明等。

●《TongLINKQ8.1系统安装手册_管理控制台安装》
主要介绍TLQ管理控制台安装的环境、安装过程、有关环境变量设置、TLQ控制台服务器的启动及TLQ管理控制台的登录等。

●《TongLINKQ8.1系统概述》
主要介绍消息中间件产品的系统功能及特点、系统结构架构、基本概念、队列控制单元、消息管理、发布订阅、集群、网络传输、SSL安全传输、安全出口、事务、事件管理、应用程序管理、系统管理、目录管理等。

●《TongLINKQ8.1系统开发手册_C编程参考》
主要介绍C接口有关的应用编写中用到的相关宏、数据结构及函数定义等。

●《TongLINKQ8.1系统开发手册_C#编程参考》
主要介绍C#提供的结构和C#提供的类等有关说明。

●《TongLINKQ8.1系统开发手册_程序设计指南》
主要介绍有关应用程序设计概述、消息介绍、技术及队列准备、消息描述及消息操作选项设计、消息体数据用户自定义属性设计、连接上下文参数设计、应用程序编写、消息操作相关程序编译、配置文件的编辑约束、配置相关数据结构、配置文件动/静态配置、配置文件相关编程和编译、使用Java进行配置文件的编辑等。

●《TongLINKQ8.1系统开发手册_安全出口编写指南》
主要介绍安全出口概述、配置、编写及编程模式等。

●《TongLINKQ8.1系统开发手册_JAVA编程参考》
主要介绍JA V A编程有关概述、相关配置、BaseClass相关的类和使用BaseClass编程等进行说明。

●《TongLINKQ8.1系统管理手册_管理控制台》
主要介绍管理控制台使用说明、用户管理、组管理及节点管理等。

●《TongLINKQ8.1系统管理手册_配置管理》
主要介绍有关系统运行、参数配置、参数配置项约束、参数配置举例、系统日志等。

●《TongLINKQ8.1系统管理手册_系统工具》
主要介绍系统监视工具tlqstat、系统对象控制工具、错误信息查看工具、资源占用计算工具tlqdispshm、IPC资源查询工具tlqipc、检查系统是否启动工具tlqready、配置文件转换工具tlqconvert及设置SSL的p12证书密码工具tlqcertpwd等。

●《TongLINKQ8.1客户端使用手册》
主要介绍客户端的基本概念、客户端UNIX和Windows的安装、系统目录结构、参数配置、代理操作、通讯安全及系统日志等。

●《TongLINKQ8.1系统常见问题排除手册》
主要介绍系统启动常见问题、应用程序的常见问题及管理控制台的常见问题等。

●《TongLINKQ8.1系统性能调优手册》
主要介绍服务端系统性能调优和客户端性能调优等方面说明。

●《TongLINKQ8.1系统开发手册_JMS编程参考》
主要介绍TongLINK/Q JMS应用体系结构、JA V A目录说明、使用TLQJMS程序的步骤、TLQJMS程序配置说明、TLQJMS环境设置、编写TLQ JMS程序、编写发布订阅应用、JMS消息、JMS中的加密&压缩、JMS的接口、使用基于TLQJMS的MDB及常见问题等进行说明。

●《TongLINKQ8.1系统开发手册_客户端集群编程参考》
主要介绍客户端集群简介、客户端集群相关参数配置、C客户端集群接口相关内容及JMS客户端
集群接口相关内容等信息。

4.对此版本新增和更改的内容
TLQ8.1版本在TLQ8.0版本基础上增加和修改的内容如下:
●第1章结构常量TLQ_CONST中删除消息的状态和数据结构TLQMSG_OPT的域DelState中都新
增一种状态TLQSTATEE_WAITACK,其中TLQSTATE_ALL的值由0x7修改为0xF值。

●第1章结构常量TLQ_CONST中事件的类型和数据结构TLQMSG_OPT的域ReportType都新增一
种缺省定义的事件类型TLQEVENT_MSGCLEAR。

●第2章新增客户端重连方法,具体请见连接/断开系统资源方法Tlq_ReConn的详细说明。

●第1章客户端代理信息的数据结构TLQCLIBRK_INFO小节中新增SSL相关内容。

5.友情提示
●发布订阅功能仅限于单层星型结构使用,多级的发布订阅暂不推荐使用!!
目录
第1章C#提供的结构 (1)
1.1结构常量TLQ_CONST (1)
1.1.1消息持久性 (1)
1.1.2消息优先级 (1)
1.1.3消息类型 (1)
1.1.4接收消息的确认模式 (1)
1.1.5文件消息发送完毕后源文件是否被删除 (2)
1.1.6消息控制操作类型 (2)
1.1.7消息接收和删除的条件匹配选项 (2)
1.1.8删除消息的状态 (2)
1.1.9应用来源 (3)
1.1.10字符串长度 (3)
1.1.11消息触发类型 (3)
1.1.12程序类型 (4)
1.1.13事件的类型 (4)
1.1.14消息操作类型 (4)
1.1.15版本号 (4)
1.1.16发布/订阅的范围 (5)
1.1.17消息状态 (5)
1.1.18错误描述 (5)
1.1.19对象控制类型 (5)
1.1.20对象活动类型 (6)
1.1.21对象操作选项 (6)
1.2结构TLQ_QCUHDL (7)
1.3结构TLQ_ID (7)
1.4结构TLQMSG_INFO (7)
1.4.1结构描述 (7)
1.4.2域详细说明 (8)
1.4.2.1VerNo (8)
1.4.2.2MsgType (8)
1.4.2.3UsrContext (9)
1.4.2.4MsgSize (9)
1.4.2.5Expiry (9)
1.4.2.6Priority (9)
1.4.2.7Persistence (9)
1.4.2.8MsgOperateType (10)
1.4.2.9MsgOperateInfo (10)
1.4.2.10UserPropertyLen (10)
1.4.2.11UserPropertyNum (10)
1.4.2.12CorrMsgId (10)
1.4.2.13SrcNode (10)
1.4.2.14DestQName (11)
1.4.2.15PutDateTime (11)
1.4.2.16MsgOrigin (11)
1.4.2.17MsgId (11)
1.4.2.18OrgMsgLen (11)
1.4.2.19FileSize (11)
1.4.2.20EvTime (11)
1.4.2.21EvStyle (11)
1.4.2.22SubFlag (11)
1.4.2.23RenamedFlag (12)
1.4.2.25Reserve (12)
1.4.2.26OffSet (12)
1.4.2.27RollbackCount (12)
1.5结构TLQMSG_OPT (13)
1.5.1结构描述 (13)
1.5.2域详细说明 (13)
1.5.2.1VerNo (14)
1.5.2.2Topic (14)
1.5.2.3MsgIdFlag (14)
1.5.2.4QueName (14)
1.5.2.5MatchOption (14)
1.5.2.6RemoveFileFlag (15)
1.5.2.7Selector (15)
1.5.2.8SelectorLen (15)
1.5.2.9ReportType (15)
1.5.2.10ReportQName (16)
1.5.2.11AckMode (16)
1.5.2.12WaitInterval (16)
1.5.2.13OffSet (16)
1.5.2.14DelState (17)
1.5.2.15PubSubScope (17)
1.5.2.16OperateType (17)
1.6客户端连接上下文信息的数据结构TLQCONNCONTEXT (18)
1.6.1结构描述 (18)
1.6.2域详细说明 (18)
1.6.2.1BrokerId (18)
1.6.2.2LogName (19)
1.6.2.3FileDir (19)
1.6.2.4ConnId (19)
1.6.2.5RetransFlag (19)
1.6.2.6HostName (19)
1.6.2.7ListenPort (19)
1.6.2.8ConnTime (19)
1.6.2.9BlockSize (19)
1.6.2.10NeedBlockReply (19)
1.6.2.11ReplyTmout (19)
1.6.2.12UserName (20)
1.6.2.13Password (20)
1.6.2.14SecExitLibName (20)
1.6.2.15SecExitNetName (20)
1.6.2.16SecExitTransportName (20)
1.6.2.17SecExitMessageName (20)
1.6.2.18SecExitFlag (20)
1.6.2.19SecNetData (20)
1.6.2.20SecSndData (20)
1.6.2.21SecRcvData (20)
1.6.2.22RenFileRestituteFlag (21)
1.7队列列表的数据结构TLQQUE_LIST (21)
1.7.1结构描述 (21)
1.7.2域说明 (21)
1.7.2.1queNames (21)
1.7.2.2queNum (21)
1.8消息错误信息结构TLQE RROR (21)
1.8.1结构描述 (21)
1.8.2域说明 (21)
1.8.2.2sys_errno (22)
1.8.2.3errstr (22)
1.9对象控制操作选项信息结构TLQOBJCTRL_OPT (22)
1.9.1结构描述 (22)
1.9.2域详细说明 (22)
1.9.2.1CtrlType (22)
1.9.2.2ActionType (23)
1.9.2.3Option (23)
1.10配置文件信息的数据结构 (24)
1.10.1系统信息结构TLQSYS_INFO (24)
1.10.2监控代理信息结构TLQSPVBRK_INFO (24)
1.10.3队列控制单元信息结构TLQQCU_INFO (25)
1.10.4队列模板信息结构TLQQUEMODEL_INFO (25)
1.10.5程序信息的数据结构TLQPROG_INFO (26)
1.10.6集群目地队列信息结构TLQCLUSDEST_INFO (26)
1.10.7队列信息的数据结构TLQQUEUE_INFO (26)
1.10.8发送进程信息结构TLQSNDPROC_INFO (27)
1.10.9发送连接信息结构TLQSNDCONN_INFO (27)
1.10.10接收进程信息的数据结构TLQRCVPROC_INFO (28)
1.10.11发布订阅代理信息的数据结构TLQPSBRK_S (28)
1.10.12发布订阅相邻代理信息的数据结构TLQPSBRK_N (29)
1.10.13主题信息的数据结构TLQTOPIC_INFO (29)
1.10.14客户端代理信息的数据结构TLQCLIBRK_INFO (29)
1.10.15客户端连接标识信息的数据结构TLQCONNID_INFO (30)
1.10.16客户端IP连接控制信息的数据结构TLQCTRLIP_INFO (30)
1.10.17统计队列消息状态信息的数据结构TLQQUEUE_STAT (30)
1.10.17.1结构描述 (30)
1.10.17.2域说明 (30)
1.11有关JNDI配置文件信息的数据结构 (31)
1.11.1JMS系统配置信息的数据结构TLQJMSSYS_INFO (31)
1.11.2JNDI连接工厂配置信息的数据结构TLQF ACTORY_INFO (31)
1.11.3JNDI队列配置信息的数据结构TLQJNDIQUE_INFO (32)
1.11.4JNDI主题配置信息的数据结构TLQJNDITOPIC_INFO (32)
1.11.5JNDI代理配置信息的数据结构JNDIBROKER_INFO (32)
1.11.6JMS代理配置信息的数据结构JMSBROKER_INFO (33)
第2章C#提供的类 (34)
2.1TLQI NTERFACE类 (34)
2.1.1TLQInterface类的方法 (34)
2.2TLQI NTERFACE类的方法使用说明 (36)
2.2.1初始化方法 (36)
2.2.1.1Tlq_InitMsgInfo (36)
2.2.1.2Tlq_InitMsgOpt (36)
2.2.1.3Tlq_InitTlqConnContext(为客户端专用) (37)
2.2.2连接/断开系统资源方法 (37)
2.2.2.1Tlq_SetConnContext(为客户端专用) (37)
2.2.2.2Tlq_Conn (38)
2.2.2.3Tlq_ReConn(为客户端重连专用) (38)
2.2.2.4Tlq_DisConn (39)
2.2.3队列控制单元操作方法 (39)
2.2.3.1Tlq_OpenQCU (39)
2.2.3.2Tlq_CloseQCU (40)
2.2.4消息处理方法 (40)
2.2.4.1Tlq_PutMsg (40)
2.2.4.2Tlq_GetMsg (42)
2.2.4.3Tlq_GetEventMsg (43)
2.2.4.4Tlq_AckMsg (44)
2.2.4.5Tlq_DeleteMsg (46)
2.2.4.6Tlq_Retransfer(为客户端续传专用) (46)
2.2.5事务方法 (48)
2.2.5.1Tlq_Begin (48)
2.2.5.2Tlq_Commit (48)
2.2.5.3Tlq_Rollback (48)
2.2.6统计发送/接收消息的个数的方法 (49)
2.2.6.1Tlq_GetQueInstantMsgNum (49)
2.2.7获取队列名列表方法 (50)
2.2.7.1Tlq_GetQueueList (50)
2.2.8检查连接是否连通方法 (50)
2.2.8.1Tlq_TestLine (50)
2.2.9临时队列方法 (51)
2.2.9.1Tlq_CreateTempQueue (51)
2.2.9.2Tlq_DeleteTempQueue (51)
2.2.10用户自定义属性处理方法 (52)
2.2.10.1Tlq_BeginProperties (52)
2.2.10.2Tlq_ClearProperties (52)
2.2.10.3Tlq_EndProperties (52)
2.2.10.4Tlq_SetStringProperty (53)
2.2.10.5Tlq_SetCharProperty (53)
2.2.10.6Tlq_SetShortProperty (54)
2.2.10.7Tlq_SetIntProperty (54)
2.2.10.8Tlq_SetFloatProperty (54)
2.2.10.9Tlq_SetDoubleProperty (55)
2.2.10.10Tlq_SetLLongProperty (55)
2.2.10.11Tlq_GetStringProperty (56)
2.2.10.12Tlq_GetCharProperty (56)
2.2.10.13Tlq_GetShortProperty (56)
2.2.10.14Tlq_GetIntProperty (57)
2.2.10.15Tlq_GetFloatProperty (57)
2.2.10.16Tlq_GetDoubleProperty (58)
2.2.10.17Tlq_GetLLongProperty (59)
2.3初始化配置文件的方法 (59)
2.3.1Tlq_InitSysInfo (59)
2.3.2Tlq_InitSuperviseBroker (59)
2.3.3Tlq_InitSndProcInfo (60)
2.3.4Tlq_InitSndConnInfo (60)
2.3.5Tlq_InitRcvProcInfo (60)
2.3.6Tlq_InitProgInfo (61)
2.3.7Tlq_InitQueueInfo (61)
2.3.8Tlq_InitQCUInfo (61)
2.3.9Tlq_InitCluQDestInfo (61)
2.3.10Tlq_InitQueModel (62)
2.3.11Tlq_InitParentBroker (62)
2.3.12Tlq_InitChildBroker (62)
2.3.13Tlq_InitClientBroker (63)
2.3.14Tlq_InitConnId (63)
2.3.15Tlq_InitPubSubBroker (63)
2.3.16Tlq_ InitCtrlIP (64)
2.3.17Tlq_InitTopic (64)
2.3.18TlqConf_InitFactory (64)
2.3.20TlqConf_InitJndiTopic (65)
2.4静态修改配置文件的接口方法 (65)
2.4.1打开/关闭系统配置文件接口方法 (65)
2.4.1.1TlqConf_Begin (65)
2.4.1.2TlqConf_End (66)
2.4.2系统配置接口方法 (66)
2.4.2.1TlqConf_GetSys (66)
2.4.2.2TlqConf_SetSys (66)
2.4.3监控代理配置接口方法 (68)
2.4.3.1TlqConf_GetSuperviseBroker (68)
2.4.3.2TlqConf_SetSuperviseBroker (68)
2.4.4队列控制单元配置接口方法 (69)
2.4.4.1TlqConf_GetQCU (69)
2.4.4.2TlqConf_SetQCU (69)
2.4.5队列模板配置接口方法 (70)
2.4.5.1TlqConf_GetQueModel (70)
2.4.5.2TlqConf_SetQueModel (70)
2.4.6程序配置接口方法 (71)
2.4.6.1TlqConf_GetProg (71)
2.4.6.2TlqConf_SetProg (71)
2.4.7打开/关闭QCU配置文件接口方法 (72)
2.4.7.1TlqConf_QCUBegin (72)
2.4.7.2TlqConf_QCUEnd (72)
2.4.8队列配置接口方法 (73)
2.4.8.1TlqConf_GetQue (73)
2.4.8.2TlqConf_SetQue (73)
2.4.9发送进程配置接口方法 (74)
2.4.9.1TlqConf_GetSendProc (74)
2.4.9.2TlqConf_SetSendProc (74)
2.4.10发送连接配置接口方法 (75)
2.4.10.1TlqConf_GetSendConn (75)
2.4.10.2TlqConf_SetSendConn (75)
2.4.11接收进程配置接口方法 (76)
2.4.11.1TlqConf_GetRecvProc (76)
2.4.11.2TlqConf_SetRecvProc (76)
2.4.12集群目的队列配置接口方法 (77)
2.4.12.1TlqConf_GetCluQDest (77)
2.4.12.2TlqConf_SetCluQDest (77)
2.4.13发布订阅代理配置接口方法 (78)
2.4.13.1TlqConf_GetPubSubBroker (78)
2.4.13.2TlqConf_SetPubSubBroker (78)
2.4.14上级代理配置接口方法 (79)
2.4.14.1TlqConf_GetParentBroker (79)
2.4.14.2TlqConf_SetParentBroker (79)
2.4.15下级代理配置接口方法 (80)
2.4.15.1TlqConf_GetChildBroker (80)
2.4.15.2TlqConf_SetChildBroker (80)
2.4.16主题配置接口方法 (81)
2.4.16.1TlqConf_GetTopic (81)
2.4.16.2TlqConf_SetTopic (81)
2.4.17客户端代理配置接口方法 (82)
2.4.17.1TlqConf_GetClientBroker (82)
2.4.17.2TlqConf_SetClientBroker (82)
2.4.18客户端连接标识配置接口方法 (83)
2.4.18.1TlqConf_GetConnId (83)
2.4.19客户端IP连接控制配置接口方法 (84)
2.4.19.1TlqConf_ GetCtrlIP (84)
2.4.19.2TlqConf_ SetCtrlIP (84)
2.5静态修改有关JNDI配置文件的方法 (85)
2.5.1打开/关闭JNDI配置文件方法 (85)
2.5.1.1TlqConf_JNDIBegin (85)
2.5.1.2TlqConf_JNDIEnd (85)
2.5.2JNDI系统配置方法 (86)
2.5.2.1TlqConf_GetJndiSystem (86)
2.5.2.2TlqConf_SetJndiSystem (86)
2.5.3JNDI代理配置接口方法 (87)
2.5.3.1TlqConf_ GetJNDIBroker (87)
2.5.3.2TlqConf_ SetJNDIBroker (87)
2.5.4JMS代理配置接口方法 (88)
2.5.4.1TlqConf_ GetJMSBroker (88)
2.5.4.2TlqConf_ SetJMSBroker (88)
2.5.5JNDI连接工厂配置方法 (89)
2.5.5.1TlqConf_GetFactory (89)
2.5.5.2TlqConf_SetFactory (89)
2.5.6JNDI队列配置方法 (90)
2.5.6.1TlqConf_GetJndiQueue (90)
2.5.6.2TlqConf_SetJndiQueue (90)
2.5.7JNDI主题配置方法 (91)
2.5.7.1TlqConf_GetJndiTopic (91)
2.5.7.2TlqConf_SetJndiTopic (91)
2.6动态修改配置文件的接口方法 (92)
2.6.1动态获取/修改队列模板配置接口方法 (92)
2.6.1.1Tlq_GetQueModel (92)
2.6.1.2Tlq_SetQueModel (92)
2.6.2动态获取/修改程序配置接口方法 (93)
2.6.2.1Tlq_GetProg (93)
2.6.2.2Tlq_SetProg (93)
2.6.3动态获取/修改队列控制单元配置接口方法 (94)
2.6.3.1Tlq_GetQCU (94)
2.6.3.2Tlq_SetQCU (94)
2.6.4动态获取/修改发送进程配置接口方法 (95)
2.6.4.1Tlq_GetSendProc (95)
2.6.4.2Tlq_SetSendProc (95)
2.6.5动态获取/修改发送连接配置接口方法 (96)
2.6.5.1Tlq_GetSendConn (96)
2.6.5.2Tlq_SetSendConn (96)
2.6.6动态获取/修改接收进程配置接口方法 (97)
2.6.6.1Tlq_GetRecvProc (97)
2.6.6.2Tlq_SetRecvProc (97)
2.6.7动态获取/修改队列接口方法 (98)
2.6.7.1Tlq_GetQueue (98)
2.6.7.2Tlq_GetQueueStat (98)
2.6.7.3Tlq_SetQueue (99)
2.6.8动态获取/修改集群目的队列配置接口方法 (100)
2.6.8.1Tlq_SetClusDest (100)
2.6.8.2Tlq_GetClusDest (100)
2.6.9动态获取/修改发布订阅相邻代理配置接口方法 (101)
2.6.9.1Tlq_GetPSNeighborBrk (101)
2.6.9.2Tlq_SetPSNeighborBrk (101)
2.6.10动态获取/修改发布订阅代理配置接口方法 (102)
2.6.10.1Tlq_GetPSSelfBrk (102)
2.6.10.2Tlq_SetPSSelfBrk (102)
2.6.11动态获取/修改主题配置接口方法 (103)
2.6.11.1Tlq_GetTopic (103)
2.6.11.2Tlq_SetTopic (103)
2.6.12动态获取/修改客户端代理配置接口方法 (104)
2.6.12.1Tlq_GetCliBrk (104)
2.6.12.2Tlq_SetCliBrk (104)
2.6.13动态获取/修改客户端代理连接标识配置接口方法 (105)
2.6.13.1Tlq_GetCliBrkConnId (105)
2.6.13.2Tlq_SetCliBrkConnId (105)
2.6.14动态获取/修改客户端IP连接控制配置接口方法 (106)
2.6.14.1Tlq_ GetCtrlIP (106)
2.6.14.2Tlq_ SetCtrlIP (106)
2.7动态修改有关JNDI配置文件的方法 (107)
2.7.1动态获取/修改JNDI连接工厂配置方法 (107)
2.7.1.1Tlq_GetJndiFactory (107)
2.7.1.2Tlq_SetJndiFactory (107)
2.7.2动态获取/修改JNDI队列配置方法 (108)
2.7.2.1Tlq_GetJndiQueue (108)
2.7.2.2Tlq_SetJndiQueue (108)
2.7.3动态获取/修改JNDI主题配置方法 (109)
2.7.3.1Tlq_GetJndiTopic (109)
2.7.3.2Tlq_SetJndiTopic (109)
2.8加密/压缩接口 (110)
2.8.1加密压缩特殊说明 (110)
2.8.2加密接口 (110)
2.8.2.1Tlq_EncryptData (110)
2.8.2.2Tlq_DecryptData (110)
2.8.2.3Tlq_EncryptFile (111)
2.8.2.4Tlq_DecryptFile (111)
2.8.3压缩接口 (112)
2.8.3.1Tlq_CompData (112)
2.8.3.2Tlq_DeCompData (112)
2.8.3.3Tlq_CompFile (113)
2.8.3.4Tlq_DeCompFile (113)
第3章TLQINTERFACE类的方法的应用编写 (114)
3.1消息发送 (114)
3.1.1程序流程 (114)
3.1.2编程举例 (114)
3.2消息接收 (115)
3.2.1程序流程 (115)
3.2.2编程举例 (116)
3.3消息发布 (117)
3.3.1程序流程 (117)
3.3.2编程举例 (118)
3.4消息订阅 (119)
3.4.1程序流程 (119)
3.4.2编程举例 (119)
3.5自定义属性 (121)
3.5.1设置自定义属性 (121)
3.5.1.1程序流程 (121)
3.5.1.2编程举例 (121)
3.5.2获取自定义属性 (123)
3.5.2.1程序流程 (123)
3.5.2.2编程举例 (123)
第1章C#提供的结构1.1 结构常量TLQ_CONST
1.1.1 消息持久性
表1‑1
1.1.2 消息优先级
1.1.3 消息类型
表1‑3
1.1.4 接收消息的确认模式
表1‑4
1.1.5 文件消息发送完毕后源文件是否被删除
表1‑5
1.1.6 消息控制操作类型
表1‑6
1.1.7 消息接收和删除的条件匹配选项
表1‑7
1.1.8 删除消息的状态
表1‑8
1.1.9 应用来源
表1‑9
1.1.10 字符串长度表1‑10
1.1.11 消息触发类型
表1‑11
1.1.12 程序类型
表1‑12
1.1.13 事件的类型
表1‑13
1.1.14 消息操作类型
操作类型包括:接收消息、发送消息、发布消息、取消发布消息、订阅消息、取消订阅消息。

表1‑14
1.1.15 版本号
表1‑15
1.1.16 发布/订阅的范围
表1‑16
1.1.17 消息状态
表1‑17
1.1.18 错误描述
表1‑18
1.1.19 对象控制类型
表1‑19
1.1.20 对象活动类型
表1‑20
1.1.21 对象操作选项
用于动态修改配置文件时指明对象操作选项。

表1‑21
1.为正常停止或删除,取此值时需要注意如下:
1)当停止QCU时,若有应用进程连接在此QCU上,则不能停止,否则能停止。

〖注意〗
停止QCU时,相应的发送进程和线程也同时被停止。

2)当删除队列时,若队列不为空,则不能删除;
3)当停止发送连接时,若连接上有用户数据正在发送,则不能停止。

4)当停止发布订阅代理时,若发布队列中有发布的消息,则不能停止。

5)当停止客户代理时,若有消息在客户端和代理之间传输,则不能停止。

2.为强制停止或删除,取此值时需要注意如下:
1)当强制停止QCU时,若有应用进程连接在此QCU上,则占有的实例资源被收回。

若有
消息在发送或接收,消息传输相关的线程则被杀掉以停止消息的传输。

2)当强制停止发送连接时,若连接上有用户数据正在发送,则此连接断开。

3)强制停止发布订阅代理。

4)强制停止客户代理。

〖提示〗
1.对于清空队列时,不管正常清空还是强制清空,若队列不为空或有未完成的消息和有应用正在与
其进行交互等情况,则队列里的信息都清空(清空需谨慎!!!!!)。

2.若想进行删除操作,必须先进行正常或强制停止操作后,才能进行删除操作。

3.QCU停止后,删除QCU时,QCU所占有的资源被全部清除。

4.无论正常停止还是强制停止发送进程,若所管理的任何一个连接上有用户数据正在发送,则此连
接断开。

5.无论正常停止还是强制停止接收进程,若连接上有消息在传输,则此连接断开。

1.2 结构TLQ_QCUHDL
结构TLQ_QCUHDL为应用实例标识。

1.3 结构TLQ_ID
结构TLQ_ID为连接标识。

1.4 结构TLQMSG_INFO
1.4.1 结构描述
表1‑22
1.4.2 域详细说明
1.4.
2.1 VerNo
版本号
用于版本的升级。

当TLQ升级后,应用程序如果要运行在新的版本上,必须在应用中设置合适的版本号。

一般用于内部使用。

1.4.
2.2 MsgType
消息的类型
用于在消息发送时指明消息的类型。

在消息接收后,可以获取消息的类型。

消息类型可取值为:0、1、2、3、5,或取值如下:
BUF_MSG:
为数据报消息,数据报消息是由应用产生。

FILE_MSG:
为文件消息,文件消息是由应用产生。

EVENT_MSG:
为事件消息。

事件消息只能由核心产生,用户应用不能产生事件类型的消息。

TRIGER_MSG:
为触发消息。

触发消息只能由核心产生,用户应用不能产生触发类型的消息。

DEAD_MSG:
为死信消息类型。

是事件相关的一类特殊消息,由系统产生,用户消息不能为此类型。

1.4.
2.3 UsrContext
消息的用户数据。

用于用户根据自己的需要填写发送的信息。

消息的附加信息都加到消息的用户数据中。

消息的用户数据的取值为64或取值如下:
USR_CONTEXT_LEN
为用户上下文信息存放字节个数最大长度。

1.4.
2.4 MsgSize
消息长度。

用于消息发送时设置消息的长度,根据配置可以适当的调整消息的长度。

若消息类型MsgType为BUF_MSG类型时,则为消息内容。

若消息类型MsgType为FILE_MSG类型时,则为文件消息的文件名。

1.4.
2.5 Expiry
消息的生命周期。

用于消息发送时指明消息的生命周期。

在指明的生命周期内接收消息,生命周期超时就接收不到消息。

若Expiry大于0,则表示消息的生命周期有限,为Expiry秒;
若Expiry等于0,则表示发送时不运行;
若Expiry小于0,表示生命周期无限长。

1.4.
2.6 Priority
消息的优先级。

用于消息发送时指明消息的优先级,消息的优先级大于9应用报错;小于0跟队列配置相同。

消息接收时,如果消息优先级作为条件接收,且优先级不在0~9范围内,则应用报错。

消息的优先级取值范围为0…9。

消息的优先级取值为4、0、4、9、-1,或取值如下:
TLQPRI_NORMAL
为缺省优先级。

TLQPRI_LOW
为最低优先级。

TLQPRI_MID
为中优先级。

TLQPRI_HIGH
为最高优先级。

TLQPRI_AS_QUEDEF
表示跟消息所属队列的优先级定义一致。

1.4.
2.7 Persistence
消息的持久性类型。

用于消息发送消息的持久性和消息订阅请求的持久性。

消息发送时,若消息的持久性小于0,则表示跟队列持久性定义一致;若消息的持久性等于0,则表示为非持久消息;若消息的持久性大于0,则表示是持久性消息。

消息订阅时,表示订阅请求的持久性。

消息的持久性取值为1、0、-1,或取值如下:
TLQPER_Y
为持久。

TLQPER_N
为非持久。

TLQPER_AS_QUEDEF
表示跟消息所属队列持久性定义一致。

1.4.
2.8 MsgOperateType
消息控制类型。

用于消息发送时指明消息的控制类型,消息的控制类型主要有压缩操作和安全出口操作。

具体操作顺序为压缩操作->安全出口操作,或两项的“或”运算。

消息控制类型取值为0x1、0x2,或取值如下:
TLQOPER_COMPRESS
为压缩操作。

TLQOPER_EXIT
为安全出口操作。

1.4.
2.9 MsgOperateInfo
消息控制数据。

用于消息发送或接收时指明消息控制数据,主要为安全出口的传入参数。

消息描述控制数据的最大长度为16,其取值为OPERATEDATALEN。

1.4.
2.10 UserPropertyLen
用户自定义属性串的长度。

一个消息的自定义属性串最大长度为1024个字节。

消息发送时,若TLQ的消息属性无法准确描述用户的消息时,可采用自定义属性自义方式进一步对消息进行描述,应用在发送之前设置消息的自定义属性,根据用户自定义属性处理方法返回的最终值,根据用户需要把此值赋给自定义属性串的长度UserPropertyLen。

若应用设置的UserPropertyLen>1024,则自定义属性处理方法(setxxxProperty()方法)返回失败。

1.4.
2.11 UserPropertyNum
用户自定义属性的个数。

用于应用在发送之前设置消息的自定义属性的个数,自定义属性的个数由用户根据需要自己赋值。

1.4.
2.12 CorrMsgId
消息的关联标识。

用于消息的有条件接收,跟另一个消息的联系,一般用于连接请求消息跟其应答消息的联系。

1.4.2.13 SrcNode
产生源消息节点名。

源消息节点名SrcNode与MsgId一起使用,保证了单消息在网络中的唯一性。

目的队列名。

目的队列名是由配置文件中配置的队列名由核心返回的。

1.4.
2.15 PutDateTime
消息发送到队列的时间,精确到秒。

1.4.
2.16 MsgOrigin
消息来源。

用户不必关心。

消息来源取值为0、1、2或取值如下:
TLQORIGIN_AP
来源于普通应用。

TLQORIGIN_JMS
来源于JMS应用。

TLQORIGIN_THINCLI
来源于瘦客户应用。

1.4.
2.17 MsgId
消息的标识。

1.4.
2.18 OrgMsgLen
消息处理前的长度。

一般是对加密、压缩的BUF消息使用的,一般用户不必关心。

1.4.
2.19 FileSize
消息的文件大小。

消息的文件大小取值为32或取值如下:
LONG_INT_MAXLEN
为长整型的最大长度。

1.4.
2.20 EvTime
事件产生的时间(精确到秒)。

1.4.
2.21 EvStyle
事件的唯一标识。

1.4.
2.22 SubFlag
发布订阅标识,用于JMS。

文件重命名标识。

RenamedFlag取值为0和1,缺省值为0。

1)RenamedFlag标志置为1时,为文件重命名标识;
2)RenamedFlag标志置为0时,不为文件重命名标识。

当本地发送同名文件、网络接收同名文件或瘦客户发送同名文件时,在队列控制单元配置文件的[Basic]小节中,配置项DupFileRenameFlag若配置为1,则重名文件更名为有命名规则的其它文件名,且系统会自动把RenamedFlag的值置为1,以方便用户通过获取此更名标识,来自行还原出原来的文件名。

配置项DupFileRenameFlag若配置为0,若有重名文件,则系统直接报错。

1.4.
2.24 CryptCompFlag
加密压缩标识。

加密压缩标识取值为0x00、0x01、0x02、0x04,或取值如下:
TLQDECRYPTDECOMP
为未加密压缩
TLQENCRYPT
为仅加密
TLQCOMP
为仅压缩
TLQENCRYPTCOMP
为先加密后压缩
TLQCOMPENCRYPT
为先压缩后加密
1.4.
2.25 Reserve
以备后用。

1.4.
2.26 OffSet
偏移量。

内部使用。

1.4.
2.27 RollbackCount
对于本地队列,为消息回滚次数。

消息被接收回滚的次数,包括:事务回滚或手动确认方式接收后的回滚确认。

对于发送队列,为自定义重试发送次数。

此处RollbackCount跟配置文件tlsys.conf中的[System]小节中的参数RetryCount的关系设置说明如下:
对于发送方:
1.消息重试发送次数限制功能打开时(RetryCount配置为大于0的数):
1)若应用中设置的RollbackCount值大于0,则此值为消息重试发送次数
2)若应用中设置的RollbackCount值等于0,则使用配置RetryCount设置的具体值
3)若应用中设置的RollbackCount值小于0,则为消息重试发送次数无限
2.消息重试发送次数限制功能关闭时(RetryCount配置为小于0的数,即为-1):
无论应用消息中RollbackCount为任何值,都将进行无限次重试。

对于接收方:
1.为本地队列时,RollbackCount值置为0。

2.为发送队列时,保留消息中的RollbackCount值,忽略由于网络原因导致的尝试重试发送
次数误差。

这时对于发送方的限制同样适用于接收方的发送队列。

1.5 结构TLQMSG_OPT
1.5.1 结构描述
表1‑23
1.5.2 域详细说明
1.5.
2.1 VerNo
版本号。

用于版本的升级。

当TLQ升级后,应用程序如果要运行在新的版本上,必须在应用中设置合适的版本号。

一般用于内部使用。

1.5.
2.2 Topic
主题。

用于发布/订阅消息的主题。

其主题名的最大长度为512,取值为FULLTOPICLEN。

1.5.
2.3 MsgIdFlag
消息标识产生方式。

用于应用消息发送或订阅/发布时指明消息标识产生方式。

消息标识产生方式取值为0、1或分别取值如下:
TLQMIF_ AUTO
为核心系统产生MsgId(缺省)。

TLQMIF_USER
为用户指定MsgId。

1.5.
2.4 QueName
远程队列名、本地队列名、发送队列名、集群队列名。

用于指明队列名,根据消息操作类型不同指明的队列名也不相同。

消息发送时用于指明目的队列名;
消息接收时用于指明本地队列名;
消息订阅时用于指明订阅接收队列名。

1.5.
2.5 MatchOption
用于消息接收删除的条件匹配选项,跟消息描述信息配合使用。

条件匹配选项取值为0x0、0x1、0x2、0x4、0x8、0x10、0x40、0x80、0x100、0x200、0x400、0x800或分别取值如下:
TLQMATCH_NONE
为没有匹配条件;
TLQMATCH_MSGID
为消息标识匹配条件;
TLQMATCH_CORRMSGID
为消息相关性匹配条件;
TLQMATCH_MSGTYPE
为消息类型匹配条件;
TLQMATCH_PRIORITY
为消息的优先级匹配条件
TLQMATCH_SRCNODE
为源消息节点名匹配条件
TLQMATCH_PERSISTENCE
为消息持久性匹配条件
TLQMATCH_EVSTYLE
为消息事件的唯一标识匹配条件
TLQMATCH_EVTIME
为消息事件产生的时间匹配条件
TLQMATCH_USRCONTEXT
为用户附加文本内容匹配
TLQMATCH_FIRSTMSG
为只获取第一条消息匹配
其中,除TLQMATCH_NONE外,其它条件可以自由组合。

根据需要条件匹配选项可以选一个条件,也可以选多个条件一起组合使用,多个条件一起组合使用时,用“|”进行分隔。

如下举例:选一个条件如:TLQMA TCH_MSGTYPE
表示满足消息类型匹配条件就可以
选多个条件一起组合:TLQMATCH_MSGTYPE|TLQMATCH_SRCNODE| TLQMATCH_PRIORITY
表示同时满足这三项匹配条件才可以
1.5.
2.6 RemoveFileFlag
用于文件消息发送完毕后源文件是否被删除。

取值为1、0或分别取值如下:
REMOVEFILE
为删除。

NOTREMOVEFILE
为不删除。

取其它值也表示不删除。

1.5.
2.7 Selector
消息查询条件。

用于消息发送时指明消息查询条件。

查询条件的最大长度为1024,取值为:TLQSELECTORLEN。

selector由用户自己写,用法跟SQL语句的组织方式一致。

如:
age BETWEEN 15 AND 19
prop_name IS NULL
JMSType = 'car' AND color = 'blue' AND weight > 2500
1.5.
2.8 SelectorLen
条件查询字符串的长度。

用于接收和删除消息时的selector条件的串长度。

根据SelectorLen的值来判断Selector是否有效:
1.若SelectorLen<=0,则表示没有Selector作为条件;
2.若SelectorLen>0,则表示使用Selector作为条件。

1.5.
2.9 ReportType
订阅事件的类型。

订阅事件的类型取值为0x1、0x2、0x4、0x8、0x100或分别取值如下:
TLQEVENT_SNDBEGIN
为核心开始发送数据产生的事件
TLQEVENT_SNDOVER
为核心发送数据完成产生的事件
TLQEVENT_RCVBEGIN
为核心开始接收数据产生的事件
TLQEVENT_RCVOVER
为核心接收一条消息完成产生的事件。

若是订阅,则要求接收方的事件能够返回发送方。

TLQEVENT_MSGCLEAR
为队列消息被清空产生的事件
缺省定义的死信事件类型,不能订阅的死信事件类型且用户不需要定义,其取值为0x10、0x20、0x40、0x80或分别取值如下:
TLQEVENT_EXPIRY
为消息生命周期超时产生的事件。

TLQEVENT_FILEFAIL
为文件消息发送失败产生的事件
TLQEVENT_ROLLBACK
为消息回滚产生的事件
TLQEVENT_FILEDEL
为文件消息删除产生的事件
1.5.
2.10 ReportQName
事件消息存放的本地队列名。

用户应用时,若订阅了事件类型,而没有定义本地队列名(ReportQName),则事件消息存放到缺省系统队列TLQ.SYS.EVENT中。

1.5.
2.11 AckMode
接收消息时的确认模式。

接收消息时的确认模式取值1、0或分别取值如下:
TLQACK_AUTO
为自动确认模式,消息接收后即被删除;
TLQACK_USER
为用户确认模式,消息接收后并不删除,必须等待用户确认。

用户确认可取值1、0或分别取值如下:
TLQACK_COMMIT
为提交确认;
TLQACK_ROLLBACK
为回滚确认。

1.5.
2.12 WaitInterval
接收消息时的等待时间。

仅对接收有效,在此时间内接收到符合条件的消息即返回,否则一直等待,直到此时间到。

WaitInterval等于0时,表示不等待,找到符合条件的消息就立即返回,没有找到也立即返回;
WaitInterval大于0时,表示有限等待时间,如果在等待时间内出现符合条件的消息则返回,否则一直等待,直到等待时间到。

WaitInterval小于0时,表示无限等待,直到符合条件的消息出现。

1.5.
2.13 OffSet
偏移量。

用于版本升级后的兼容(内部使用)。

1.5.
2.14 DelState
删除消息的状态。

删除消息状态的取值为0xF、0x1、0x2、0x4、0x8或分别取值如下:
TLQSTATE_ALL
为删除所有状态的消息;
TLQSTATE_READY
为删除没有发送或接收完毕的消息;
TLQSTATE_SENDING
为删除正在发送的消息;
TLQSTATE_RECEIVING
为删除正在接收的消息。

TLQSTATEE_W AITACK
为删除正在等待应答的消息。

也可以为上述取值的一种或几种。

1.5.
2.15 PubSubScope
发布/订阅的范围。

发布/订阅的范围取值为0x01、0x02、0x01|0x02或分别取值如下:
TLQPSS_LOCAL
为本地发布/订阅;
TLQPSS_GLOBAL
为异地发布/订阅;
TLQPSS_LOCAL| TLQPSS_GLOBAL
为全局发布/订阅
1.5.
2.16 OperateType
消息操作类型。

操作类型包括:发送消息、接收消息、发布消息、取消发布消息、订阅消息、取消订阅消息。

调用Tlq_PutMsg()方法前消息操作类型取值为2、3、4、5、6或分别取值如下:TLQOT_PUT
为普通消息发送;
TLQOT_PUB
为发布消息;
TLQOT_DELPUB
为取消发布消息;
TLQOT_SUB
为订阅消息;
TLQOT_DELSUB
为取消订阅消息。

调用Tlq_GetMsg()方法前消息操作类型取值为0、1或分别取值如下:
TLQOT_GET
为读取消息;
1.6 客户端连接上下文信息的数据结构TLQCONNCONTEXT 1.6.1 结构描述
表1-24
1.6.2 域详细说明
1.6.
2.1 BrokerId
为客户端代理的标识。

若大于等于0,则为有效客户端代理标识,标识着客户端配置的配置文件起作用;
若小于0,则标识配置文件不起作用,连接的信息以连接上下文信息为准。

相关文档
最新文档