Tuxedo事务处理

合集下载

TUXEDO配置参数详解

TUXEDO配置参数详解

TUXEDO配置参数详解2007-07-10 09:39:47大中小TUXEDO应用系统的配置3.1 TUXEDO应用系统的常见配置配置文件UBBCONFIG介绍一个TUXEDO应用系统的所有资源都在一个文本文件中进行定义,该文件称为UBBCONFIG,在配置完成后,UBBCONFIG被编译成一个二进制的文件TUXCONFIG.在TUXEDO系统启动时,从该文件中读取系统的配置信息。

UBBCONFIG文件类似WINDOWS下的*.INI文件。

它包括以下9大部分, 我们称之为节,RESOURCES,MACHIENS,GROUPS这三个节必须的,其他的节是可选的。

RESOURCES(必需): 与整个系统有关的配置信息MACHINES(必需): 一个TUXEDO应用系统可以跨越多台服务器,在该节中配置与每台服务器有关的信息GROUPS(必需): TUXEDO中的服务可被分为多个组,在该节中配置与组有关的信息SERVERS(可选): 与SERVER有关的信息在该节配置SERVICES(可选): 与SERVICES有关的信息在该节配置NETWORK(可选):与网络有关的信息在该节配置ROUTING(可选) :路由规则在该节配置NETGROUPS(可选):与网络分组有关的信息在该节配置名称解释:TUXEDO应用系统一个TUXEDO应用系统包括服务端,客户端,服务端安装在服务器上,客户端一般安装在PC 机上,从开发角度看,一个TUXEDO应用系统包括服务端程序,客户端程序,一个配置文件。

此外,一个TUXEDO应用系统可以部署在一台服务器上,也可以部署在多台服务器上。

SERVER:服务端程序用C或COBAL编写,每一个程序文件编译成一个相应可执行文件,该可执行文件在运行时称为SERVER,它实际上就是一个进程。

每个SERVER都有一个名字,也就是该进程的名字。

为与TUXEDO应用系统的服务端区分,我们在本书中,我们用SERVER表示该进程,用服务端表示TUXEDO应用系统的服务端。

tuxedo基本命令详细说明

tuxedo基本命令详细说明

1 tmloadcf➢检查UBBCONFIG文件的内容及格式➢将文本格式的UBBCONFIG文件编译生成二进制文件➢必须在主机上运行➢格式tmloadcf [-n] [-y] [-c] [-b blocks] {UBBCONFIG_file | -}➢参数-c 计算最小的IPC需求-n 仅仅进行UBBCONFIG文件的内容检查,不生成二进制文件-y 覆盖已有的二进制文件之前不提示-b blocks 如果环境变量TUXCONFIG所指的文件存放在一个裸设备上,建议使用该参数;如果该文件存放在文件系统上,则不需要2 tmunloadcf➢将二进制TUXCONFIG文件反编译为文本格式3 tmipcrm➢清除本机上的IPC资源➢自动根据TUXCONFIG_file参数查找相应的IPC资源➢一般在Tuxedo非正常停止的情况下用来清理残留IPC资源➢格式tmipcrm [-y] [-n] [TUXCONFIG_file]➢参数-y 对命令运行过程中的询问回答y-n 不清除IPC资源,只是列出IPC资源TUXCONFIG_file Tuxedo的配置文件。

如果不指定,则使用环境变量TUXCONFIG4 tmboot➢启动Tuxedo➢格式tmboot [-l lmid] [-g grpname] [-i srvid] [-s aout] [-o sequence][-S] [-A] [-b] [-B lmid] [-T grpname] [-e command] [-w] [-y] [-g][-n] [-c] [-M] [-d1]➢参数-l lmid 启动所有绑定到这个逻辑主机的服务,包括应用Server、TMS、Gateway等等-g grpname 启动grpname包含的所有服务,包括应用Server、TMS等-i srvid 启动所有SRVID为srvid的服务-s aout 启动Server名字为aout的服务,也可以用来启动TMS、Gateway等服务。

中间件技术及Tuxedo

中间件技术及Tuxedo

