1、 TongTechTongLINK/Q8.0 系统开发手册 -客户端集群编程参考 2011 年 5 月 TongLINK/Q V8.0 系统开发手册 _客户端集群编程参考 北京东方通科技股份有限公司 地址:北京市海淀区彩和坊路 10 号 1+1 大厦 2、 3 层 客户服务热线:400-650-7088 Email: 版权声明 版权 1993-2011 东方通科技版权所有。 版权保护说明 未经东方通科技公司书面许可,本文档不得整体或部分地复印、复制、翻译或缩减成任何电子介质或计算机可以阅读的格式。本文档中的信息可能不加通知进行修改。 商标 1993-2011 东方通科技版权所有。TongTec
2、h 、 TongLINK/Q、 TongEASY、 TongWeb、TongIntegrator、 TongSEC、 TongWorkflow、 TongGTP、 MBP 是东方通科技的注册商标。其他所有的公司和产品名称可能为第三方所有。 前言 本手册主要介绍客户端集群简介、客户端集群相关参数配置、 C客户端集群接口相关内容及 JMS客户端集群接口相关内容等信息。 1. 阅读对象 本手册面向消息中间件 TongLINKQ8.0产品用户以及对消息中间件感兴趣的读者。 2. 手册约定 本手册遵循以下约定: z 手册中所有的队列控制单元简称为QCU 。 z 手册中所有的消息中间件TongLINK/Q
3、8.0 简称为TLQ 。 z 此手册适用于UNIX &Windows 。 z 下面相关技术文档中的蓝色字体,表示当前阅读文档。 3. 相关技术文档 z TongLINKQ8.0 快速使用手册 主要介绍产品简介、基本概念、产品安装、发送节点和接收节点的配置、节点启动停止、程序流程、程序运行及错误号的跟踪与查找等。 z TongLINKQ8.0 系统安装手册_ 服务端安装 主要介绍系统安装的环境、系统安装过程、系统有关环境变量配置、系统的启动、 License相关说明、系统的停止及系统日志说明等。 z TongLINKQ8.0 系统安装手册_ 管理控制台安装 主要介绍TLQ 管理控制台安装的环境、
4、安装过程、有关环境变量设置、 TLQ控制台服务器的启动及TLQ管理控制台的登录等。 z TongLINKQ8.0 系统概述 主要介绍消息中间件产品的系统功能及特点、系统结构架构、基本概念、队列控制单元、消息管理、发布订阅、集群、网络传输、 SSL安全传输、安全出口、事务、事件管理、应用程序管理、系统管理、目录管理等。 z TongLINKQ8.0 系统开发手册_C 编程参考 主要介绍 C接口有关的应用编写中用到的相关宏、数据结构及函数定义等。z TongLINKQ8.0 系统开发手册_C#编程参考 主要介绍 C#提供的结构和 C#提供的类等有关说明。 z TongLINKQ8.0 系统开发手册
5、_ 程序设计指南 主要介绍有关应用程序设计概述、消息介绍、技术及队列准备、消息描述及消息操作选项设计、消息体数据用户自定义属性设计、连接上下文参数设计、应用程序编写、消息操作相关程序编译、配置文件的编辑约束、配置相关数据结构、配置文件动 /静态配置、配置文件相关编程和编译、使用Java 进行配置文件的编辑等。 z TongLINKQ8.0 系统开发手册_ 安全出口编写指南 主要介绍安全出口概述、配置、编写及编程模式等。 z TongLINKQ8.0 系统开发手册_JAVA 编程参考 主要介绍J AVA 编程有关概述、相关配置、BaseClass 相关的类和使用BaseClass 编程等进行说明
6、。 z TongLINKQ8.0 系统管理手册_ 管理控制台 主要介绍管理控制台使用说明、用户管理、组管理及节点管理等。 z TongLINKQ8.0 系统管理手册_ 系统工具 主要介绍系统监视工具tlqstat 、系统对象控制工具、错误信息查看工具、资源占用计算工具tlqdispshm、 IPC资源查询工具tlqipc 、检查系统是否启动工具tlqready 、配置文件转换工具tlqconvert 及设置SSL 的p12 证书密码工具tlqcertpwd 等。 z TongLINKQ8.0 系统管理手册 _配置 管理 主要介绍有关系统运行、参数配置、参数配置项约束、参数配置举例、系统日志等。
7、 z TongLINKQ8.0 客户端使用手册 主要介绍客户端的基本概念、客户端 UNIX 和 Windows 的安装、系统目录结构、参数配置、代理操作、通讯安全及系统日志等。 z TongLINKQ8.0 系统常见问题排除手册 主要介绍系统启动常见问题、应用程序的常见问题及管理控制台的常见问题等。 z TongLINKQ8.0 系统性能调优手册 主要介绍服务端系统性能调优和客户端性能调优等方面说明。 z TongLINKQ8.0 系统开发手册_JMS 编程参考 主要介绍TongLINK/Q JMS 应用体系结构、JAVA 目录说明、使用TLQJMS 程序的步骤、TLQJMS 程序配置说明、T
8、LQJMS 环境设置、编写TLQ JMS 程序、编写发布订阅应用、JMS 消息、JMS 中的加密&压缩、JMS 的接口、使用基于TLQJMS 的MDB 及常见问题等进行说明。 z TongLINKQ8.0 系统开发手册_ 客户端集群编程参考 主要介绍客户端集群简介、客户端集群相关参数配置、C 客户端集群接口相关内容及 JMS 客户端集群接口相关内容等信息。 4. 对此版本新增和更改的内容 目 录 第 1 章 客 户端集群简介 1 1.1 客户端集群概述 1 1.2 客户端集群应用场景 1 1.3 C客户端集群API 工作流 程 1 2 1.4 C客户端集群API 工作流 程 2 3 1.5 J
9、MS客户端集群API 工作流 程 4 第 2 章 客户端集 群相关参数配置 5 2.1 配置文件tlqjndi.c onf . 5 2.1.1 配置信息小节 5 2.1.2 tlqjndi.conf格式 . 5 2.1.3 tlqjndi.conf参数配置说明 . 6 2.1.3.1 Factory 连接工厂的参数说明 . 6 2.1.3.2 JndiQueue队列的参数说明 7 2.1.3.3 ClusterFactory客户端集群 连接工厂的参数说明 7 2.1.3.4 ClusterQueue客户端集群队列的参数说明 8 第 3 章 C客户端集群 接口介绍 . 9 3.1 C客户端集群接
10、口模式(一) . 9 3.1.1 客户端的配置文件tlqcli.c onf 9 3.1.2 应用编写中用到的数据结构 9 3.1.2.1 应用实例标识TLQ_QCUHDL 9 3.1.2.2 连接标识TLQ_ID 9 3.1.2.3 客户端连接上下文信息的数据结构TLQCONNCONTEXT . 10 3.1.2.4 消息描述的数据结构TLQMSG_INFO 13 3.1.2.5 消息操作选项的数据结构TLQMSG_OPT 20 3.1.2.6 消息错误信息的数据结构TLQError 27 3.1.3 函数定义 27 3.1.3.1 函数声明 27 3.1.3.2 应用函数 28 3.1.3.
11、3 客户端连接上下文信息函数 28 3.1.3.4 连接/ 断开系统资源函数 . 29 3.1.3.5 队列控制单元操作函数 30 3.1.3.6 消息处理函数 31 3.1.3.7 组消息函数 383.1.4 C客户端集群的DEMO 40 3.1.4.1 消息发送 40 3.1.4.2 消息接收 42 3.2 C客户端集群接口模式(二) . 44 3.2.1 应用编写中用到的数据结构 44 3.2.1.1 消息描述的数据结构TLQMSG_INFO 44 3.2.1.2 消息操作选项的数据结构TLQMSG_OPT 51 3.2.1.3 消息错误信息的数据结构TLQError 58 3.2.1.
12、4 客户端集群连接工厂的数据结构TLQCLUSTER_F ACTORY. 58 3.2.1.5 客户端集群发送线程信息的数据结构PUT_THRE AD_INFO . 59 3.2.1.6 客户端集群线程信息的数据结构TRDINFO . 59 3.2.1.7 客户端集群连接信息的数据结构CONNECTINFO 60 3.2.1.8 客户端集群实例句柄的数据结构TLQCLUSTER_HANDLE 61 3.2.2 函数定义 62 3.2.2.1 函数声明 62 3.2.2.2 应用函数 62 3.2.3 C客户端集群的DEMO 65 3.2.3.1 消息发送 65 3.2.3.2 消息接收 69
13、第 4 章 JMS客户端 集群接口介绍 72 4.1 JMS客户端集群的相关类 . 72 4.1.1 ClusterQueueSupport类 . 72 4.1.2 ClusterQueueConsumer类 72 4.1.3 ClusterQueueProducer类 72 4.2 JMS客户端集群类的方法说明 . 73 4.2.1 ClusterQueueSupport类的 方法 . 73 4.2.1.1 createSupport 73 4.2.1.2 clusterConnection. 73 4.2.1.3 lookupClusterQueue. 74 4.2.1.4 connect
14、ionStart. 74 4.2.1.5 connectionStop . 74 4.2.1.6 createClusterQueueProducer 74 4.2.1.7 createClusterQueueConsumer 74 4.2.1.8 close 75 4.2.2 ClusterQueueConsumer类 的方法 75 4.2.2.1 setMessageListener. 754.2.2.2 close 754.2.3 ClusterQueueProducer类的方法 75 4.2.3.1 send. 75 4.2.3.2 sendFile 76 4.2.3.3 close
15、76 4.3 JMS客户端集群的DEMO . 77 4.3.1 消息发送 77 4.3.1.1 发送消息流程 77 4.3.1.2 发送消息应用示例 77 4.3.2 消息接收 78 4.3.2.1 接收消息流程 78 4.3.2.2 接收消息应用示例 79 第 1 章 客户端集群简介 1 第 1章 客户端集群简介 1.1 客户端集群概述 客户端集群实现了服务器的横向扩展,增加了服务器的并发处理能力。 无论大量客户端,且每个客户端产生的消息量少,还是少量客户端,且每个客户端产生的消息量大,客户端应用都能通过服务器的横向扩展来满足消息传输的要求。 当大量消息发送到服务器,单个服务器无法处理,需要
16、多台服务器分担大量的客户端连接,所以需要服务器的横向扩展,从而满足消息传输的要求。 1.2 客户端集群应用场景 图 1-1 【应用场景说明】 1) 此场景消息处理量大,需要是多台服务器来处理消息的压力; 2) 在客户端集群的服务器上需要对配置文件tlqjndi.conf 进行配置,具体配置请参见下面的 第 2 章客户端集群相关参数配置 的说明。 第 1 章 客户端集群简介 2 1.3 C客户端集群API工作流程 1 此小节的工作流程适用于下面的 C客户端集群接口模式(一) 。 Tlq_CloseQCUTlq_PutMsg Tlq_GetMsgTlq_Conn队列名给ClusterName 赋值
17、Tlq_OpenQCUTlq_SetConnContextTlq_InitTlqConnContextTlq_DisConn图 1-2 【 C 客户端集群 API 工作流程说明】 1) Tlq_InitTlqConnContext:初始化客户端连接上下文信息。 2) Tlq_SetConnContext:客户端设置连接上下文信息。用于指定客户端应用所要连接的客户代理以及客户端的一些相关信息。 3) Tlq_Conn():连接系统资源。在调用此函数之前,需要将 QueName 给 ClusterName 赋值,如:strcpy(gid.ClusterName, QueName)。 4) Tlq_
18、OpenQCU():用于打开队列控制单元,标识一个应用实例的开始,即开始相关消息操作和队列操作。 5) Tlq_PutMsg():用于消息发送到指定的队列。 6) Tlq_GetMsg():用于接收本地队列中的消息。 7) Tlq_CloseQCU():用于断开与队列控制单元的连接,并释放占有的共享系统资源,标识一个应用实例的结束。必须与 Tlq_OpenQCU 配对使用。 8) Tlq_DisConn():断开与系统资源的连接,必须与 Tlq_Conn 配对使用。 第 1 章 客户端集群简介 3 1.4 C客户端集群API工作流程 2 此小节的工作流程适用于下面的 C客户端集群接口模式(二)
19、 。 Tlq_ClusterCloseInstanceTlq_ClusterProducer Tlq_ClusterConsumerTlq_ClusterLookupClusterConsumerClusterProducerTlq_ClusterCreateInstance图 1-3 【 C 客户端集群 API 工作流程说明】 1) Tlq_ClusterLookup:客户端应用查询客户端集群队列成员对应的多个 IP 地址和端口号。 2) Tlq_ClusterCreateInstance:客户端应用查询获取了集群队列成员对应的 IP 地址和端口号之后,就可以进行创建多个客户端集群队列的实例
20、。 3) Tlq_ClusterProducer/Tlq_ClusterConsumer:查询和创建实例后,客户端应用发送消息或接收消息。 4) Tlq_ClusterCloseInstance:客户端应用关闭客户端集群实例。 第 1 章 客户端集群简介 4 1.5 JMS客户端集群API工作流程 ClusterQueueProducer ClusterQueueConsumerClusterQueueSupportSetMessageListenersendClusterconnectionLookupClusterQueue发送消息 接收消息图 1-4 【 JMS 客户端集群 API 工作
21、流程说明】 1) LookupClusterQueue:通过 JNDI 服务器来查找出对应的集群队列。 2) ClusterCreateSupport:集群队列通过 createSupport 方法创建一个 ClusterQueueSupport 实例。 3) ClusterConnection:由 ClusterConnection 方法创建 socket 连接。 4) clusterQueueProducer:由 clusterQueueSupport 通过 createClusterQueueProducer 创建集群队列生产者 clusterQueueProducer,然后通过集群队列
22、生产者向目标队列发送消息。 5) clusterQueueConsumer:由 clusterQueueSupport 通过 createClusterQueueConsumer 创建集群队列消费者 clusterQueueConsumer,用于接收消息。 6) 发送消息:通过 clusterQueueProducer 的 send() 方法发往集群队列。 7) 接收消息:通过 clusterQueueConsumer 的 setMessageListener 设置消息监听器,接收目标队列中的消息。当接收队列中有消息时,会调用消息监听器中的 onMessage 方法来通知应用。 第 2 章 客
23、户端集群相关参数配置 5 第 2章 客户端集群相关参数配置 客户端集群相关配置信息都存放在一个文件名为 tlqjndi.conf 配置文件中,tlqjndi.conf 文件放到TLQCONFDIR 目录下。 下面具体介绍 tlqjndi.conf 配置文件中跟客户端集群有关的相关配置的格式及参数配置说明等。 2.1 配置文件t lqjndi.conf 2.1.1 配置信息小节 tlqjndi.conf 的配置文件中跟客户端集群配置信息相关小节如下: z 连接工厂小节- Factory z JNDI队列- JndiQueue z 客户端集群连接工厂- ClusterFactory z 客户端集群
24、队列- ClusterQueue 2.1.2 tlqjndi.conf格式 Factory - 连接工厂 # FactoryRecord - 连接工厂描述记录小节 FactoryName = fac1 - 连接工厂名称 FactoryType = cf - 连接工厂方式,有如下几种: -cf 为 ConnectionFactory; -qf 为 QueueConnectionFactory; -tf 为 TopicConnectionFactory; -xcf 为 XAConnectionFactory; -xqf 为 XAQueueConnectionFactory; -xtf 为 XATo
25、picConnectionFactory。 tmqiAddressList = tlqlocal:/localhost/qcu1 - 连接 url tmqiPingInterval=30 - Ping 间隔,单位秒 tmqiConsumerFlowLimit = 1000 - Consumer 流控大小,注册消费者一次可以发送到-客户端的消息数量,值为消息条数 tmqiConsumerFlowThreshold = 50 - Consumer 流控小于百分比多少时发送恢复流控 tmqiAckTimeout = 1800000 - 响应超时时间,单位毫秒 tmqiProducerFlowByte
26、sLimit = 1000000 - Produce 流控大小,单位字节 tmqiFileRcvDir = - 文件消息接收目录 clientBrokerAddress = 127.0.0.1:10261 - 瘦客户的 url第 2 章 客户端集群相关参数配置 6 tmqiLocalFileConnection = false -是否使用本地文件方式,默认为 false # JndiQueue - Jndi队列 JndiQueueRecord - Jndi队列记录小节 JndiQueueName = jndiq1 - jndi 队列名 TlqQueueName = sq - TLQ 的队列名
27、# ClusterFactory -客户端集群连接工厂小节 ClusterFactoryRecord -客户有端集群连接工厂描述记录小节 ClusterFactoryName = cluster1 -客户端集群的连接工厂名。 Reference = fac1 -连接工厂引用。 # ClusterQueue -客户端集群队列小节 ClusterQueueRecord -客户端集群队列描述记录小节 JndiClusterQueueName = cq1 -客户端集群队列 JNDI 名。 ClusterQueueName = lq1 -客户端集群队列名。 Reference = cluster1 -连
28、接工厂引用。 2.1.3 tlqjndi.conf参数配置说明 2.1.3.1 Factory 连接工厂的参数说明 表 2-1 参数 说明 取值范围缺省值 数据类型单位FactoryName 连接工厂名称 1-48 字符串 FactoryType 连接工厂方式有如下几种: z cf 为 ConnectionFactory; z qf 为 QueueConnectionFactory; z tf 为 TopicConnectionFactory; z xcf 为 XAConnectionFactory; z xqf 为 XAQueueConnectionFactory;z xtf 为 XATop
29、icConnectionFactory; cf 字符串 tmqiAddressList 连接 url。支持本地方式和远程方式。 1) 本地方式 :tlqlocal:/localhost/qcuname, qcuname1-1024 tlqlocal:/localhost/qcu1 字符串 第 2 章 客户端集群相关参数配置 7 为需要连接的 QCU 名;默认为tlqlocal:/localhost/qcu1。 2) 远程方式 : tlkq:/ipaddress:port 。Ipaddress 为要连接的 TLQ 节点的 IP地址,port 为运行的端口号。 tmqiPingInterval 客
30、户端和客户端代理之间心跳包间隔。 仅对远程方式有效。 1 30 整型 秒 tmqiConsumerFlowLimit Consumer 流控大小,注册消费者一次可以发送到客户端的消息数量,值为消息条数。 1 1000 整型 条 tmqiConsumerFlowThreshold Consumer 流控小于百分比多少时发送恢复流控,单位为百分比。 1-99 50 整型 百分比 tmqiAckTimeout 响应超时时间,单位为毫秒。 1 1800000 整型 毫秒 tmqiProducerFlowBytesLimit Produce 流控 bytes 大小。仅对远程方式有效 0 1000000
31、整型 字节 clientBrokerAddress 瘦客户的 url,即客户端代理的 IP 地址和端口号,格式为:IP:PORT( 如:127.0.0.1:10261)。 127.0.0.1:10261 字符串 tmqiLocalFileConnection 是否使用本地文件方式的标识,取值为true 或 false,默认为 false。 true 或false。false 字符串 2.1.3.2 JndiQueue队列的参数说明 表 2-2 参数 说明 备注 JndiQueueName JNDI 队列名称。 TlqQueueName TLQ 的队列名称。 2.1.3.3 ClusterFac
32、tory客户端集群连接工厂的参数说明 表 2-3 参数 说明 备注 ClusterFactory 客户端集群连接工厂小节 ClusterFactoryRecord 客户有端集群连接工厂描述记录小节 ClusterFactoryName 客户端集群的连接工厂名。 Reference 连接工厂引用。此处配置的值要跟上面的连接工厂名称配置的值对应,根据用户需要可以引用一个或多个连接工厂名称。 第 2 章 客户端集群相关参数配置 8 2.1.3.4 ClusterQueue客户端集群队列的参数说明 表 2-4 参数 说明 备注 ClusterQueue 客户端集群队列小节 ClusterQueueRe
33、cord 客户端集群队列描述记录小节 JndiClusterQueueName 客户端集群队列 JNDI 名。 ClusterQueueName 客户端集群队列名。此队列名只能是本地队列名。 Reference 连接工厂引用。此处配置的值跟客户端集群的连接工厂名(ClusterFactoryName )配置的值对应,一次只能引用一个客户端集群连接工厂名称。 第 3 章 C 客户端集群接口介绍 9 第 3章 C客户端集群接口介绍 C 客户端集群接口主要提供两种接口模式,根据用户的习惯,可以随便地使用哪种接口进行消息传输,下面主要对这种接口分别进行说明。 3.1 C客户端集群接口模式(一) 3.1
34、.1 客户端的配置文件tlqcli.conf 若使用C 客户端集群接口模式(一),则除需要对 tlqjndi.conf配 置文件 中相关客户端集群配置外,还需要在客户端的配置文件tlqcli.conf 中配置JndiUrl 、 ClusterFlag和 ClusterConnNum三个配置项,具体请参见TongLINKQ8.0 客户端使用手册中的“Broke 的参数说明”小节中的三个参数配置说明。 3.1.2 应用编写中用到的数据结构 3.1.2.1 应用实例标识 TLQ_QCUHDL TLQ_QCUHDL 为应用实例标识。 3.1.2.2 连接标识T LQ_ID TLQ_ID 为连接标识。
35、3.1.2.2.1 结构描述 表 3-1 域名 类型 含义 *pTran void 为内部使用,用户无需关心。 TlqConnText TLQCONNCONTEXT 客户端连接上下文信息的数据结构,具体请参见下面的 章节 。 NetTlqId NETTLQID 为内部使用,用户无需关心。 result TCRESULT 为内部使用,用户无需关心。 QCUName charNAMELEN + 1 队列控制单元名称。 LinkInfoIndex int 客户端连接信息索引。 qcuLoc int 队列控制单元注册表。 第 3 章 C 客户端集群接口介绍 10 CliBrokerId int 客户端
36、代理标识。 sid int 为内部使用,用户无需关心。 ClusInfo CLUSTER_CONNECTION_INFO 为内部使用,用户无需关心 ClusterName charNAMELEN+1 集群队列名称。 ClientId charTLQCLIENTIDLEN + 1 客户端标识。 3.1.2.2.2 域详细说明 TLQ_ID 数据结构所包含的域名,用户可能用到的 ClusterName 域名,其他仅供参考,下面只对此域进行说明。 ClusterName 为集群队列名称。 在调用 Tlq_Conn()函数之前,需要将 QueName 给 ClusterName 赋值,如: strcp
37、y(gid.ClusterName, QueName)。 3.1.2.3 客户端连接上下文信息的数据结构 TLQCONNCONTEXT 3.1.2.3.1 结构描述 表 3-2 域名 类型 含义 BrokerId int 客户端代理的标识 LogName charFULLFILENAMELEN+1 环境变量下所指明的日志文件就不再生效 FilesDir char PATHNAMELEN+1 QCU 的发送文件存放路径 ConnId char TLQCONNIDLEN+1 客户端连接标识 RetransFlag int 此项保留。是否支持断点续传 HostName char NAMELEN+1
38、机器名或 IP 地址 ListenPort int 客户端代理监听端口号。 ConnTime int 连接的有效时间。 BlockSize int 传输的数据块长度,单位为 KBytes。NeedBlockReply int 数据块是否需要应答。 ReplyTmout int 数据包的应答超时时间。 UserName char NAMELEN+1 客户端用户名。 第 3 章 C 客户端集群接口介绍 11 Password char NAMELEN+1 客户端用户名密码。 SecExitLibName char LIBNAMELEN+1 缺省出口动态库名字,不包含路径,其最大长度为 30。 Se
39、cExitNetName char LIBNAMELEN+1 网络层安全出口的函数名,其最大长度为 30。 SecExitTransportName char LIBNAMELEN+1 传输层安全出口的函数名,其最大长度为 30。 SecExitMessageName char LIBNAMELEN+1 消息层安全出口的函数名,其最大长度为 30。 SecExitFlag int 若不为空,则下面三项有效。 SecNetData charTLQEXITDATALEN+1 网络层安全出口网络数据 SecSndData char TLQEXITDATALEN+1 传输层安全出口发送数据 SecRc
40、vData char TLQEXITDATALEN+1 传输层安全出口接收数据 RenFileRestituteFlag int 接收过程中被重命名文件是否需要恢复原文件名。 ClusterFlag int 是否使用集群队列标志。 ClusterConnNum int 每个集群队列连接数。 JndiUrl char TLQJNDILEN 集群 JNDI 服务器地址。 3.1.2.3.2 域详细说明 BrokerId 为客户端代理的标识。 若大于等于 0,则为有效客户端代理标识,标识着客户端配置的配置文件起作用; 若小于 0,则标识配置文件不起作用,连接的信息以连接上下文信息为准。 LogNam
41、e 为日志文件名,此文件名可以带全路径。环境变量下所指明的日志文件就不再生效。 此日志文件名的全路径长度为 512,取值为 FULLFILENAMELEN。 FileDir 为 QCU 的发送文件存放路径。 文件存放路径的最大长度为 128,取值为 PATHNAMELEN。 ConnId 第 3 章 C 客户端集群接口介绍 12 为客户端连接标识。 客户端连接标识的最大长度为 48,取值为 TLQCONNIDLEN。 RetransFlag 此项保留。 1) 此标志若为 0,则表示不支持断点续传; 2) 此标志若为 1,则表示支持断点续传。 HostName 为机器名或 IP 地址。 机器名或
42、 IP 地址的取值为 NAMELEN,其最大长度为 48。 ListenPort 为客户端代理监听端口号。此端口号必须唯一,且一般为 1024 以上。 ConnTime 为客户端连接的有效时间。 BlockSize 客户端传输的数据块长度,单位为 KBytes。 NeedBlockReply 数据块是否需要应答。 ReplyTmout 数据包的应答超时时间。 UserName 为客户端用户名。 客户端用户名的最大长度为 48,取值为 NAMELEN。 Password 为用户名密码。 客户端用户名密码的最大长度为 48,取值为 NAMELEN。 SecExitLibName 缺省出口动态库名字
43、,不包含路径,其最大长度为 30,取值为 LIBNAMELEN。 SecExitNetName 网络层安全出口的函数名,其最大长度为 30,取值为 LIBNAMELEN。 SecExitTransportName 第 3 章 C 客户端集群接口介绍 13 传输层安全出口的函数名,其最大长度为 30,取值为 LIBNAMELEN。 SecExitMessageName 消息层安全出口的函数名,其最大长度为 30,取值为 LIBNAMELEN。 SecExitFlag 安全出口标志。 若不为空,则下面三项有效。 SecNetData 为网络层安全出口网络数据,最大长度为 48,取值为 TLQEXI
44、TDATALEN。 SecSndData 为传输层安全出口发送数据,最大长度为 48,取值为 TLQEXITDATALEN。 SecRcvData 为传输层安全出口接收数据,最大长度为 48,取值为 TLQEXITDATALEN。 RenFileRestituteFlag 为接收过程中被重命名文件是否需要恢复原文件名。取值 0 或 1,缺省值为 0, 0 表示需要恢复原文件名,1 表示不需要恢复原文件名 ClusterFlag 是否使用集群队列标志。取值为 0 或 1,缺省值为 0, 0 为不使用集群, 1 为使用集群。 ClusterConnNum 每个集群队列连接个数。取值范围:110,缺
45、省为 1。 JndiUrl 集群 JNDI 服务器地址。取值范围:可用打印字符,多条记录之间用“| ”隔开。 3.1.2.4 消息描述的数据结构T LQMSG_INFO 3.1.2.4.1 结构概述 表 3-3 域名 类型 含义 初始值 VerNo signed char 版本号 TLQVER_0以下属性由应用赋值,应用没有赋值的属性为系统缺省值 MsgType signed char 消息的类型 BUF_MSG UsrContext charUSR_CONTEXT_LEN+1 消息的用户数据 0 第 3 章 C 客户端集群接口介绍 14 MsgSize int 消息的长度 0 Expiry
46、int 消息的生命周期 -1 Priority signed char 消息的优先级 4 Persistence signed char 持久性类型 TLQPER_Y MsgOperateType signed char 消息控制类型 0 MsgOperateInfo charOPERATEDATALEN +1 消息控制数据 0 UserPropertyLen unsigned int 用户自定义属性串的长度 0 UserPropertyNum unsigned int 用户自定义属性的个数 0 CorrMsgId charMSGIDLEN+1 消息的关联标识 0 以下属性在消息发送时由核心赋
47、值,应用发送时不必关心,不过应用发送返回后,可通过传指针获取这些属性的值。 SrcNode char NAMELEN+1 产生原消息节点名 0 DestQName char NAMELEN+1 目的队列名 0 PutDateTime int 消息发送到队列的时间,精确到秒。 0 GroupID charMSGIDLEN+1 组消息标识 0 GroupSeq int 组消息中子消息的序号 0 GroupStatus signed char 组消息的状态 0 MsgOrigin signed char 消息来源MsgId charMSGIDLEN+1 消息的标识 0 OrgMsgLen unsig
48、ned int 消息处理前的长度 0 FileSize charLONG_INT_MAXLEN 文件的大小 0 EvTime int 事件产生的时间,精确到秒。 0 EvStyle unsigned int 事件的唯一标识 0 SubFlag signed char 发布订阅标识,用于 JMS。 RenamedFlag signed char 文件重命名标识 0 CryptCompFlag Char2 加密压缩标识。使用如下: z CryptCompFlag0=0x00 第 3 章 C 客户端集群接口介绍 15 为未加密压缩 z CryptCompFlag0=0x01 仅为加密 z CryptCompFlag0=0x02 仅为压缩 z CryptCompFlag0=0x03 先加密后压缩 z CryptCompFlag0=0x04 先压缩后加密 Reserve char14 以备后用 0 OffSet short 偏移量RollbackCount int 消息回滚次数 0 3.1.2.4.2 域详细说明 VerNo 版本号 用于版本的升级。当 TLQ 升级后,应用程序如果要运行在新的版本上,必须在应用中设置合适的版本号。一般用于内部使用。 MsgTy