Tuxedo系统经典
作者:经乾
出版社:北京电子工业出版社
初版日期:2007-11-1
第1章 TUXEDO系统概述
分布式系统的联机事务处理(OLTP)领域。
1、事务监视器
2、交易中间件
3、应用服务器
特性:强大的C/S通信功能、强大的联机交易性能、强大的分布式事务协调能力、完善的负载均衡机制、等等。
易初时,使用Tuxedo7,2007年10月Tuxedo10.0发布。
第2章 TUXEDO系统的体系结构
三层C/S模型
CORBA:Common Object Request Broker Architecture,公共对象请求代理程序体系结构。
同J2EE、.NET一样,CORBA也是一个分布式系统规范,而不是一个具体的产品。
ATMI:Application-to-Transaction Monitor Interface,应用事务监视接口。
Tuxedo系统的编程接口,为应用程序提供命名、通信、队列、事务和缓冲区管理等基础服务。
tuxedo corba实现了对象管理组织定义的标准,为编写高性能的企业级应用提供了一种基于CORBA的解决方案。
对corba的支持是从8.0版开始的,早起的tuxedo都是用ATMI编写,ATMI已经非常成熟了。但是corba是完全面向对象的,,易于是用,易于和其他产品整合。
第3章 Tuxedo的安装
tuxedo部件分为两大类:服务器组件和客户端组件。
服务器组件:
1、ATMI Server:tuxedo ATMI运行环境,编程语言为C和COBOL。
----COBOL (Common Business Oriented Language)中文译名: COBOL语言,第一个广泛使用的高级编程语言。COBOL最初是用于主机系统,所以它和主机系统联系得非常紧密。
2、CORBA Server:tuxedo CORBA运行环境,编程语言为C++。
3、JOLT Server:Java
...
客户端组件:
1、ATMI Client
2、CORBA Client
3、JOLT Client
...
Tuxedo大量使用了OS的IPC资源(Interprocess Communication,是System V用于进程间通信的系统资源),合理对OS的IPC参数进行配置可以提高Tuxedo的系统性能。
UNIX System V有三类IPC资源:消息队列(MSG)、共享内存(SHM)、信号量(SEM)。
第4章 TUXEDO系统的应用基础
ATMI(Application-to-Transaction Monitor Interface,应用事务监视接口)是TUXEDO的两大应用开发环境之一,使用它开发的应用程序通常称为ATMI应用程序。
ATMI应用程序有客户机、服务器、IPC消息队列、公告板、公告板联络进程构成。
ATMI客户机处理流程:
tpinit加入tuxedo系统;
tpalloc/tprealloc分配缓冲区;
tpcall把缓冲区交给服务器处理;
tpterm退出tuxedo系统;
tpfree释放整个过程中分配的缓冲区;
ATMI服务器处理流程:
tpsvrinit完成全局变量初始化、共享内存分配、数据库连接建立、文件打开等;
死循环等待客户请求;
tpsvrdone关闭打开的资源;
tpreturn把结果返回客户端;
简单的ATMI应用程序:
1、编写服务器函数(如C函数),没有main函数,tuxedo预编译器会为它创建一个main函数,如simpserv.c;
2、编译服务器函数,使用buildserver命令用系统默认安装的C编译器预编译,如buildserver -o simpserv -f simpserv.c -s TOUPPER;
3、编写客户机函数(如C函数),有main函数,simpcl.c;
4、编译客户机函数,使用buildclient命令编译客户机程序,如:buildclient -o simpcl -fsimplc.c;
5、编写配置文件:UBBConfig
6、加载配置文件:tmloadcf把ASCII配置文件转换成二进制文件,相反的命令是tmunloadcf;
7、启动应用程序:tmboot
tmadmin执行管理任务:
psr:打印服务器进程信息;
psc -a 2:打印有名服务信息;
bbs:打印公告板统计信息;
unadv -g GROUP1 -i 1 TOUPPER:公告和隐藏服务;
tmshutdown关闭应用程序;
tuxedo客户端配置:
tuxedo有两种客户端,本地客户端(Native Client)使用共享内存与服务器进行通信,工作站客户端(Workstation Clinet)使用TCP/IP和服务器通信;
本地客户端通过TUXCONFIG环境变量配置,工作站客户端通过WSNADDR环境变量配置;
配置MSSQ:
默认情况下,tuxedo系统按照SSSQ(Single Server Single Queue)的方式配置服务器,但有时要采用MSSQ(Multiple Server Single Queue)来配置服务器;
配置可重启特性:
把一些重要进程设置为可重启,进程意外终止时自动重启;
只需要配置三个参数:RESTART,MAXGEN,GRACE;
第5章 TUXEDO系统的通信缓冲区
tuxedo的类型缓冲区(Typed Buffer):
1、CARRAY:字符数组,NULL字符有效,定长,不支持编码;
2、STRING:同CAARAY,NULL字符作为字符串结尾,变长,不支持编码;
3、VIEW/VIEW32(16bit和32bit):使用C语言的结构组织数据,定长,支持编码;
4、FML/FML32:字段缓冲区,变长,支持编码;
5、XML:定长,支持编码;
6、MBSTRING:同STING,支持多字节字符集,定长,支持编码;
不同类型缓冲区的存取方法和用途是不一样的:
CARRTY适合传递图片、声音等二进制数据;
STRING适合传递文本和字符串;
FML/FML32和VIEW/VIEW32适合传递记录集;
XML适合传递UTF-8的XML文档;
MBSTRING适合传递中、日、韩和其他亚洲语言文字和多字节字符串;
缓冲区分配:tpalloc/tprealloc;
回收:fpfree;
FML(Filed Manipulation Language)是一组用于定义和管理字段缓冲区(fielded buffers)的C语言函数,它提供了一种更为高效的内存访问方法;
MBSTRING缓冲区对中、日、韩和其他亚洲语言语种提供了多字节支持;
第6章 TUXEDO系统的通信方式
1、请求-应答式通信
OLTP中使用最多的一种方式,又分同步调用和异步调用;
2、会话通信
一个会话服务器始终被一个客户机锁定,适用于一笔交易需要多次交互才能完成的场合;
3、消息通告方式
适用于一个通信实体在没有收到请求消息的情况下,需要主动给另一个通信实体
4、事件代理模式
客户机和服务器通过代理服务器来订阅和发布消息。
5、队列通信
可靠队列通信,它允许消息按照某种机制(FIFO、FILO)存储在持续介质(如磁盘)或非持续介质(如内存)中,等待其他进程处理,从而实现可靠通信;
6、TxRPC
基于事务的RPC(Remote Process Call,远程过程调用)。
TUXEDO为每种通信缓冲区、通信方式提供编程API。
第7章 TUXEDO系统的配置文件
tuxedo的配置文件有两个版本,ASCII版本和二进制版本;
ASCII版本配置文件称为UBBCONFIG,二进制版本配置文件称为TUXCONFIG;
UBBCONFIG由管理员编写,并通过tmloadcf转换为tuxedo能够识别的二进制格式;
UBBCONFIG配置文件有9个段组成,每个段标示前有个*号,其中RESOURCES、MACHINES、GROUPS段时必须,其他段可选;
*RESOURCES段定义了应用级的配置参数,如MAXACCESSERS、MAXSERVERS等等;
*MACHINES段定义了当前应用中参与计算的主机信息,包括主机名、tuxedo安装路径等;
*GROUPS段定义了资源段信息,资源组是服务进程的逻辑集合;
*NETGROUPS段定义了在LAN环境中的网络组信息;
*NETWORK段定义了LAN环境中的网络配置信息;
*SERVERS段定义了要部署的所有服务进程的信息,包括进程名、命令行参数、以及所属的资源组;
*SERVICES段定义了与有名服务相关的信息,包括优先级、负载因子、服务超时等;
*INTERFACES段定义了当前应用中CORBA接口的默认参数信息;
*ROUTING段定义了DDR路由规则,供SERVICES段使用;
第8章 TUXEDE的事务系统
事务的特性:原子性、一致性、隔离性、持久性;
事务处理(Transaction Processing,TP)是指管理和协调多个用户和数据库等共享资源直接的交互过程;
分布式事务处理(Distributed Transaction Processing,DTP)指在分布式环境下的TP;
两阶段提交协议(Two-Phase Commit,2PC)是一种保证分布式事务成功完成的算法,在第一阶段中,先预提交,通知其他相关事务,第二阶段再正式提交;
TUXEDO的事务函数:
tpopen:建立与RDBMS的连接;
tpclose:关闭与RDBMS的连接;
tpbegin:开始一个全局事务;
tpcommit:提交一个全局事务;
tpabort:回退一个全局事务;
tpsuspend:暂时挂起一个全局事务;
tpresume:恢复一个被暂时挂起的全局事务;
tpgetlev:返回当前调用点是否处在全局事务中;
tpscmt:设置事务提交控制参数TP_COMMIT_CONTROL值;
tuxedo的事务配置:
在配置文件的相关段中有配置参数;
tuxedo的事务状态:
1、TMGACTIVE:事务是活动的,并且没有任何错误发生;
2、TMGABORTONLY:事务只能被回退,但还没有执行tpabort;
3、TMGCOMCALLED:事务已经提交,但还处于2PC的第一阶段;
4、TMGABORTED:事务已经回退;
5、TMGREADY:事务在第一阶段的提交工作已经成功结束;
6、TMGDECIDED“事务在第一阶段的提交工作已经成功结束,且已经把事务记录写入TLOG中;
TUXEDO可以于常见的RDBMS实现互联,并通过两阶段提交协议对它们的事务进行管理。
第9章 TUXEDO的消息队列系统
TUXEDO/Q是TUXEDO的一个重要的子系统,它为分布式联机事务处理应用程序提供了一种准实时的异步通信方式,支持持久和非持久的消息存储机制,提供面向事务的消息存取和转发机制,以及多样化的出队机制。保证“Exactly-Only-Once”,保证任何一条消息都不会被重传,也不会丢失。
tuxedo/q的组成部件包括:队列空间和对列、队列管理器、消息转发器、事务管理器;
tuxedo/q的编程接口:
tpenque:把消息放入一个队列空间的某个消息队列中;
tpdequeue:从消息队列中读取一条消息;
tuxedo/q可以实现可靠数据传输,但是与专业的消息中间件相比,没什么优势,程序员需要基于ATMI函数做一些定制开发;
第10章 TUXEDO的安全体系
tuxedo广泛地运用了口令和数据加密技术来保证应用的安全,还提供了一个安全插件模型,让用户来扩充和加强各种安全措施;
第11章 TUXEDO应用程序的组织模式
tuxedo应用程序的三种组织模式:单机模式、多机模式、多域模式;
单机模式用地最多,最简单,所用业务处理进程、tuxedo系统进程和管理进程都部署在同一台物理机上;
多机模式就是tuxedo的集群模式,多台主机通过局域网相连,在tuxedo系统的协调下,共同完成任务;
多域模式提供了比多机模式更为灵活的分布式应用程序组织模式;
第12章 tuxedo系统在银行中的应用
银行、电信、金融(证券、基金、保险),联机交易最多,tuxedo得到了广泛的应用。
第13章 tuxedo系统的多线程应用
客户机多线程;
服务器多线程;
第14章 tuxedo与WebLogic的集成
JOLT(Java OnLine Tuxedo),它是一个把tuxedo应用扩展到Java运行环境和互联网上的Java类库和编程接口;
WTC(WebLogic Tuxedo Connector),用于集成WebLogic和Tuxedo,实现两者之间的互操作。
第15章 tuxedo系统的客户机编程
tuxedo为客户机编程提供了三种接口:ATMI、JOLT、.NET Framework;
ATMI:C/C++,tuxedo主要的编程接口;
JOLT:Java;
.NET Framework:.NET;
visual C++是windows平台下tuxedo官方推荐的tuxedo编译器;
第16章 tuxedo系统的性能优化
tuxedo的性能优化原则:
1、MSSQ原则:
2、负载均衡原则:每个服务有个负载因子,用于表示请求这个服务要付出的代价;
3、优先级原则:每个服务有个优先级因子,越大优先级越高,对该服务的请求越快得到处理;
4、服务绑定原则:服务器与服务对应关系:一对一、一对多,要进行平衡;
5、服务缓冲:客户机直接从高速缓冲中得到服务,而不用到公告板中去查找;
6、关闭附加特性原则;
7、参数配置原则:
8、WSL配置原则:
9、IPC配置原则:
10、通信方式原则:
11、编程原则:
tuxedo的性能测试:
HP Loadrunner性能测试流程的6个阶段:测试规划、脚本制作、场景创建、场景执行、结果分析、系统调整;