快速开发应用
中间件屏蔽了底层操作系统的复杂性,使程序 开发人员面对一个简单而统一的开发环境,减 少程序设计的复杂性,将注意力集中在自己的 业务上,不必再为程序在不同系统软件上的移 植而重复工作,从而大大减少了技术上的负担。
中国电信系统集成公司
快速开发应用
Client
Network
DB
• C, C++, COBOL, .. • DOS / Windows • Gupta • I-CASE • Java • Object View • Oracle Forms • PowerBuilder • SuperNova • Toolbook • UNIX • Visual Basic • 3270 • ....
全局事务处理
资源级全局事务管理器 数据库 队列
支持XA协议
中国电信系统集成公司
即使组件 发生故障! 也能保证 业务处理 不被中断--
Appl Tux
并行数据 库服务器
Appl
Tux
Parallel Database Server
Appl
Tux
并行数据 库服务器
数据库 服务器 群
= 组件故障
中国电信系统集成公司
BEA TUXEDO Enterprise Server
规模扩展性
高性能: 负载均衡
27 26 25 服务器 4 节点 A 3 2 1 Node
Manager 自动服务复制 NI
...
实时消息路由 循环路由分发 数据依赖路由
NI Node Manager
NI Node Manager
NI Node Manager
Server Node 1
中国电信系统集成公司

HPUX下Tuxedo高可用性的实现方案

HPUX下Tuxedo高可用性的实现方案
鉴于Tuxedo 8.1是BEA公司的通信中间件产品,在 电信业、银行业等大规模联机事务处理的环境中有着广 泛的应用,支持典型的多层客户/服务器结构,为用户提 供了软件实现的高可用性解决方案,方案中结合HP-UX 下的MC/ServiceGuard软件对系统高可用性的支持,采 用Tuxedo 8.1满足了整个系统中各应用服务器的负载均 衡的要求,达到了山东建行数据中心综合业务系统7×24 小时不间断运行的目的。
一、初期的实现方案
在系统开始上线运行的初始阶段,因为需要从老的 营业系统平滑切换,现有的四台应用服务器只能一一从 运行中的旧的营业系统中替换出来,因此,在开始的阶
段中未考虑全系统的高可用性,仅在数据库服务器中使 用了HP的群集软件,以保证数据库服务器的不间断运 行。整个系统切换完毕后,新营业业务系统架构如图1所 示。
热点探究 IT服务管理
HP-UX下Tuxedo高可用性的实现方案
中国建设银行股份有限公司山东省分行信息技术管理部 郝玉磊 刘忠宝
中国建设银行股份有限公司银行山东省分行(以下 简称“山东建行”)的整个营业系统为三层结构,前端 为网点、中间为A、B、C、D四台各自独立的应用服务 器,安装Informix客户端,应用服务器上的Tuxedo服 务程序通过Informix客户端软件与数据库服务器通信, 未采用XA接口。后端为两台数据库服务器,使用了 HP-UX的MC/ServiceGuard软件组成HA群集,运行 Informix Dynamic Server 2000数据库系统,前台网点 应用服务器之间的通信由Tuxedo 8.1来完成。本文讨论 的内容局限于网点和应用服务器之间的高可用性实现方 案。本文中应用服务器故障指的是主机宕机等系统层次 的故障。
当单台应用服务器(B、C、D机)出现故障的 时候,因为前台网点的WSNADDR配置了主、 备服务器,所以它会首先尝试连接主服务器,假 如IP不通了,这个尝试的时间可能较长(所有的 超时控制都在服务器端实现),虽然交易最后总 会发往备用服务器而成功,但这样前台网点的反 应速度会降低(每一笔交易)。为避免这个问题, 我们可以在B、C、D机上分别增加一个MC/ ServiceGuard的应用程序包,此应用程序包的唯 一用途就是维持一个浮动的IP地址,这样当一个 节点宕机时,它的浮动IP地址会切换到备用节 点,这样前台网点的主服务器尝试马上返回,从 而连接备用服务器,使故障后的反应速度基本无 变化。当然了,这样的方案使整个系统的管理复 杂性上有所增加,但它所提供的交易可靠性和交 易速度都是一流的,我们可以结合网点的需求决定是否 采用。另外,WSL在各机器的配置的不同,相应的解决 方案也会有所变化。

中间件操作指引-Tuxedo

中间件操作指引-Tuxedo

