TUXEDO性能调优的基本方法

合集下载

Tuxedo性能调优经验谈

Tuxedo性能调优经验谈

Tuxedo性能调优经验谈Tuxedo 9.0 for AIX与Oracle 10 XA连接网友:chinakkee 发布于:2006.11.13 09:54(共有条评论) 查看评论| 我要评论系统说明TUXEDO版本:9.0 安装目录/opt/bea/tuxedo9.0ORACLE版本:10.2.0.1 安装目录/u01/app/oracle一、Tuxedo 9 for AIX的安装1、创建一个用户为Tuxedo,用户组为bea2、创建/opt/bea为tuxedo的安装目录,$mkdir /opt/bea$chown tuxedo.bea /opt/bea$chmod 770 /opt/bea#bootinfo -k64$ sh tuxedo9_aix53_64.bin -i consolePreparing to install...WARNING: /tmp does not have enough disk space!Attempting to use /home/tuxedo for install base and tmp dir.Extracting the JRE from the installer archive...Unpacking the JRE...Extracting the installation resources from the installer archive...Configuring the installer for this system's environment...Launching installer...Preparing CONSOLE Mode Installation...===================================================== ======Choose Locale...----------------->1- EnglishCHOOSE LOCALE BY NUMBER: 1===================================================== ======(created with InstallAnywhere by Zero G)-------------------------------------------------------------------------------===================================================== ======Introduction------------BEA End User Clickwrap 001205Copyright (c) BEA Systems, Inc.All Rights Reserved.DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): y===================================================== ======Choose Install Set------------------Please choose the Install Set to be installed by this installer.->1- Full Install2- Server Install3- Full Client Install4- Jolt Client Install5- ATMI Client Install6- CORBA Client Install7- Customize...ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS TO ACCEPT THE DEFAULT : 1===================================================== ======Choose BEA Home---------------1- Create new BEA Home2- Use existing BEA HomeEnter a number: 21- /opt/beaExisting BEA Home directory: 1===================================================== ======Choose Product Directory------------------------1- Modify Current Selection (/opt/bea/tuxedo9.0)2- Use Current Selection (/opt/bea/tuxedo9.0)Enter a number: 2===================================================== ======Pre-Installation Summary------------------------Please Review the Following Before Continuing:Product Name:Tuxedo 9.0Install Folder:/opt/bea/tuxedo9.0Link Folder:/home/tuxedoDisk Space Information (for Installation Target):Required: 386,803,702 bytesAvailable: 2,625,392,640 bytesPRESS TO CONTINUE:===================================================== ======Ready To Install----------------InstallAnywhere is now ready to install Tuxedo 9.0 onto your system at thefollowing location:/opt/bea/tuxedo9.0PRESS TO INSTALL:===================================================== ======Installing...-------------[==================|==================|=============== =][------------------|------------------|------------------|------------------]===================================================== ======Configure tlisten Service-------------------------Password: tuxedoVerify Password: tuxedoPassword Accepted! Press "Enter" to continue.===================================================== ======SSL Installation Choice.------------------------Would you like to install SSL Support?->1- Yes2- NoENTER THE NUMBER FOR YOUR CHOICE, OR PRESS TO ACCEPT THE DEFAULT:: 2===================================================== ======License Installation Choice---------------------------Would you like to install your license now?->1- Yes2- NoENTER THE NUMBER FOR YOUR CHOICE, OR PRESS TO ACCEPT THE DEFAULT:: 2===================================================== ======Installation Complete---------------------Congratulations. Tuxedo 9.0 has been successfully installed to:/opt/bea/tuxedo9.0PRESS TO EXIT THE INSTALLER:安装完毕,需要把license文件重命名为lic.txt copy到$TUXDIR/udataobj/二、TUxedo 9 连接Oracle 10g配置前提是在Tuxedo 9 上安装Oracle 10g client还有安装C编译器(不一定要用Visual Age C/C+用户能够通过sqlplus连接oracle数据库1、ORACLE的的配置sqlplus[email=system@testcrm]system@testcrm[/email]SQL> @$ORACLE_HOME\rdbms\admin\xaview.sqlSQL>grant select on v$xatrans$ to public with grant option;SQL>grant select on v$pending_xatrans$ to public with grant option;SQL>grant select EMP to ScottSQL>GRANT SELECT ON DBA_PENDING_TRANSACTIONS TO Scott;注:scott默认为lock,需要用alter user scott account unlock,解锁。

