Tuxedo开发使用说明

合集下载

Tuxedo应用指南(二)

Tuxedo应用指南(二)

比较类型缓冲区的特点
• 类型缓冲区之间的比较可以从如下几个方面进行:
–是否是自描述的。自描述的缓冲区在tpcall、 tpreturn中可不指定它的大小。 –有无子类型。 –是否支持DDR。根据缓冲区中的某些数据项的值,按指 定的标准将请求路由到不同的服务器组上。支持DDR的 缓冲区一定是带成员的聚集,并且可以按成员名称访 问。 –是否存在编码、解码。不存在时,传输效率高,但异 质支持差
save ctx tpacall Romte Server
tpacall callback load ctx
Local Server
得到API出错信息
• 如果有执行状态返回,-1表示失败。 • 查看出错信息
在调用API时都有类似如下的出错检测代码:
if (tpacall("TUX_SVC", send_buf, (long)send_len, TPNOREPLY) == -1) { userlog("tpacall失败: errno=[%d], msg=[%s]", tperrno, tpstrerror(tperrno)); tpfree(text); return -1; }
更改缓冲区大小
• 缓冲区可以更改大小,大小更改后,返回的地址可能上新 的地址,以后使用新的地址,而不能再用分配前的地址。 – 原型: char* tprealloc(char* ptr, /* 缓冲区指针 */ long size) /* 新的大小*/ 注意:返回值不一不等于ptr!不建议使用tprealloc,好 的办法是分配新尺寸的缓冲区,从原缓冲区复制数据到新 缓冲区,删除原缓冲区。该函数比较凶险,使用不当有可 能导致内存泄漏。
分配类型缓冲区

TUXEDO教程

TUXEDO教程

TUXEDO教程
Tuxedo是一种分布式事务处理和应用程序开发环境,用于构建和部
署高性能,可靠的事务处理应用程序和服务。

Tuxedo(Transaction)基
于客户/服务器架构,这意味着请求消息的发送者是客户端,接收这些消
息的是服务器。

Tuxedo的客户/服务器架构能够将计算任务多源分布在多台服务器中,利用系统资源相结合,来满足用户执行复杂应用程序的需求。

客户/服务
器架构可以支持C/S(Client/Server)架构,主机/代理架构和事件驱动
架构。

Tuxedo中的客户端和服务器端都提供了一种服务协定,它定义了同
一应用程序中客户与服务器通信的规范。

Tuxedo服务协定提供了各种规
范的数据储存和储存格式规范,以及确定服务调用请求及响应的消息结构等。

Tuxedo支持事务处理服务(TMS),这使得应用程序可以安全地处理
复杂的逻辑实体,而不会受到现有系统失败的影响。

Tuxedo提供了一种
分布式事务处理模型,它使应用程序能够在不同的服务器上安全地执行事务,以防止数据损坏和系统崩溃。

Tuxedo还提供了可扩展的事务处理环境,允许用户设计符合客户/服
务器模式的应用程序。

第6章TUXEDO的服务端编程

第6章TUXEDO的服务端编程

第6章TUXEDO的服务端编程
TUXEDO服务端编程指的是编写TUXEDO服务器,以响应来自TUXEDO
客户端的请求。

TUXEDO服务器程序的主要工作是接收来自TUXEDO客户端
的请求和数据,并使用CORBA或RPC来处理或响应这些请求。

TUXEDO服
务器程序的具体设计和实现也将受到TUXEDO的软件安装、配置和管理设
置的影响。

TUXEDO服务器程序主要实现的功能有:
(1)服务注册。

服务注册是指在TUXEDO服务器上注册一组服务,使
其可以处理客户端发送的请求。

主要包括服务的类型、服务名称、函数指针、参数和数量等信息。

(2)客户端消息处理。

当TUXEDO服务器接收到客户端发送的请求时,服务器将调用与请求服务对应的函数,并将客户端发送的消息和数据作为
参数传递。

服务器程序需要处理客户端发送的消息、数据和参数,生成响
应消息,并将其回传给客户端。