中间件操作指引Bea Tuxedo广东亿迅科技有限公司2008年7月项目名称/代码:集成部版本: 1.0状态:所有人:系统组作者/创建时间:唐彪批准人/批准时间:文档更改历史记录目录第1章BEA TUXEDO产品 (5)1.1T UXEDO是什么 (5)1.2T UXEDO系统特点 (5)第2章TUXEDO安装 (6)2.1在UNIX系统安装 (6)2.2在WINDOWS系统安装 (7)2.3安装LICENSE (7)2.4T UXEDO环境变量 (7)2.5T UXEDO目录结构 (8)2.6T UXEDO应用步署过程 (8)第3章配臵管理 (8)3.1配臵文件 (8)3.2资源定义 (9)3.3机器的信息 (10)3.4组定义 (11)3.5服务定义 (11)3.6交易定义 (12)3.7生成TUXCONFIG文件 (13)第4章管理命令 (13)4.1TMBOOT命令 (13)4.2TMSHUTDOWN命令 (14)4.3TMADMIN命令 (14)4.3.1查看services状态 (15)4.3.2查看server状态 (16)4.3.3查看队列状态 (16)4.3.4查看客户端状态 (17)4.4查看日志 (18)第5章常见故障 (18)5.1UBB编译类 (18)5.2服务启动类 (19)5.3服务关闭类 (20)5.4域间通信类 (20)第1章Bea Tuxedo产品1.1 Tuxedo是什么BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。

它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。

开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。

BEA TUXEDO是企业、Internet 分布式应用中的基础主干平台。

它提供了一个开放的环境,支持各种各样的客户、数据库、网络、遗留系统和通讯方式。

TUXEDO技术培训

TUXEDO技术培训
n 编译:决定客户端属于那种类型是看客户端编译 时连接的那个TUXEDO lib生成的。使用 buildclient -o wsimpcl -f simpcl.c -w
TUXEDO技术培训
TUXEDO系统的应用基础、通信缓冲区以及通信方式(三)
n WSL工作原理及其配置
n WSL (workstation Listener)是tuxedo提供的工作站监听服务器,应用程序启 动时它开始监听服务器上的某个端口,并根据配置自动启动若干个WSN( workstation Handler),形成”WSL pool“,WSN类似于客户端在服务器的代理 ,并且WSL会根据配置动态调整WSN的进程数量
改进 n TUXEO10.0 增加了TSAM(Tuxedo system and application monitor)应
用监控管理平台。为TUXEDO提供全方位的性能监控和管理服务,根据 时间规则产生告警,并协助进行性能调优。
TUXEDO技术培训
TUXEDO产品介绍以及各版本概述(五)
n TUXEDO系统的关键特点
n 具有三大独特功能:事务监视器、中间件角色、应用服务 器平台角色 1、协调分布式事务,使用XA和两阶段管理协调数据库事务
2、相对独立的结构为用户提供应用开发的简单性和实现自身的价值 3、封装逻辑层的处理,作为应用的统一部署
TUXEDO技术培训
TUXEDO产品介绍以及各版本概述(二)
n 1983年诞生于美国贝尔实验室,最初被命名为 UNITS(Unix Transaction system),之后被开发为 C/S接口的系统架构TUX(Transaction for UNIX) ,最后被命令为“TUX has been Extended for Distirbuted Operation”

2024年度中间件技术及Tuxedo课件


2024/3/23
25
06
Tuxedo运维管理与最 佳实践
2024/3/23
26
监控和日志分析工具介绍及使用技巧
监控工具
介绍Tuxedo提供的监控工具,如tmadmin、tmloadcf等,以及如 何使用这些工具进行实时监控和性能分析。
日志分析
详细阐述Tuxedo日志文件的格式和内容,如何通过日志分析工具 进行日志的解析、筛选和统计,以便快速定位问题。
02
2024/3/23
03
调优实践
分享在实际运维过程中遇到的性能问 题及其解决方案,以及在进行性能调 优时需要注意的事项。
29
版本升级注意事项及迁移方案
版本升级流程
详细介绍Tuxedo版本升级的流程和步骤,包括前期准备、升级过程、后期验证等。
注意事项
列举在进行版本升级时需要特别注意的事项,如兼容性问题、数据迁移问题、配置变更 问题等。
01 安装过程中遇到错误提示,如何解决?
02 Tuxedo服务无法启动或异常退出,如何处 理?
03
Tuxedo交易执行失败或性能不佳,如何优 化?
04
如何备份和恢复Tuxedo配置信息及数据?
20
05
Tuxedo应用开发实践
2024/3/23
Байду номын сангаас
21
基于Tuxedo构建分布式系统架构
2024/3/23
2024/3/23
迁移方案
针对可能遇到的数据迁移问题,提供相应的解决方案和操作步骤,如数据备份、数据转 换、数据验证等。同时,分享一些成功的迁移案例和经验教训。
30
THANK YOU
2024/3/23