TUXEDO教程

TUXEDO教程

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

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

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

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

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

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

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

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

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

Tuxedo的工作原理及Toupper功能讲解

Tuxedo的工作原理及Toupper功能讲解

BEA Tuxedo中间件应用初探本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。

随着中间件在大型应用系统中的日益普及,目前各类中间件充斥着市场,它们在银行、电信、金融等大规模关键事务领域中的整合各种异构平台、保证交易完整性等方面表现出了超强的能力。

BEA Tuxedo就是其中一款著名的交易中间件,本文以一个经典的例子(大写字母转换),主要介绍Tuxedo的工作原理及开发方法,以及Tuxedo应用程序的管理方法。

工作原理Tuxedo是BEA公司的交易中间件产品,1984年由贝尔实验室开发成功,1992年易主Novell公司,1996年由BEA公司收购,经过十多年的不断更新和完善,Tuxedo已经发展成为交易中间件领域事实上的标准。

Tuxedo可以有效地整合企业异构C/S系统,实现大规模的关键业务处理和分布式事务管理,从而为企业提供一个可靠的、高性能的、易维护的三层分布式计算机环境。

图1展示了一个基本Tuxedo系统的组成和工作原理。

图一①Client向System/T发出查询请求,以找到Server消息队列的地址;②Client根据找到的入口地址将请求发送到Server的消息队列中;③Server处理请求,并将结果返回给Client的消息队列。

System/T是Tuxedo系统的核心,它实现了Tuxedo的所有功能和特征,如C/S 数据流管理、服务请求的负载均衡、全局事务管理以保证交易的完整性、同步/异步服务请求、两阶段提交以确保消息的发送等。

System/T提供了一个类似公告栏的服务,用以发布C/S计算机环境中所有服务器、服务和客户机的信息,供其它分布式计算的参与者使用。

下面笔者将通过一个大写字母转换的简单例子,讲述Tuxedo应用程序工作的基本原理和开发方法。

应用介绍Simpapp是Tuxedo系统自带的一个例子,它由服务器和客户端程序两部分组成。

TUXEDO中间件基础培训教程

TUXEDO中间件基础培训教程

TUXEDO中间件基础培训教程TUXEDO是一种常用的中间件,用于构建分布式系统和业务应用。

它提供了灵活的架构和强大的功能,能够处理高并发的请求和可靠的消息通信。

本篇文章将介绍TUXEDO的基础知识和用法,帮助读者了解和使用TUXEDO中间件。

一、TUXEDO中间件概述1. 应用服务器(Application Server):负责处理客户端请求,调用相应的服务和资源。

2. 事务管理器(Transaction Manager):负责管理分布式事务,保证事务的一致性和可靠性。

3. 路由器(Router):负责根据客户端请求的目标,将请求路由到相应的应用服务器。

4. 消息队列(Message Queue):用于在不同的应用服务器之间传递消息。

二、TUXEDO开发环境2.配置TUXEDO环境:设置TUXDIR环境变量和相关配置文件,以便使用TUXEDO命令和功能。

3.开发工具:TUXEDO提供了命令行工具和图形化界面工具,可以根据具体需求选择适合的工具进行开发。

三、TUXEDO应用开发1. 定义服务(Service):服务是TUXEDO中间件的核心概念,它表示一个可供调用的逻辑单元。

可以使用工具或配置文件定义服务,并设置相应的参数和属性。

2. 编写客户端代码:客户端代码负责与TUXEDO中间件进行交互,发送请求和接收响应。