(3)消息队列处理。

TUXEDO服务器程序需要监听系统的消息队列,
当客户端发送消息到消息队列时,服务器程序将检索相应的消息,并作出
相应的处理。

(4)数据库操作。

TUXEDO服务器程序也可以操作后台数据库来处理
客户端请求,比如客户端请求查询一些表中的数据,服务器程序将读取数
据库并返回查询结果给客户端。

(5)日志管理。

TUXEDO客户端编程指南

TUXEDO客户端编程指南

TUXEDO客户端开发指南北京科比亚系统工程有限公司2000年8月23日一.TUXEDO的安装操作系统:WINDOWS98;TUXEDO WORK STATION FOR WIN98的安装路径:\\INTRANET\tuxedo\win98\disk1\setup.exe如果前台开发工具使用VC,则还必须安装VC6.0,其安装路径为: \\INTRANET\visualstudio\setup.exe;如果仅仅使用PB作为开发工具,VC6.0可以不安装。

二.TUXEDO前端配置BEA TUXEDO 6.5 WS 和VC安装成功后,需要更改C:\AUTOEXEC.BAT中的相关路径。

如果仅以PB作为前台开发工具,则以下例子中对VC安装目录下BIN、INCLUDE、LIB 的设置皆可省略。

1.在”path”中必须指明本地VC安装目录下的vc98\bin和common\msdev98\bin,以及本地TUXEDO WS安装目录下的tuxedo\bin。

例如:VC安装在”c:\program files\”,TUXEDO WS安装在”D:\TUXEDO”时,可如下设置AUTOEXEC.BAT(以下所举的例子皆以该路径为准):SETPATH=%PATH%;D:\TUXEDO\BIN;C:\progra~1\micros~1\Vc98\bin;C:\progra~1\micros~1\common\msdev98\bin2.在”lib”中必须指明本地VC安装目录下的vc98\lib,以及本地TUXEDO WS安装目录下的tuxedo\lib。

例如:SET LIB=D:\TUXEDO\LIB;C:\progra~1\micros~1\Vc98\lib3. 在”include”中必须指明本地VC安装目录下的vc98\include,以及本地TUXEDOWS安装目录下的tuxedo\include。

例如:SET INCLUDE=D:\TUXEDO\INCLUDE;C:\progra~1\micros~1\Vc98\include4.指明TUXEDO的安装目录TUXDIR和服务器IP地址WSNADDR。

Tuxedo 功能说明书

Tuxedo 功能说明书

Tuxedo功能说明书说明:本说明书是为了适应光大银行的要求,为光大银行提供有关Tuxedo 功能的简要说明列表。

一、交易处理服务1.交易完整性保证机制●当应用系统只有局部事务、没有全局事务时,Tuxedo直接利用数据库的事务处理功能(用或不用XA),这样可提高系统性能。

●当应用系统涉及跨多个资源数据库(同构或异构)的全局事务的时,Tuxedo利用XA标准和两阶段提交协议,通过事务管理器,协调各个数据库的同步。

Tuxedo还可保证可靠性队列/Q 的入出队操作和数据库的更新操作的同步。

在各种情况下,Tuxedo能够确保异构的(或者同构的)数据库以及它资源管理器之间的完整性和一致,并且还在出现节点故障、网络故障或全局资源死锁时利用内部的交易日志来协调全局事务的恢复。

2.交易优先级请求优先级是Tuxedo的事务管理器提供的另一个核心能力。

当某一服务有比其他服务更高的优先级时,服务器在处理请求时,就不再单纯的按照请求在队列中的先后顺序处理,而是按优先级来定。

请求优先级越高的越早被处理。

为了防止低优先级请求总是得不到服务,服务器每隔十个请求,就按FIFO次序进行一次请求选择。

二、可管理性TUXEDO的三层逻辑结构提供了对应用程序高度的可管理性。

它以业务逻辑层为管理的主要对象,把基本业务组件即服务进程的服务做为管理的基本单位。