Tuxedo中间件和银行核心业务系统测试简介

Tuxedo中间件和银⾏核⼼业务系统测试简介Tuxedo中间件和银⾏核⼼业务测试的简介⼀、银⾏核⼼业务系统的业务介绍(⼀)、银⾏的类型我国银⾏体系由三部分构成:即中央银⾏、政策性银⾏和商业银⾏。

中国⼈民银⾏为中央银⾏;国家开发银⾏、中国农业发展银⾏和中国进出⼝银⾏是政策性银⾏;商业银⾏分为国有独资商业银⾏、股份制商业银⾏、城市商业银⾏、农村信⽤社和境内外资银⾏。

本⽂所说的银⾏指的是第三种类型即商业银⾏。

(⼆)、银⾏业务的类型银⾏业务分类有多种,按业务资⾦来源的不同,商业银⾏业务可分为负债业务、资产业务以及中间业务。

负债类型:存款类、外借款类和银⾏资本类资产业务:主要包括发放贷款、投资业务和其他资产业务中间业务:各种托收托付、汇兑、代理等等从测试的⾓度来说,按照⽇常经营的业务频繁程度,银⾏最主要的业务是存取款业务和贷款收发业务,次之的是每⽇的换班扎帐和⽇终结帐,最后的是利息结算和年终结算这类周期性的结算业务。

(三)、银⾏核⼼系统性能测试场景测试模型设计1、测试点:结合银⾏⽇常的业务情况,测试点应该包括个⼈存款、个⼈取款、对公存款、对公取款、个⼈贷款、对公贷款、同城票据交换、汇兑等⽇常业务,还应该包含诸如换班扎帐、⽇终结帐、⽉报、季报、结息和年终结算等数据处理业务。

(当然很多银⾏的结息和年终结算不部署在核⼼业务系统中)。

2、测试场景(1)、⽇常营业场景模拟在线测试:⽤户量可以通过银⾏开户的客户数量度量,交易的吞吐量可以通过银⾏完成的业务数量算出。

并结合换班扎帐和⽇终结帐的操作。

并发测试:(2)、结算业务场景模拟银⾏的计算业务,例如结息、⽉报、季报和年度结算这类业务的⽤户数量可以通过机构数量来计算,对于系统来说主要关注的侧重点是这类操作对于⽇常营业场景的影响以及这类操作的资源占⽤和时间响应。

(当然结算类的业务⼀般安排在晚上执⾏或者单独系统来处理)⼆、银⾏核⼼业务系统的架构介绍在银⾏业的分布式系统中以交易中间件为核⼼框架的三层客户机/服务器模式(C/S/S)是绝对的主流架构。

Tuxedo培训教程优质文档-2024鲜版

01 TuxedoChapterTuxedo定义及发展历程Tuxedo是一款由Oracle公司推出的中间件产品,用于构建分布式事务处理应用。

Tuxedo起源于1980年代,由AT&T实验室开发,后被BEA公司收购,最终被Oracle公司收购并成为其重要中间件产品之一。

Tuxedo在发展过程中不断引入新技术和功能,如支持Java、C、COBOL等多种编程语言,提供消息队列、负载均衡、故障恢复等特性。

Tuxedo核心功能与优势分布式事务管理高可用性可扩展性安全性安装步骤与配置环境安装Tuxedo软件配置环境变量创建域和服务器部署应用解决方案解决方案解决方案检查网络连接是否正常,确认服务器端口号和应用配置是否正确。

问题3问题1问题2检查参与分布式事务的资源管理器是常见问题及解决方案02 TuxedoChapter服务与服务组件服务定义在Tuxedo中,服务是指一个可执行的业务逻辑单元,它接收请求并返回响应。

