TUXEDO中间件开发与配置:第五章缓冲区详解.pdfVIP

TUXEDO中间件开发与配置:第五章缓冲区详解.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第五章:TUXEDO的缓冲区

5.1TUXEDO的缓冲区介绍

TUXEDO的客户端与服务端之间的数据传送是通过数据缓冲区来进行的.TUXEDO的数据

缓冲区主要包括STRING,CARRAY,VIEW,VIEW32,FML,FML32,从TUXEDO7.1开始,还增加了XML

数据缓冲区.另外,TUXEDO还有几种缓冲区是专门针对COBAL的。在TUXEDO中还可以定义自

己的缓冲区类型。

在TUXEDO中客户端与服务端之间进行数据交换的缓冲区(如:tpcall()中的输入,输出缓

冲区等)都要用TUXEDO自己的API进行操作,不能采用C语言的函数如:malloc(),free()

等分配,释放这些缓冲区。同时在程序中要自己管理这些缓冲区,象C语言中的缓冲区一样,在

用tpalloc()分配一块缓冲区,在不在需要该缓冲区时用tpfree()释放掉。

与缓冲区使用有关的ATMI

char*tpalloc(char*type,char*subtype,longsize)

描述:分配缓冲区

参数:type:缓冲区的类型

subtype:缓冲区的子类型,只有VIEW有子类型,其他的缓冲区该参数要设为NULL

long:缓冲区的大小

返回值:成功返回一个指向所分配空间首地址的CHAR*形指针,失败返回NULL。

char*tprealloc(char*ptr,longsize)

描述:重新分配缓冲区

参数:ptr:指向原缓冲区首地址的指针

size:新缓冲区的大小

返回值:成功返回一个指向新分配空间首地址的CHAR*形指针,失败返回NULL。

voidtpfree(char*bufptr)

描述:释放由TPALLOC()或TPREALLOC()分配的缓冲区

参数:bufptr:指向要释放的缓冲区首地址的指针

返回值:无

注意:用TPALLOC(),TPREALLOC()分配的内存只能有TPFREE()释放掉,不能用FREE()

longtptypes(char*ptr,char*type,char*subtype)

描述:返回有ptr所指向的缓冲区的类型及子类型

参数:ptr:指向要进行类型识别的缓冲区首地址的指针

type:类型名

subtype:子类型名(只对VIEW类型有效)

返回值:0成功,-1失败,错误号保存在全局变量tperrno中。

下面我们对常用的数据缓冲区分别进行介绍。

STRING:

类似于C中的CHAR*,是以\0接尾的字符串,如果两台机器之间的编码不一样(如一台为

ASCII,另一台为EBCDIC),TUXEDO将自动进行编码/工作。STRING一般用于在客户端

与SERVER端之间传送文本数据。STRING缓冲区的使用例子在后面的章节中有很多,在此不

作介绍。

CARRAY:

是不以\0接尾的字符串,长度要由用户指定。如果两台机器之间的编码不一样,也不进行编码

/工作。注意在TPCALL,TPACALL,TPRETURN等ATMI中使用CARRY类型的缓冲区时,一定

要指定长度,否则会出错。CARRY一般用于传送二进制数据。如在客户端与SERVER端之间传

送一个二进制的文件,就要采用CARRAY类型的缓冲区。CARRAY缓冲区的使用例子在后面的

章节会见到,在此不作介绍。

5.2VIEW(VIEW32)缓冲区

类似于C中的结构体,不同的是该结构的成员的数据类型可以为short,char,long,float,

double,STRING,CARRAY。要在一个文件中定义该VIEW(VIEW32)的结构,然后才能使用。VIEW

有子类型,子类型为该VIEW(VIEW32)的名字,在调用TPALLOC()分VIEW(VIEW32)缓冲区时要指

定该子类型。

VIEW32与VIEW类似,但它采用32位长度的数表示结构体中字段的ID等,VIEW采用16位表示,

所以VIEW32可表示的字段。

VIEW(VIEW32)缓冲区还可以转化为FML(FML32)缓冲区。

VIEW的使用过程:

1.定义一个

文档评论(0)

ericxiao + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档