应用系统由一些基本的组件即服务构成,这样它的易理解、易修改、易扩充等需求都得到保证。

TUXEDO提供一个基于普通WEB浏览器的GUI管理工具,也可根据用户需要提供基于X Window/ Motif 的GUI管理工具;还提供综合性的字符型管理命令;并且提供一个管理信息库(MIB)和编程接口,使用户可根据特定需求编写自己的管理工具。

TUXEDO 的关联产品BEA MANAGER 通过网络管理协议SNMP和TUXEDO的管理信息库MIB可以把TUXEDO对应用程序的管理集成到一般的网络、数据库系统管理工具中,比如OpenView, NetView 等。

2024版Tuxedo教程全解

2024版Tuxedo教程全解

Tuxedo教程全解contents •Tuxedo概述•Tuxedo核心组件•Tuxedo应用开发•Tuxedo系统部署与配置•Tuxedo性能优化与监控•Tuxedo实战案例解析目录Tuxedo概述Tuxedo定义与特点Tuxedo是一种中间件Tuxedo的特点Tuxedo应用领域金融行业电信行业其他行业Tuxedo发展历程Tuxedo的起源Tuxedo的发展Tuxedo 的未来Tuxedo核心组件ATMI编程接口支持多种编程语言,如提供了事务管理、通信、安全等方面的功能。

Tuxedo服务器123Tuxedo客户端010203Tuxedo管理工具Tuxedo应用开发开发环境搭建安装Tuxedo系统配置环境变量选择开发工具建立项目工程设计服务接口编写服务代码配置服务属性编译和部署服务服务开发流程根据业务需求设计客户端界面,包括输入、输出显示等。

设计客户端界面编写客户端代码配置客户端属性编译和部署客户端使用Tuxedo 提供的API 编写客户端代码,实现与服务端的交互。

在配置文件中配置客户端相关属性,如连接的服务地址、端口等。

使用Tuxedo 提供的编译工具将客户端代码编译成可执行文件,并部署到用户环境中。

客户端开发流程日志调试通过查看Tuxedo系统日志和应用程序日志定位问题原因。

跟踪调试使用Tuxedo提供的跟踪工具对服务调用进行跟踪调试,查看调用过程和结果。

单元测试针对每个服务或函数编写单元测试代码进行测试验证功能正确性。

集成测试将所有服务集成在一起进行测试验证整个系统的功能正确性。

调试与测试方法Tuxedo系统部署与配置系统部署方案单机部署01分布式部署02集群部署03服务器参数配置事务管理配置资源管理配置包括客户端名称、服务器地址、端口号等参数的配置。

客户端参数配置配置客户端事务的提交和回滚方式,确保客户端与服务器之间的事务一致性。

事务管理配置配置客户端的负载均衡策略,实现请求的均匀分配和故障转移。

tuxedo培训教程

tuxedo培训教程

引言:本文是关于Tuxedo培训教程的第二部分,旨在深入介绍Tuxedo技术的相关知识和应用。

Tuxedo是一种高性能、高可用性的分布式应用服务器,广泛应用于大规模事务处理和企业级应用领域。

本文将分为五个方面对Tuxedo进行详细阐述,帮助读者更好地理解和应用该技术。

正文:一、Tuxedo安装与配置1. Tuxedo系统要求:包括硬件和软件要求,例如操作系统、内存、存储等方面的要求。

2. Tuxedo的安装步骤:详细介绍如何下载、安装和配置Tuxedo软件。

3. Tuxedo的配置文件:包括DOMAINS、UBBCONFIG等配置文件的作用和常用参数设置。

4. Tuxedo的环境变量设置:介绍如何设置Tuxedo相关的环境变量,确保系统能正常运行。

二、Tuxedo应用开发1. Tuxedo编程模型:介绍Tuxedo的编程模型,包括服务(Service)、服务器(Server)和客户端(Client)的概念和作用。