服务通常与特定的业务功能或操作相关联。

服务组件服务组件是构成服务的基本单元,包括服务程序、服务数据和服务配置。

这些组件协同工作,以实现服务的完整功能。

服务接口服务接口定义了服务的输入和输出参数,以及服务的调用方式。

通过服务接口,客户端可以与服务进行交互。

通信机制Tuxedo 支持多种通信机制,包括请求/响应、发布/订阅和点对点通信。

这些通信机制可以根据业务需求灵活选择。

消息队列Tuxedo 使用消息队列来实现异步通信。

消息队列是一种暂存消息的容器,它允许发送者和接收者在不同的时间点上进行通信。

消息传递在Tuxedo 中,消息可以通过不同的方式进行传递,如同步传递、异步传递和可靠传递。

消息传递的可靠性可以通过确认机制和重试机制来保障。

消息队列与通信机制事务管理与负载均衡事务管理负载均衡故障恢复安全性及可靠性保障身份验证与授权01数据加密02监控与日志记录0303 TuxedoChapter01020304安装Tuxedo 开发环境,配置相关资源。

Tuxedo完全操作手册

Tuxedo完全操作⼿册⼀、tuxedo的配置1、展开tuxedo包,例如:/home/tuxedo2、配置ubbconfig⽂件在江苏建⾏是jsccb.ubb*RESOURCES*RESOURCES节包含整个应⽤范围的信息。

本节必须在配置⽂件第⼀节,不可缺少。

参数意义*RESOURCES *RESOURCES节IPCKEY 共享内存idUID TUXEDO管理员⽤户idGID TUXEDO管理员⽤户idPERM TUXEDO管理员组⽤户的权限MAXACCESSERS 服务端和客户端的最⼤进程数MAXSERVERS 限制可以启动服务总数MAXSERVICES 限制可以发布交易总数MASTER 指出主控节点的逻辑名,第⼆个是备份节点MODEL 应⽤构架,MP表⽰多机OPTIONS LAN,MIGRA TE表⽰是⼀个⽹络应⽤,服务可以移植到替代处理器上SECURITY 安全级别(5个)AUTHSVC 客户端可以通过交易“AUTHSVC”获得认证NOTIFY DIPIN,客户端通过dip-in收到⼴播通知SYSTEM_ACCESS PROTECTED,NO_OVERRIDE,应⽤代码不得⼲扰共享内存LDBAL 设Y则进⾏负载平衡MAXBUF[S]TYPE 数据缓冲类型及⼦类的最⼤数SCANUNIT 内部时间间隔单位,单位是秒SANITYSCAN 检索公告牌的内部时间间隔,单位是SCANUNITBLOCKTIME 交易超时时间,单位是SCANUNITBBLQUERY DBBL查询所有BLL的时间间隔DBBLWAIT DBBL等待BBL回应的超时时间MAXCONV 同时最⼤会话数jsccb.ubb的实例###################### RESOURCES SECTION ######################*RESOURCESIPCKEY 234567DOMAINID JSCCBMASTER SERVER1MAXSERVERS 900MAXSERVICES 2000CMTRET LOGGEDMODEL MPLDBAL YSECURITY NONEMAXGTT 500OPTIONS LANBLOCKTIME 12*MACHINES*MACHINES节包含应⽤有关的每个处理器的信息。

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

Tuxedo事务处理2010-08-20 10:43:27| 分类:默认分类|举报|字号订阅Tuxedo事务处理zz from/u/21558/showart_148952.html Tuxedo事务处理一、什么是事务事务(Transaction)是一组逻辑上相关联的操作,这些操作要么全都成功执行,要么全都不执行。

事务所含的操作可以分布在不同的程序甚至不同的机器上。

事务处理必须具备四个基本属性原子性、一致性、独立性、耐久性(Atomic、Consistent、Isolated、Durable也叫ACID属性):n 原子性(Atomic)要求一个事务是一个最小的不可分割的单位,以银行转帐事务为例,一个完整的事务处理需要改变转出和转入两个帐户的资金,只改变一个帐户是不对的。

n 一致性(Consistent)意味着事务处理正确地转换了系统状态。

