- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
TUXEDO协议脚本编写技术指南
TUXEDO协议脚本编写
技术指南
(初稿)
1 前言
1.1文档目标
本文档描述了TUXEDO协议脚本的基础知识和编写方法,旨在让阅读者能在短时间内快速掌握简单的TUXEDO协议脚本的编写方法。为以后同类型协议脚的开发提供参考与借鉴。
1.2适用范围与对象
本文档不对Loadrunner脚本基础开发方法和TUXEDO中间件基础知识做过多描述,初学者需要掌握基本的C语言知识。对于涉及本文中一些更深层次的技术性问题,请参考《TUXEDO系统经典》一书或查阅Loadrunner自带文档《VuGen Function Reference》。
1.3术语及参考
ATMI:
ATMI,Application-to-Transaction Monitor Interface,即“应用事务监视接口”,是TUXEDO系统的编程接口。他实现了X/Open组织定义的分布式事务处理(DTP)模型,为应用程序提供命名、通信、队列、事务和缓冲区管理等基础服务。
:
当进程通过消息方式进行通讯时,消息在被取用前存储的地方称为消息队列。这些队列是一些存储空间,或者是内存(IPC消息队列),或在硬盘上。
2 TUXEDO协议介绍
2.1 TUXEDO简述
TUXEDO是目前多层应用开发协议几乎在目前比较优秀的操作系统中都可以使用TUXEDO交易中间件目前的银行、保险、邮政、公安等重量级大集中的系统都是使用TUXEDO连接协议
2.2 TUXEDO协议通讯方式介绍
△ 队列通信
基本原理:
① Client向System/T发出查询请求,以找到Server消息队列的地址;
② Client根据找到的入口地址将请求发送到Server的消息队列中;
③ Server处理请求,并将结果返回给Client的消息队列。
△ 嵌套调用
△ 转发调用
△ 会话通信
△ 广播和通告
订阅与发布
2.3 TUXEDO协议Buffer类型介绍
STRING:
STRING类型buffer是主要用于面向行、变长度的文本信息类型buffer。STRING类型buffer要求必须以NULL作为结束符的。
CARRY:
CARRAY类型buffer是一种独立于机器的buffer类型。用户在使用时必须指定CARRAY类型数据的长度,CARRAY类型数据可以包含NULL字符。CARRAY类型数据不需要加、解码过程。
Tuxedo使用VIEW类型buffer处理类似C语言的结构等数据类型复杂数据。使用VIEW类型buffer可以将各数据元素与一种结构数据类型结合,通过结构就可以访问各数据元素。
FML类型buffer允许存取多个命名的字段。例如:(NAME: BEA,ADDRESS China Beijing,PHONE 010。每一个命名的字段可以在buffer中存放零个或更多个(occurrences)的值.
1),名称:*env_allow_array[]
说明:虽然这只是一个指针数组,但其作用非常重要。任何TUXEDO脚本运行前都需要把基本的环境信息保存在此数组中。
实例:
static char *env_allow_array[] = {
WSNADDR=//9:29060,
FLDTBLDIR32=c:\bea\tuxedo8.0\etc,
NULL
};
2),名称:lrt_set_env_list()
说明:此函数将*env_allow_array[]中的信息保存到TUXEDO环境列表中。
实例:
lrt_set_env_list(env_allow_array);
3),名称:lrt_tuxputenv()
说明:添加或修改环境列表中的数值。如果修改或建立成功,返回数值0。反之,返回非0数值。
实例:
lrt_tuxputenv(WSNADDR=//server:65535);
4),名称:lrt_tpalloc()
说明:为Buffer分配内存空间。如果分配成功,返回一个指向Buffer的指针。反之,返回NULL值。
实例:
data_0 = lrt_tpalloc(FML, , 1024);
5),名称:lrt_Fadd_fld()
说明:此函数只针对于FML类型Buffer。 由于FML属于自定义域Buffer,需通过lrt_Fadd32_fld()函数向Buffer中添加新定义域。如果添加成功,返回此定义域的id。
实例:
lrt_Fadd_fld( (fbfr*)data_0, id=8302, value=1000, len=4, LRT_END_OF_PARAMS);
6),名称:lrt_Fadd32_
文档评论(0)