2. Tuxedo事务管理:详细解释Tuxedo事务的概念和使用方法,包括事务的起始、提交和回滚操作。

3. Tuxedo服务开发:介绍如何编写和发布Tuxedo服务,包括服务的注册、发布和请求处理过程。

4. Tuxedo客户端开发:讲解如何编写Tuxedo客户端程序,包括连接Tuxedo服务、发送请求和接收响应等步骤。

5. Tuxedo编程示例:通过实际的编程示例演示Tuxedo应用开发的流程和技巧,帮助读者更好地理解和应用。

三、Tuxedo监控与调优1. Tuxedo监控工具:介绍Tuxedo自带的监控工具,如tmadmin和tmj,用于监控和管理Tuxedo域。

2. Tuxedo性能调优:给出一些Tuxedo性能调优的建议和方法,包括资源配置、线程池设置等方面。

3. Tuxedo故障排查:介绍常见的Tuxedo故障和排查方法,如错误日志分析、日志级别配置等。

4. Tuxedo性能分析:介绍常用的性能分析工具和方法,用于定位和解决Tuxedo应用的性能瓶颈问题。

tuxedo基本操作atmi介绍

tuxedo基本操作atmi介绍

tuxedo基本操作atmi介绍ATMI(Authenticated Transactional Message Interface)是一种基于消息的分布式事务处理系统,用于在分布式环境中进行交易和通信。

它是Tuxedo系统的主要组成部分,用于支持多个应用程序之间的高性能、可靠和安全的通信。

ATMI提供了一组API,使开发人员能够在一个或多个计算机平台上创建分布式应用程序。

它提供了数据的传输、一致性、可靠性、安全性和事务管理等功能。

下面是ATMI的一些基本操作和功能:1.事务处理:ATMI支持分布式事务,允许应用程序在多个计算机上执行跨系统和跨应用的事务。

它提供了事务的开始、提交和回滚等操作,确保事务的一致性和可靠性。

2.消息传递:ATMI允许应用程序使用消息进行通信。

它提供了发送和接收消息的API,可以在不同的应用程序之间传递数据和命令。

3.远程调用:ATMI支持远程调用,允许应用程序通过网络调用远程服务器上的程序。

它提供了一些API,使开发人员能够方便地进行跨计算机调用。

4.数据传输:ATMI提供了数据传输的功能,可以在应用程序之间传递数据。

它支持常见的数据格式,如字符串、整数和结构体等。

5.容错性:ATMI具有高度的容错性,可以处理网络故障和系统故障等情况。

它可以自动进行故障恢复,并保持事务的一致性。

6.安全性:ATMI提供了安全性的功能,确保数据在传输过程中的机密性和完整性。

它支持加密和身份验证等机制,保护数据的安全。

7.并发控制:ATMI提供了并发控制的功能,可以对并发访问进行控制。

它使用锁和信号量等机制,确保多个应用程序之间的数据一致性。

总的来说,ATMI是一个强大而灵活的分布式事务处理系统,提供了丰富的功能和API,使开发人员能够构建高性能、可靠和安全的分布式应用程序。

它可以在不同的计算机平台上运行,并支持多种开发语言和数据格式。

无论是企业级系统还是互联网应用程序,ATMI都是一个理想的选择。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Tuxedo开发使用说明1Tuxedo的环境设置包括Client端和Server端环境设置两个部分,下面将分别加以详细说明。

Tuxedo的client端主要是一组以dll方式提供的函数调用。

假设tuxedo的安装路径是TUXDIR=C:\tuxedo,那么dll就存放在TUXDIR\bin目录下,主要包括:wtuxws32.dll、libwsc.dll、libgp.dll、libbuft.dll、libfml.dll、libfml32.dll、tuxlib.dll等。

Client端通过环境变量WSNADDR的设置值连接其调用的服务器,因此必须在环境变量中(在autoexec.bat文件中)设置WSNADDR变量,其设置为:SET WSNADDR=//服务器IP地址:端口号IP地址和端口号必须是服务器配置文件中指定的的侦听IP地址和端口(详细情形见“tuxconfig配置文件”的说明)。