可以使用C、C++、Java等编程语言进行开发,使用TUXEDO提供的API进行调用。

3. 编写服务代码:服务代码负责响应客户端请求,并进行相应的数据处理和业务逻辑。

可以使用C、C++、Java等编程语言进行开发,使用TUXEDO提供的API进行编程。

4.配置资源:资源是TUXEDO应用的关键组成部分,包括数据库连接、文件系统等。

可以使用配置文件或工具对资源进行定义和配置。

5.部署应用程序:将开发完成的应用程序部署到TUXEDO环境中,并进行测试和验证。

四、TUXEDO事务处理1.本地事务:在单个应用服务器内执行的事务,可以通过TUXEDO事务管理器进行管理。

2024年度TUXEDO培训教材讲述

2024年度TUXEDO培训教材讲述

22
2024/3/23
消息传递方式
消息可以通过点对点(Point-to-Point)或发布/订阅(Publish/Subscribe)方式进行传递。点对点方式中,消息被发送到一个特定的队列,等待一个消费者来接收;发布/订阅方式中,消息被发送到一个主题(Topic),多个消费者可以订阅该主题并接收消息。
服务调用机制
详细介绍TUXEDO中的异常处理机制,包括异常的分类、捕获、处理以及日志记录等。
异常处理机制
通过具体的编程示例,展示如何在TUXEDO应用中进行服务调用和异常处理,包括服务的注册、调用、异常捕获以及错误处理等。
编程示例
20
2024/3/23
04
CHAPTER
消息队列与通信机制解析
21
2024/3/23
按照安装向导的提示,逐步完成TUXEDO软件的安装,包括选择安装目录、设置环境变量等。
03
02
01
14
2024/3/23
编辑TUXEDO的配置文件(如ubbconfig文件),设置服务器参数,如服务名、监听端口、数据库连接信息等。
配置文件
详细解释每个参数的含义和作用,以及如何根据实际情况进行配置。
TUXEDO支持水平扩展和垂直扩展,可根据业务需求灵活调整系统规模。
可扩展性
TUXEDO支持多种操作系统和编程语言,方便企业构建跨平台应用。
跨平台支持
8
2024/3/23
金融行业
用于构建高性能、高可靠性的金融交易系统,如支付、结算、清算等。
电信行业
用于构建大规模、高并发的电信业务系统,如计费、营销、客服等。
发展历程
TUXEDO最初由BEA Systems公司开发,后被Oracle公司收购并成为其融合中间件的重要组成部分。经过多个版本的迭代升级,TUXEDO不断完善和扩展其功能,成为企业级分布式应用的首选解决方案。

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应用的性能瓶颈问题。

12_TUXEDO_典型问题

12_TUXEDO_典型问题

<Insert Picture Here>Tuxedo 典型问题Tuxedo应用内存泄漏(Memory Leak) Tuxedo应用核心转储(Core Dump) Tuxedo应用阻塞Tuxedo应用挂起Tuxedo优化策略Tuxedo应用内存泄漏(Memory Leak)✓问题现象✓原因分析✓解决方法Tuxedo应用核心转储(Core Dump) Tuxedo应用阻塞Tuxedo应用挂起Tuxedo优化策略问题现象•从整个系统的角度看,存在内存泄漏会造成系统的空闲内存不断减小,极端情况下有可能造成操作系统运行缓慢或宕机•从进程角度来看,存在内存泄漏的进程,它的进程空间会不断增加(通过”ps –elf”、AIX的”svmon”查看进程)原因分析•内存泄漏是指程序对于一块动态申请的内存失去了参照指针,造成内存块无法释放的现象•内存泄漏是由于在程序中调用malloc或者类似功能函数申请内存,却没有在程序中调用free或者类似功能函数释放引起的原因分析•应用代码从经验来看,这是内存泄漏问题经常出现的地方。

包括的形式:–忽略对申请的内存释放。

