Tuxedo开发介绍.ppt_第1页
Tuxedo开发介绍.ppt_第2页
Tuxedo开发介绍.ppt_第3页
Tuxedo开发介绍.ppt_第4页
Tuxedo开发介绍.ppt_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Tuxedo 开发介绍,东南融通:杨久明,Tuxedo 开发介绍,概述 安装说明 配置文件说明 API函数简单说明 编程实例 相关站点,概 述,BEA 公司的产品 国外的应用实例较多 该公司在中间件产品上提供了三种方法: Message : 内部的通信机制解决了C/S的通信问题 Tuxedo : 交易管理的中间件,解决了对事务的管理 OOP: 提供面向对象的设计 版本已经升到了7.1版,可以支持LINUX,面向电子商务等应用领域,概 述(一),是三层结构中的中间件(middleware) 适合用于大型应用 可以解决大量的并发操作,减轻server端的压力 通过XA的数据库低端调用,支持X/OP

2、EN 一般应用在OLTP 可以应用与各种平台,概 述(二),共享内存方式(BB:Bulletin Board) 所有的管理在同一台机器上做 有容错机制并提供自动重启服务 提供超时管理 提供若干安全性管理和控制 No Authentication Application Password End-user Authentication Optional Access control(OAC) Mandatory Access Control ( MAC),概 述(三),开发和管理完全分开 API只有10几个 参数可配置 把功能细化,每个服务的功能单一比较好 Service的功能简单对保证一致性比

3、较好 Client端只需调用名字,不用传输SQL语句,概 述(四),对事务处理可能存在的: 数据库种类不同 同一类库中多个库实例 分布式数据库或分布的数据存取 支持X/OPEN标准,提供两阶段提交方式,保证一致性 可以预先定义好Service操作的优先级,而且可以有效防止饿死进程,概 述(五),一个Service相当与一个进程的概念 一般来说,Service里只有一个函数定义 Tuxedo提供专门的编译函数来编译CLIENT端和SERVER端的Service分别是Buildclient 和BuildServer 当Tuxedo正常启动时,所有的服务都被启动,在管理机上可以看到所有服务的进程在跑