Tuxedo安装完毕后,需要设置的环境变量有(以Unix环境为例,Windows NT 或2000可以参考作相应设置):TUXDIR=tuxedo的安装路径 export TUXDIRLIBPATH=$TUXDIR/lib;$LIBPATH export LIBPATHPATH=$TUXDIR/bin; $PATH export PATHTUXCONFIG=tuxconfig文件的路径/tuxconfig export TUXCONFIG其中LIBPATH表示tuxedo的库文件路径(动态库),TUXCONFIG指向tuxedo 的配置文件(详细情形见“tuxconfig配置文件”的说明)。

2 RMRM文件存放在$TUXDIR/udataobj目录下(license文件lic.txt就在此目录下)。

Tuxedo通过XA/Open协议建立与数据库的通道,而此文件正是指定了数据库的接口。

如一个RM文件的内容如下(以Oracle 8.0.4数据为例):Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh -lmm -lsql${ORACLE_HOME}/lib/osntabst.o开发基于数据库的应用时必须配置此文件,关于RM的详细说明,见tuxedo的说明文第 1 页档。

3 tuxconfigTuxedo服务器通过一个文本文件(文件名称可以随意指定,如ubbbill)来配置服务器的各个服务和访问控制等。

以下通过一个具体的文件来说明配置的主要任务(Unix环境)。

文件内容如下:IPCKEY 66667DOMAINID billapp0MASTER billing#此处的名字可以随便MAXACCESSERS 100MAXSERVERS 30MAXSERVICES 100BLOCKTIME 100MODEL SHMLDBAL Y*MACHINESDEFAULT:sys43#计算机名字 LMID=billing#此处的名字可以随便APPDIR="/tuxedo/appjf/bin"TUXCONFIG="/tuxedo/appjf/bin/tuxconfig"TUXDIR="/tuxedo"MAXWSCLIENTS=100*GROUPSGROUP1LMID=billing#此处的名字可以随便 GRPNO=1TMSNAME=TMS_ORACLE TMSCOUNT=2OPENINFO="Oracle_XA:Oracle_XA+Acc=P/abcd/abcd+SqlNet=linux_ora+SesT M=120+LogDir=.+MaxCur=10"*SERVERSDEFAULT:CLOPT="-A"SERVER0 SRVGRP=GROUP1 SRVID=100SERVER1 SRVGRP=GROUP1 SRVID=101SERVER2 SRVGRP=GROUP1 SRVID=102SERVER3 SRVGRP=GROUP1 SRVID=103SERVER4 SRVGRP=GROUP1 SRVID=104SERVER5 SRVGRP=GROUP1 SRVID=105WSL SRVGRP=GROUP1 SRVID=1第 2 页CLOPT="-A -- -n //172.18.0.10:17000 -m 1 -M 5 "*SERVICES上述配置的具体含义请阅读tuxedo帮助文档的相关部分,此处只作简单的说明。

1、 IPCKEY可以任意指定为一个整数,tuxedo用此值作为ID来创建一个共享内存、一个消息队列和一个共享段;2、 DOMAINID可以任意指定为一个名称(当前只有少数的服务器情况下可以不区分域);3、 MASTER指明哪一个主机作为主服务器,此处只有一个为billing;4、MAXACCESSERS、MAXSERVERS、MAXSERVICES、BLOCKTIME、MODEL、LDBAL是服务器运行配置参数;MACHINES部分定义了主机的配置(此处只有一台主机),其中: 1、 sys43是tuxedo server所在主机的名称,用户应当将其修改成实际主机的名称; 2、LMID=billing是将主机名称映射成另一个名称,此名称可以任意指定,但MASTER 的设置值必须是某个映射名称;3、 APPDIR指定应用服务(开发的应用系统)所在路径;#可执行程序的路径TUXCONFIG指出tuxconfig文件的位置,它的值必须与环境中的TUXCONFIG变量的设置值一致;#利用tmloadcf –y ubbbill后所装入的文件。