比如在代码开始时申请了一块空间,但是在程序结束时却忽略了去释放此块内存。

–指针使用不当。

在做指针赋值时,没有释放已有的内存空间,就将它指向另一个内存空间。

–数据库游标的使用不当。

在程序中,如果使用了数据库的游标,需要在程序返回时,将游标关闭。

–采用C++编程时,没有正确的调用析构函数原因分析•数据库在客户的项目中,出现过数据库提供的函数存在内存泄漏,如:–Oracle的OCI链接库–Sybase的Open Client的链接库•Tuxedo–C++编写服务端service时,tpreturn跳出析构函数的执行–tpalloc和tprealloc内存的释放不正确•操作系统–C的lib库存在内存泄漏问题解决方法•检查应用代码。

–检查内存的申请和释放是否匹配–检查指针在赋值时,是否释放已有内存空间–检查游标的打开和关闭是否匹配–检查析构函数是否被调用•采用隔离的方法分析代码–对于存在内存泄漏的代码可以采用将代码分段隔离的方法来查找•采用相应的工具软件分析代码–现在有很多的查找内存泄漏的工具。

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

TUXEDO性能调优的基本方法一. 通过配置MSSQ服务器组提高性能在ATMI环境中(TUXEDO-CORBA服务器环境不支持MSSQ机制)可以通过配置MSSQ(多服务器单队列)机制来达到队列级负载均衡的目的。

同一组MSSQ服务器在同一时间将共用一个请求队列,当消息出队时,将被送到第一个空闲的服务器去处理。

如果服务器A属于某个MSSQ的一部分,那么必须为它配置响应队列,即设置REPLYQ=Y,这样当A调用了B服务时,B对A的响应将被回送到发出原始请求的服务器A,而不是MSSQ服务器组中的其它服务器。

MSSQ机制可以配置成动态形式,这样TUXEDO系统会根据负载状况动态地产生和消除MSSQ中的服务器。

在下列情况下,可以考虑配置MSSQ:应该配置MSSQ 不应该配置MSSQ服务器数量在2到12个之间 如果有多个服务器,折衷的办法是使用多个MSSQ请求缓冲区不是很大,没有大到将一个队列占满的情况 一个请求缓冲区可能会占满整个服务器队列空间。

所有的服务器都提供一组相同的服务 每个服务都提供不同的服务需要配置多个服务器进程才能满足客户机对服务器的实时性的要求。

每个MSSQ的服务器数量一般不要超过10个,如果超过10个,建议配置多个MSSQ。

在下面两种情况下,使用MSSQ将达到调优的效果:A.银行业务中,多个TELLER执行相同的服务来为客户提供服务,下一个空闲的TELLER将为下一个等候的客户服务。

在这种情况下,每个TELLER必须能够执行所有的客户服务。

在同一个MSSQ中的服务器必须在任何时候都提供相同的服务。

MSSQ的优点在于,它在队列级提供了第二种形式有的负载均衡。

B.在超市收款业务中,不同的CASHIERS接收不同形式的客户支付(如信用卡,现金等),在这种情况下,不推荐使用MSSQ。

例如:simpserv SRVGRP=GROUP1 SRVID=10 MIN=3 MAX=5RQADDR=simpserv REPLYQ=Y这个配置将启动3个simpserv进程,SVRID依次为10,11,12。

它们共享同一个请求队列simpserv。

在MSSQ配置中,建议设置MIN=MAX=N,这样在TUXEDO系统启动时,将一次性启动N个服务器,这就使得TUXEDO不必对MSSQ服务器的数量作动态管理。

N的设置要根据数据库服务器目前的压力情况来决定,而不是越大越好。