要么是资金离开一个帐户进入另一个帐户,要么是都保持不变---只有这两种可能的状态。

如果系统没有得到转换后状态,就回到没有转换时的状态而不会停在中间。

n 独立性(Isolated)保证任何其他的事务都不能看到一个处在不完整状态下的事务处理。

尽管实际上在钱款被提走而还没有存入另一个帐号期间有一个远远小于一秒的间隔,系统中的其他事务也不会知道的。

n 耐久性(Durable)表示事务处理能在系统失败时保存完好。

一个事务处理应当能够承受所有的失败,包括服务器、进程、通信以及媒体失败等等。

二、事务处理系统的X/Open DTP 模式由于分布式事务处理中的操作可能位于许多不同的平台和数据库产品上,为了协调和控制这些不同的事务操作的行为,必须有一个事务管理进程,而X/Open标准正是为此而定义了一个分布式事务处理(Distributed Transaction Processing, DTP)的模式以及用于事务管理进程和资源管理器交互的XA接口。

X/Open DTP模式的结构图:DTP模式有三个模块:1) 应用程序(Application Program)通过TX接口向事务管理器定义一个事务边界,然后向资源管理器提交事务操作;2) 资源管理器(Resource Manager,RM)是支持XA接口并提供对共享资源访问接口的管理程序。

最常见的RM是数据库,但象消息队列或打印机缓冲池等也可以作为RM,只要它们支持XA接口。

3) 事务管理器(Transaction Manager, TM)为事务处理编号,监控事务处理全过程并负责事务执行或错误恢复。

Tuxedo系统提供了用于创建事务管理器的组件和工具(buildtms)。

资源管理器厂商(Oracle, Infomix等)必须提供兼容XA接口的函数库,这些函数库用来和Tuxedo的组件及工具一同编译生成一个Tuxedo的事务管理器。

XA接口及两步提交协议DTP模式中事务管理器和资源管理器之间通过XA接口进行通信,XA接口定义了关于如何协调、执行及恢复事务的一个协议规范。

两步提交协议(Two Phase Commit protocol, 2PC)是XA规范的一部分。

在两步提交协议中的第一步,TM询问参与一项事务处理的所有RM是否都准备好并能够执行事务操作。

第二步中,TM检查RM的应答中是否有不能执行事务操作的应答,若有则通知所有参与事务处理的RM回滚它们所做的事务操作,若没有则通知RM执行事务操作。

三、Tuxedo服务程序和RM的连接一个Tuxedo服务程序连接RM是通过调用tpopen()函数实现的,该函数只能在服务程序初始化时(tpsvrinit)调用一次。

要关闭和RM的连接,则必须在服务程序终止前调用tpclose()函数。

一个Tuxedo服务程序中不应该执行CONNECT、COMMIT、ROLLBACK、SAVEPOINT和SET TRANSACTION这些SQL语句,因为它们会改变事务处理的状态。

同样,服务程序也不应该执行CREATE、ALTER和RENAME等SQL 数据定义语句,因为这些语句隐式地执行了COMMIT语句。

四、Tuxedo事务管理器Tuxedo事务管理器(TMS)必须跟踪分布式事务处理的整个流程,记录足够的信息以便在任何时候进行回滚,因此TMS使用事务日志文件(TLOG)来记录跟踪信息,同时为了区别系统中同时进行的不同事务处理流程,TMS又为不同的事务处理分配了一个全局事务编号(GTRIDs)。

在事务处理的不同阶段,TMS将执行不同的动作如下表:阶段TMS动作应用程序启动一项事务处理为事务处理分配一个全局事务编号(GTRIDs)启动事务处理的进程与其它进程通信跟踪这些参与事务处理的进程事务处理访问RM 将相应的GTRIDs传递给RM,这样RM就可以监控哪些数据库记录被该事务处理存取应用程序标记一项事务按两步提交协议执行事务处理将被执行应用程序取消事务处理执行回滚操作有错误发生执行回滚操作五、事务处理应用程序开发及管理开发环境:Linux + Tuxedo + Oracle1、开发流程图2、创建Oracle数据库及表先设置Oracle环境变量:ORACLE_HOME=/home/oracleORACLE_SID=linuxdbPATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:$ORACLE_HOME/d bsLD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TUXDIR/lib:/home/oracle/lib再编写Sql脚本在数据库中创建表空间、用户及数据表:创建表空间CREATE TABLESPACE创建用户CREATE USER创建表CREATE TABLE运行Oracle的SQL*PLUS,执行Start命令运行Sql脚本。