4、 Tuxedo的服务和引擎将会占用大量的共享内存 对机器的配置要求比较高 日志不太直观,日志文件名为ULOG.ddmmyy,概 述(六),Server 相当与一个应用 Service相当与一个函数或功能模块 提供均衡负载 对分布式运用提供数据依赖路由(象路由一样可以预设数据流向) C/S模式中的会话方式是虚拟的长连接(4种) Request/Response(同步、异步、流水线)IPC队列 Converstional Event(Broadcast(无请求传送)、Subscribe/Publish(发布/订阅方式) Queue (Disk Based) 基于磁盘空间的队列,概 述(七),CLI

5、ENT发起交易时,会注册到BB中的CLIENT段中,即可以启动一个服务 LISCNCE是指系统允许的并发数的多少,即指CLIENT段在BB中的多少 多台主机间应建立Master结点,Ubb要放在Master主机上 TLISTEN要手工启或KILL掉,TUXEDO结构框架,Service,Servers,Group,Machine,1:n,1:n,1:n,Domain,Local client,Workstation client,WSL-WSH,TUXEDO启动过程,Tlisten,NodeI,BBL,DBBL,tmboot,BBL,BBL,NodeJ,APP,SYS,APP,SYS,Tuxc

6、onfig,BBL,Read,TUXEDO启动过程,启动服务的时候,若有用到队列,则队列服务进程要检查队列空间。检查的时间与队列所占的空间有关,安装说明,建立Tuxedo用户 mount 上光盘 执行 sh INSTALL.SH 按照提示1、2、3.安装 用到tlisten时,需要一个TUXEDO的管理员口令 注意:LISCNCE文件lic.txt这个文件定义了用户数及运行版本 配置UBB文件、文件名可以任意 可以参照安装目录下的程序例子,配置文件说明(一),RESOURCES MACHINES: GROUPS SERVERS SERVICES NETWORKING ROUTING,配置文件说

7、明(二),RESOURCES: 资源定义,可以定义安全性 IPCKEY 35533 32768 ,常用的API函数(CLIENT),Buffer的种类 STRING CARRAY(binary format transferred) FML(Field Manipulation language) VIEW (Structure) BUFFER的函数与C语言类似,但应有加上头信息 tpalloc(type,subtype,size) tprealloc() tpfree() 在view类型中函数的子类型必须是view的名字,其它的皆为null,常用的API函数(CLIENT),举例 tmpre

8、c=(struct transrec *) tpalloc (VIEW,transrec,sizeof(struct transrec) char * bitmap; bitmap = tpalloc(“CARRAY”,null,1024); 用view的时候,要在环境变量上加上VIEWFILES和VIEWDIR 用VIEWC生成.h和.V的文件 用FML时,要加上FIELDTBLS,FLDTBLDIR mkfldhdr 生成相应的.h文件并要放在include下,常用的API函数(CLIENT),FML的Buffer可以和VIEW中的互换 FVFTOS FVSTOF CARRAY为二进制,在

9、两种机器编码不同时,可以用来传输,常用的API函数(CLIENT),中断调用和错误信息及返回的错误代码常量 long tperrno (char *) tpstrerror(tperrno) (void) tpterm(),常用的API函数(CLIENT),同步调用 tpcall(char *svcname,char *sendbuf,long len, char * rubfpp, long * rlength, long flags) flags: TPNOTRAN 不在事务中 TPNOCHANGE 对RECVBUF强制检查 TPNOBLOCK 阻塞超时 TPNOTIME 无超时 TPSI

10、GRSTRT 再次重发 可以在RESOURCES段上设BLOCK 30,常用的API函数(CLIENT),示例:调用SNAME变量代表的的SERVICE tpcall(SName,(char *)tmprec,sizeof(struct transrec), (char *) tpterm(); exit(-1) tpcall(“svc2”,) ret1=tpgetrply( if(ret1=-1) ,常用的API函数(SERVER),Services的初始化和结束 tpsvrinit(int argc, char * argv) open database tpsvrdone() datab

11、ase close tpreturn() tpreturn (TPSUCCESS, 0L, (char *)transv, long len, long flags); 但一般可不用前面两个,如果在UBB中定义了XA,TUXEDO会自动执行这两个缺省函数 tpreturn可以返回一些整形值给CLIENT段的 TPCALL/TPACALL,常用的API函数(SERVER),与UBB配置文件中SERVICES段中同名函数的定义 如 前面的LDEC()等 ServiceName(TPSVCINFO *rqst) char*buf1; buf1=rqst-data; EXEC SQL INSERT I

12、NTO tpreturn(); ,常用的API函数(实例及用法),ServiceName(TPSVCINFO *svcinfo) sendbuf=svcinfo-data; tpcall(svc,sendbuf,0,int rcode,char *data,long len,long flags) val:TPSUCCESS TPFAIL TPEXIT,其他部分API,Tpconnect() tpsendonly() tprecvonly() tpsend() tpdiscon,ATMI原语调用,Tpbegin(long timeout,long flags) timeout=0 (unlim

13、ited), flags = 0 ( for future use) tpcommit(long flags) flags同上 tpabort(long flags) flags同上 tpsuspend()事务挂起 tpresume()事务重新开始 tpgetlev();判断是否在事务中 tpopen(); tpclose();,VIEW结构实例(VIEW.v),VIEW transrec $ /*View structure for Transmition information */ #typecnamefbnamecountflagsizenull longSerialnumSERIAL

14、NUM1-1 stringMessageidMESSAGEID1-50000” stringAccountnumACCOUNTNUM1-22” stringProcesscodePROCESSCODE1-7000000” floatAmountAMOUNT1-0.00 stringTransmissionTRANSMISSION1-11” stringStracenumSTRACENUM1-7000000” stringLTransetimeLTRANSETIME1-7 END,VIEW结构实例(transflds),#Copyright (c) 1990 Unix System Labora

15、tories, Inc. #All rights reserved #ident(#) transflds$Revision: 1.1 $” # Fields for database bankdb # name number type flags comments SERIALNUM101long- MESSAGEID102char- ACCOUNTNUM103char- PROCESSCODE104char- AMOUNT105float- TRANSMISSION106char- STRACENUM107char- LTRANSETIME108char-126string- .,VIEW

16、结构实例(.h文件),通过VIEWC(32)编译生成的文件.V 和.h文件 struct transrec /*View structure for Transmition information */ longSerialnum;/* null=1 */ charMessageid5;/* null=0000 */ charAccountnum22;/* null=0 */ charProcesscode7;/* null=000000 */ floatAmount;/* null=0.000000 */ charTransmission11;/* null=0 */ charStracen

17、um7;/* null=000000 */ charLTransetime7;/* null=0 */ charLTransedate7;/* null=0 */ charSettledate5;/* null=0 */ 。,常用命令,Buildclient = CC -W workstation 方的client buildserver = CC -O -S Service 的名字 tmloadcf -y myubb 把UBB的配置文件变成二进制的形式 tmboot -y 启动所有的BBL- BB 、 Application tmshutdown -y,常用命令,tmboot -y 所有 t

18、mboot -m Master结点 tmboot -g grpnameGROUPS段 tmboot -s svrnameServer段 tmboot -I svrid某一个SERVICE tmboot -c 申请IPC资源,可以修改系统参数,常用命令,tmshutdown -A 所有SERVER tmshutdown -s svrname本服务 tmshutdown -isvrid本id所对应的service tmshutdown -g grpname本组,常用的管理命令,Tmadmin 命令脚本模式的管理 psr: server event print psc: service event

19、print pclt: client event print qinfo: qlist: crdl qspacecreate qopen qcreate 也提供GUI的管理工具(没见过),AIX上TUXEDO的用户的环境变量,TUXDIR=/tuxedo; export TUXDIR APPDIR=/longtop/ser_bin; export APPDIR TUXCONFIG=$APPDIR/tuxconfig; export TUXCONFIG PATH=$TUXDIR/bin:$PATH; export PATH VIEWDIR=$APPDIR; export VIEWDIR VIEW

20、FILES=transrec.V; export VIEWFILES FLDTBLDIR=$VIEWDIR; export FLDTBLDIR FIELDTBLS=transflds; export FIELDTBLS QMCONFIG=$APPDIR/QUEFS; export QMCONFIG LD_LIBRARY_PATH=/usr/lib:$TUXDIR/lib:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH LIBPATH=/usr/ccx/lib:$TUXDIR/lib:$LIBPATH; export LIBPATH,MAKEFILE文件设置,TUXEDIR=/tuxedo LIBDIR=/tuxedo/lib XCBINDIR=$(TUXDIR)/bin RM=TUXEDO/SQLDSUF=.a APPDIR=$(HOME)/$(SRC)/ VIEWDIR=$(APPDIR) INCDIR=$(T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论