为了测试simpserv对请求的受理情况,在TOUPPER服务代码中加入一条延时语句sleep(1),启动25个并发用户,分别执行12个TOUPPER服务请求,使用tmadmin/psr命令打印MSSQ服务器组,得如下结果:> psr -q simpservProg Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ----------- ----------- --- ---------- ----------- --------------- simpserv.exe simpserv GROUP1 10 101 5050 ( IDLE ) simpserv.exe simpserv GROUP1 11 99 4950 ( IDLE ) simpserv.exe simpserv GROUP1 12 100 5000 ( IDLE ) 由此可以看出,200个请求被平均分配给MSSQ中的三个服务器。

根据测试结果可以看出,服务器受理300个请求的最长时间近似于101秒,如果不配置MSSQ 模式,服务器受理300个请求的最长时间近似于300秒。

MSSQ服务器组的请求/响应过程二. 通过配置负载均衡提高性能要缓解由于系统繁忙而造成的应用服务器性能下降,可以考虑在应用程序中使用负载均衡技术,在这种情况下,每个服务都有一个负载因子,每个服务器都一个总体负载。

服务请求总是被送到负载最小的服务器去接受处理。

可以按照如下步骤来实现系统范围内的负载均衡:1.在某个时间段内对TUXEDO应用程序进行观察,记录下每一个服务的平均执行时间Ti,并求出所有服务的平均执行时间,记为T。

2.在配置文件的*RESOURCES段,设置LDBAL=Y。

3.在*SERVICES段,对每一个服务的LOAD因子进行配置,如果Ti≈T,则设置LOAD=50;如果Ti>T,则设置LOAD=N(N>50);如果Ti<T,则配置LOAD=N (N<50)。

说明:这个方法尽管很奏效,但代价太高,只有在必要时才使用,也就是说,只有在多个服务器(非MSSQ服务器组)同时提供了某一服务的情况下才使用,如果这个服务仅由一个服务器提供,或者说由多个MSSQ服务器提供,则没有必要使用负载均衡。

补充(常用来测量服务执行时间的两种方法):1.管理方法。

在配置文件中,加一个选项可以将服务的所有执行记录写到标准错误。

方法是在SERVICES段中指定:servopts –r,要分析这个日志文件,使用txrpt命令。

2.编程方法。

在调用服务的前后,分别加一个time()调用,耗时最长的服务一般来说具有最大的负载,耗时最短的服务一般来说具有最小的负载, 三. 通过配置优先级参数提高性能应用程序中,通过设置优先级的方法来控制数据流向,以使重要的请求优先被服务。

可以按如下两种方法设置优先级:1.管理方法。

在配置文件的SERVICES段中,为每一个服务指定PRIO因子。

2.编程方法。

在客户机或服务器代码中,加入tpsprio()调用,动态设置优先级。

只有特定的用户才能设置服务的优先级。

使用优先级的例子:SERVER1提供了A,B,C三个接口,A,B的优先级为50,C的优先级为70,对C 接口的请求比对A和B接口请求的要先出队,对A和B接口的请求接FIFO的原则出队,为了避免某些请求出不了队,系统每隔10个请求按FIFO正常出队一次。

PRIO参数决定了接口或服务在服务器队列中的优先级,因此必须谨慎使用。

一旦设置的优先级,就会有一些请求在队列里停留更长的时间。

当你最终决定了要使用PRIO参数,请遵守如下原则:1.由于高优先级的接口请求先出队,因此只能给一些不经常被调用的接口或服务设置高优先级。

2.在你把一个服务或接口的优先级调低之前,你应确保这个服务或接口的响应时间并不重要才行。

四. 通过绑定多服务提高性能通常情况下可以不对服务进行绑定(即一个SERVICE对应一个SERVER),从管理维护的角度来看,这是最简单的方式,但随着应用规模的扩大和服务器数据的增多,对系统的IPC资源(消息队列和信号量)的需求量也随之增加,这可能导致TUXEDO系统无法启动,因此需要在绑定和不绑定之间找到一个平衡点。

作服务绑定时,应该遵守如下原则:1. 把业务功能相似的SERVICES绑定到一个SERVER中。

如果多个服务执行的功能非常类似,你可以把它们绑定到同一个服务器中,这样在某一时刻,应用程序要么提供这组服务,要么不提供,便以管理。