3、创建Oracle的TMS检查$TUXDIR/udataobj目录下的RM文件是否有对Oracle8的RM描述Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh此描述将做为编译TMS和服务端程序的编译选项。

执行Buildtms命令编译Oracle的TMS服务程序,命令格式如下:buildtms –o tms_name –r rm_name-o tms_name: 编译生成的TMS程序名-r rm_name: RM描述名例如:buildtms –o TMS_ORA –r Oracle_XA4、客户端程序客户端程序通常作为一项事务处理的发起者(initiator)调用tpbegin函数,声明如下:int tpbegin(unsigned long timeout, long flags)参数:unsigned long timeout 事务处理超时时间(秒),若为0则为系统最大超时时间long flags 未定义,应为0返回值:若为-1则代表出错,tperrorno为错误代码。

客户端程序在调用tpbegin之后可通过tpcall、tpacall、tpconnect等来请求服务端程序,所有被请求的服务将作为事务处理的参与者被TMS跟踪记录,若任何服务请求返回失败(TPFAIL)则客户端程序需调用tpabort函数终止当前事务处理,tpabort函数声明如下:int tpabort(long flags)参数:long flags 未定义,应为0返回值:若为-1则代表出错,tperrorno为错误代码。

若所有请求都成功(TPSUCCESS)则调用tpcommit函数执行事务处理,声明如下:int tpcommit(long flags)参数:long flags 未定义,应为0返回值:若为-1则代表出错,tperrorno为错误代码。

客户端程序例子:/* Begin a Global transaction */if (tpbegin(30, 0)== -1){printf("ERROR: tpbegin failed (%s)\n", tpstrerror(tperrno));goto finish;}/* send a request to the OPEN_ACCT service and get the reply */if (tpcall("OPEN_ACCT", (char *)fbfr, 0, (char**)&fbfr, &len, 0) == -1){if (tperrno == TPESVCFAIL &&fbfr != NULL &&(server_status=Ffind32(fbfr,STATLIN,0,0)) != 0){/* Server returned failure */printf("OPEN_ACCT returns failure (%s)\n", server_status);}else{printf("ERROR: OPEN_ACCT failed (%s)\n", tpstrerror(tperrno)); }/* Abort the transaction */tpabort(0);goto finish;}/* Commit the transaction */if (tpcommit(0) < 0) {printf("ERROR: tpcommit failed (%s)\n", tpstrerror(tperrno));goto finish;}注意:1) 只有事务处理的发起者才能调用tpabort或tpcommit函数终止或执行一项事务处理;2) Tuxedo不支持嵌套事务处理,即发起者在调用tpbegin和tpabort或tpcommit之间不能再调用tpbegin开始一个新的事务处理。

5、服务端程序服务端程序负责和RM的连接(tpopen,tpclose),同时作为事务处理的参与者通过Embeded SQL存取Oracle RM中的数据。

服务程序在启动(tpsvrinit)时调用一次tpopen函数连接到RM,函数声明如下:int tpopen(void)参数:无返回值:-1代表出错服务程序在退出之前(tpsvrdone)必须调用tpclose函数关闭和RM的连接,函数声明如下:int tpclose(void)参数:无返回值:-1代表出错Oracle的Embeded SQL语言是Pro*C,具体编程方法可参考《PRO_C程序设计和ORACLE调用》一书。

注意:1) 在用BuildServer编译服务端程序时需加上-r rm_name选项指明服务程序所用的RM名称如-r Oracle_XA6、配置文件在Tuxedo应用程序的配置文件中主要修改以下四个部分:n RESOURCES 设置最大事务处理个数及执行控制标志n MACHINES 每台机器的TLOG配置n GROUPS 配置RM和TMS的信息n SERVICES 设置自动事务处理标志RESOURCES部分中的参数:MAXGTT –限制在一台机器上某一时刻分配GTRIDs总数,最大值2048,缺省100,可在MACHINES中为单独的一台机器改写。

相关文档
最新文档