指示TUXEDO从 #此文件取配置信息4、 TUXDIR为tuxedo的安装目录;5、 MAXWSCLIENTS限定访问本服务器的最大client数目;GROUPS部分定义了分组情况(此处没有分其他组),其中:1、 LMID=billing指明billing主服务器在此组下;2、 GRPNO=1指定了组编号;3、 TMSNAME指定了数据库通道的名称,此名称可以任意指定;4、 TMSCOUNT 指定了打开的数据库通道的数量;5、 OPENINFO请参看tuxedo的说明文档;SERVERS部分定义了服务器配置,可以把相关的服务分在一个组内,其中:1、 SRVID由用户任意指定,CLOPT指定了此服务器的配置,具体设置请参看tuxedo的文档;2、 WSL是client端的监听服务进程,其CLOPT项指定了监听的IP地址和端口,此设置正是client端WSNADDR环境变量的设置值。

注意SERVER的数量根据用户需求自己设定,但必须包括WSL项;SERVICES部分可以省略,因为程序中已经指定了服务的名称。

第 3 页4 Tuxedo完成ubbbill配置后,在命令行模式下输入:$>tmloadcf –y ubbbill此命令将文本文件ubbbill编译成二进制配置文件tuxconfig(目标文件的路径在环境变量TUXCONFIG中指定)。

完成上述操作后,就可以启动服务器了(假设相关的服务器程序已经存在),方式如下(注:ubbbill文件中已经指定了服务器程序所在的目录):$>tmboot –y如果希望查看当前的服务运行情况,应当执行:$>tmadmin然后在提示符下输入psr查看各服务器状态,输入psc查看各服务器下服务的状态。

需要终止tuxedo服务器的运行时,命令如下:$>tmshurdown –y如果只希望终止某个正在运行的服务器进程,那么只需要改变tmshutdown的命令参数,如:#>tmshutdown –i srvid(ubbbill文件中指定的服务器ID) 5在开发应用程序时,为了调用client端函数,可以将dll拷贝到当前的开发目录下,然后在程序中加上如下常用函数的说明(以pb开发工具为例,C或C++程序除外):1、初始化调用(连接服务器):Function long tpinit (Long TPINFO) LIBRARY"wtuxws32.dll"2、结束调用(断开与服务器的连接):Function long tpterm () LIBRARY "wtuxws32.dll"3、调用服务(等待返回参数):Function long tpcall(String SVCNAME, Long IDATA,Long ILEN, ref Long ODATA, ref Long OLEN, Long flags) LIBRARY "wtuxws32.dll"4、调用服务(没有返回参数):Function long tpacall(String SVCNAME, Long IDATA,Long ILEN, Long flags) LIBRARY "wtuxws32.dll"5、分配缓冲区:Function Long tpalloc(String BUFTYPE, String SUBTYPE, LongBUFSIZE) LIBRARY "wtuxws32.dll"6、释放分配的缓冲区:Subroutine tpfree (Long buffer) LIBRARY "wtuxws32.dll"第 4 页7、获得错误描述:Function long gettperrno() library "wtuxws32.dll"8、获取返回的数据(下传数据):Function long Fget32(Long RCVBUF,long FLDID, longOCC, ref String value, ref long LEN) LIBRARY "wtuxws32.dll"9、设置调用参数(上传数据):Function long Fchg32(Long RCVBUF, long FLDID, longOCC, ref String value, ref long LEN) LIBRARY "wtuxws32.dll"10、计算返回值字段的行数(返回了多行数据):Function LongFoccur32(LongRCVBUF, long FLDID) LIBRARY "wtuxws32.dll" alias for "Foccur32"11、初始化一字段(准备上传数据):Function Long Finit32(Long RCVBUF, longBUFSIZE) LIBRARY "wtuxws32.dll" alias for "Finit32"关于上面这些函数的详细使用说明,见tuxedo的相关说明文档。

相关文档
最新文档