在BANKAPP中,WITHDRAWAL,DEPOSIT,INQUIRY服务是可以绑定到一个叫做“银行柜台机操作”的服务器中。

2. 把调用了相同链接库或其它资源的SERVICES绑定到一个SERVER中。

如果你把调用了相同链接库的服务绑定在一起,它们将占用较小的磁盘空间。

例如,三个服务都调用了一个100K的库,如果把它们绑定到一个服务器中,将节省200K的磁盘空间。

3. 执行时间相近的SERVICE可放到同一个SERVER中。

4. 同一个SERVER中的SERVICE最好有相同的服务优先级,如果不同,优先级最低的那个的请求可能要很长时间才得到处理。

5. 不要相互调用的SERVICES放在同一个SERVER中,这有可能导致服务器死锁。

6. 一个SERVER中不要绑定太多的SERVICE。

7. 对一些使用率较高的服务,如银行的取款服务WITHDRAWAL,应该单独把它放到一个SERVER中,并采用MSSQ方式。

作服务绑定时,要考虑队列的容量。

由于服务器的队列大小是有限的,所以我们要根据队列的处理能力来绑定服务。

把服务加到一个未满的MSSQ中时,可执行程序的大小也会相应地增大,但系统中的队列数量将保持不变,当队列满时,系统的响应性能就会下降,这时你就必须把它拆分成多个服务器来补偿。

五. 通过关闭附加特性来提高系统总体性能(说明:以下性能调优方式仅适用于TUXEDO8.0及以后版本)A.服务和接口缓冲TUXEDO8.0及以后的版本都支持服务和接口的缓冲,这样客户机可以直接请求高速缓存中的服务或接口的副本,而不必到公告板中去查找。

这一特征会显著地改善服务器的性能,尤其是当系统有大量的用户,而只有少量的服务的情况。

SICACHEENTRIESMAX被加到配置文件的NES和SERVERS段中,来定义最大服务缓冲入口数量。

由于缓冲机制不是对每一个客户机和应用程序都有用,TMSICACHEENTRIESMAX环境变量用于控制缓冲区的大小。

服务缓冲特性在如下情况下将受到限制:1.如果一个服务有路由标准,则不能被缓冲;2.如果服务上有类型缓冲区类型的限制,则不能被缓冲;3.如果服务所在的组是预定的(如TMS服务),则不能被缓冲;4.如果服务入口的数量为0,则不能被缓冲;B.去除验证和审计安全特性TUXEDO7.1中引入了AAA(Authentication, Authorization, Auditing)安全特征,如果应用程序不使用TUXEDO的AAA安全特性,可以将它关掉来削减这些不必要的额外的开销。

对于8.0及以后的版本,可以把NO_AA选项加到RESOURCES段的OPTIONS参数中来阻止系统调用相关的安全函数,这样以下安全参数将受到影响:A. NONE,APP_PW,USER_AUTH参数将继续正常工作,但不做authorization或auditing工作。

B. ACL和MANDATORY_ACL参数将继续起作用,但只使用BEA的缺省安全机制。

C.关闭多线程处理TUXEDO7.1引入了一般的线程特性,由于TUXEDO体系结构的原因,ATMI函数必须调用互斥体函数来保持敏感的状态信息,除此以外,引擎层和缓冲机制也产生了大量的互斥体。

对于没有使用线程的应用程序,在不改变代码的情况下,关闭线程特性将使应用程序性能显著提高。

在TUXEDO8.0及以后的版本中,TMNOTHREADS环境变量被用于控制是否使用线程特性。

当TMNOTHREADS被设置为YES,将避免调用互斥函数。

D.关闭XA事务尽管不是所有的TUXEDO应用程序使用XA事务,但所有进程都调用了内部事务谓词来产生额外的事务开销,对于不使用XA事务的TUXEDO8.0应用程序,可以使用NO_XA标记不阻止事务开销。

相关文档
最新文档