当前位置:文档之家› 第六章:TUXEDO的服务端编程

第六章:TUXEDO的服务端编程

第六章:TUXEDO的服务端编程
第六章:TUXEDO的服务端编程

第六章:TUXEDO的服务端编程

服务端编程的任务

在三层结构中,把业务逻辑都放到中间层上,采用TUXEDO做中间件时,也就是放到TUXEDO的服务端上,在服务端把业务逻辑划分成一个个独立的服务(SERVICE),把多个服务按一定的规则绑定到一个SERVER中.客户端调用这些服务来实现相应的操作.所以服务端编程的主要任务就是编写一个个的服务(SERVICE)。

SERVER的生命周期

如图:SERVER端的生命周期如下:

1.在SERVER启动时,它将自动调用初始化函数:tpsvrinit(int argc, char *argv[])

如果该SERVER所在的GROUP配置了连接数据库的接口,那么在默认情况下,该SERVICE

将自动调用tpopen(),与数据库建立连接。

2.该SERVER将把它所包含的SERVICE在系统的BOLLITIN BOARD中进行登记。使客户端可以

调用这些SERVICE

3.该SERVER进入循环,从它所对应的消息队列中取CLIENT发送的请求,调用相应的SERVICE

进行处理,并调用tpreturn()把结果返回给CLIENT端或调用tpforward()传送给别的SERVICE处理。

4.当系统SHUTDOWN 或用tmshutdown –s 把该SERVER SHUTDOWN 时,将自动调用SERVICE:

tpdone()它将做一些清除工作,如断开与数据库的连接,从系统的BULLITON BOARD中清除与该SERVER对应的登记项。

SERVER端编程

SERVER端编程主要用C(或COBAL)语言编写一个个的SERVICE,如果需要进行数据库调用,则用数据库提供的嵌入SQL语言的编程接口,如ORACLE的PROC,INFORMIX的ESQL等编写。一个SERVICE其实就时一个C函数,但它的参数只能是一个TPSVCINFO结构体指针。该结构体在atmi.h中的定义:

struct tpsvcinfo {

#define XATMI_SERVICE_NAME_LENGTH 32

char name[XATMI_SERVICE_NAME_LENGTH];/* service name invoked */

long flags; /* describes service attributes */

char *data; /* pointer to data */

long len; /* request data length */

int cd; /* reserved for future use */

long appkey; /* application authentication client key */

CLIENTID cltid; /* client identifier for originating client */

};

typedef struct tpsvcinfo TPSVCINFO;

TPSVRCINFO说明:

char name[XATMI_SERVICE_NAME_LENGTH]; 该SERVICE的名字

long flags; CLIENT端在TPCALL,TPACALL等的FLAGS中设置的值

char *data; 指向CLIENT发送过来的缓冲区的首地址

long len; data缓冲区的的长度

int cd; 当采用CONVERSATION通讯方式时,对应的CD值

long appkey; 当采用安全认证时,该CLIENT所对应的KEY

CLIENTID cltid; 用于识别该CLIENT的ID

在SERVER端的程序中可以调用TUXEDO提供的ATMI编程接口。这些函数主要在atmi.h中定义。一个SERVICE的处理结果可以用tpreturn()返回给调用它的CLIENT端或用tpforward()转发给另一个SERVICE。

Tpreturn()函数:

Void tpreturn(int rval, int rcode, char *data,long len, long flags)

参数:

rval:定义该SERVICE的返回值,可以是:

TPSUCCESS: CLIENT端的tpgetrply() 或 tpcall()会返回一个非0值。如果是用会话方式进行通讯,则会产生TPEV_SVCSUCC事件。

TPFAIL: CLIENT端的tpgetrply() 或 tpcall()会返回-1。如果是用CONVERSATION进行通讯,则会产生TPEV_SVCFAIL事件。

TPEXIT:和TPFAIL一样,并且该SERVICE所在的SERVER进程会自动退出。

Rcode:可以给它赋值,CLIENT端可以用tpurcode()取到该值。

Data:返回给CLIENT端的缓冲区

Len: Data缓冲区的长度,只有该缓冲区类型为CARRAY时,才需要指定。

Flags:现在没用,设为0

TUXEDO中,服务可被客户端调用,也可被另一个服务调用,同时TUXEDO提供另一种调用方式--管道方式:服务进程在处理客户的请求时,不把结果返回给客户进程,而是把处理过的结果进一步转发给后续的其他服务进程,由其他服务进程接着处理,自己继续完成另外的服务请求,被转发的服务请求的结果由后续服务进程直接返回给客户进程,从而为编程和应用提供一种更加灵活的机制。如图所示,这种调用方式是通过Tpforward()函数来完成的。

Tpforward()函数

void tpforward(char *servic e, char *dat a, long len, long flags)

参数:

service:要调用的SERVICE的名字

data:传送给该SERVICE的输入缓冲区

len:data缓冲区的长度

flags:现在没用,设为0

Tpsvrinit()函数

Int tpsvrinit(int arg c, char **arg v)

描述:在SERVER启动时,它将自动调用函数:tpsvrinit(int argc, char *argv[])

如果该SERVER所在的GROUP配置了连接数据库的接口,那么在默认情况下,该SERVICE将自动调用TPOPEN(),建立与数据库的连接。

参数:int arg c, char **arg v 参数的含义与main()函数的参数含义一样。

返回值:执行成功返回0,失败返回-1

tpsvrdone()函数

void tpsvrdone()

描述:tpdone()做一些清除工作,如断开与数据库的连接,从系统的BULLITON BOARD中清除与该SERVER对应的登记项。

参数:无

返回值:无

SERVER端程序的编译:

用buildserver编译SERVER端程序,buildserver将调用C编译器对SERVER端程序进行编译。其格式如下:

buildserver [-o executable]...

[-v] \

[-s service2, service3:func] \

[-f source/object]...\

[-l object] ... \

[-r resource manager]

说明:

-v –输出详细的编译信息

-o executable – SERVER的名字

-l executable –在连接TUXEDO的库之后,还要连接的库文件

-s service –指定将要发布的SERVICE的名称

-f source/object –一个 .c 或 * .o 文件,它可以包含在该SERVER中的SERVICE调用到的函数

-r resource manager –RM的名称

例子:

buildserver -r ORACLE_XA -s DEMO -o TEST –f init.o –l mylib.so

SERVER端的编程例子

SERVER端的编程例子在本书的中很多,在此不再举例

SERVICE的划分原则:

?信息隐藏原则:定义服务以及从客户到服务的数据流尽可能独立于服务的实现。服务程序中不要嵌入客户机有关数据采集技术等信息。反之,客户机也不应该意识到服务器程序的实现细节,如数据库结构以及记录格式。

?分层服务原则:尽可能每个服务只完成一项任务,而不是多项任务。不要在一个服务函数中包含过多或过少的功能。努力定义一组简单服务来实现业务的基本功能,通过这组服务的组合,可以实现复杂的应用服务功能。

?业务对象原则:围绕业务对象设计并使用服务功能。以一组相关的对象或公共对象将服务组织成为服务进程(SERVER)。

合理处理SERVICE与SERVER的关系

如果从管理维护方面看,一个SERVICE对应一个SERVER是最简单的方式。但这会增加SERVER的数量,使TUXEDO系统对系统的IPC资源要求增大(使系统的性能降低),或超过(使TUXEDO系统无法启动成功)。所以需要把多个SERVICE放到一个SERVER中。以降低TUXEDO 对系统IPC资源的需求。下面是一些把SERVICE放在一起的原则:

1.有互相调用的SERVICE不要放到同一个SERVER中,以免引起死锁现象。

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

3.同一个SERVER中的SERVICE最好有相同的服务优先级,如果不同,最低的那个的请求

可能要很长时间才得到处理。

4.一个SERVER中不要有太多的SERVICE。

5.把多资源要求相近的SERVICE放到同一个SERVER中。

6.可根据业务规则把SERVICE放到同一个SERVER中。

7.对一些使用率较高的(如:银行的取款对应的SERVICE)应单独放在一个SERVER中,并采

用MSSQ方式。不要把它们与其他的SERVICE放在同一个SERVER中。

在一个SERVICE中调用另一个SERVICE

在TUXEDO中,一个SERVICE也可以当作一个客户端,调用其他的SERVICE,它的调用方式与普通的客户端调用TUXEDO服务器上的SERVICE是一样的。例如:在下面的程序中,SERVICE:SVC1中调用SERVICE: SVC2。

SVC1 (TPSVCINFO *rqst)

{

long rcvlen;

char *sendbuf;

long ret;

if((sendbuf = (char *) tpalloc("STRING", NULL, 1024)) == NULL)

{

userlog(“tpalloc() fail: %s\n”,tpstrerror(tperrno));

tpreturn(TPFAIL, 0,NULL, 0L, 0);

}

ret = tpcall("SVC2", (char *)sendbuf, 0, (char **)& sendbuf, &rcvlen, (long)0);

if(ret == -1)

{

userlog(“tpcall (SVC2) fail: %s\n”,tpstrerror(tperrno));

tpreturn(TPFAIL, 0, NULL 0L, 0);

}

tpreturn(TPSUCCESS, 0, sendbuf, 0L, 0);

}

通过wtc使tuxedo与weblogic通信开发

标题:通过wtc、jolt进行tuxedo与weblogic通信开发 [评论] 作者:李振嘉(dev2dev ID:lizhenjia) (一)摘要 bea tuxedo与weblogic作为业界优秀的交易与应用服务器中间件产品,在电信,银行,金融等领域广泛应用,通常由tuxedo处理系统的核心业务,weblogic将业务应用扩展到internet平台,实现电子商务,由weblogic调用tuxedo的服务或者由tuxedo的服务调用通过weblogic部署的ejb,所以tuxedo与weblogic 之间的互连通信会经常遇到,本文通过2个例子介绍tuxedo与weblogic通信的配置与开发,两个例子分别通过wtc(weblogic tuxedo connector)、jolt实现weblogic与tuxedo通信的配置与开发.本文所有例子程序与配置均在Sun Solaris,weblogic8.1,tuxedo8.0平台上进行,如在windows等其他平台开发配置方法大同小异;另外为了减少篇幅文中涉及的例子代码没有全部罗列,只选择粘贴了关键部分的代码. (二)通过wtc进行tuxedo与weblogic通信的配置与开发 1)域间通信以及wtc介绍 Tuxedo的域间通信进程介绍 Wtc是tuxedo通过域间通信实现的,所以需要tuxedo启动用于域间通信的进程,介绍wtc之前先介绍以下几个域间通信的进程. *DMADM(DOMAIN ADMINISTRATOR SERVER) 管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ. *GWADM(GATEWAY ADMINISTRATOR SERVER)

Tuxedo日常监控维护培训-v1-0

Tuxedo日常监控维护培训手册 (V1.0)

修订记录

目录 1.引言 (1) 1.1. 编写目的 (1) 1.2. 参考资料 (1) 2.tuxedo常用操作 (1) 2.1. tuxedo服务的正常启动和停止. (1) 2.2. 查看tuxedo的版本信息 (2) 2.3. tmadmin控制台进入和退出: (2) 2.4. 查看服务信息psr (3) 2.5. 查看交易信息psc (4) 2.6. 查看队列信息pq (5) 2.7. 查看客户端信息pclt (5) 2.8. 查看部分统计信息bbs (6) 2.9. 设置为观察某个节点的进程信息default (6) 2.10. 查看消息发送状态pnw (7) 2.11. dmadmin域控制台的进入和退出: (7) 2.12. 手动连接域 (8) 2.13. 查看域网关的连接情况 (8) 3.tuxedo日常维护 (8) 3.1. 对ubb文件只做语法检查(不真正的load成TUXCONFIG) (8) 3.2. 对dm文件只做语法检查(不真正的load成DMXCONFIG) (9) 3.3. 反编译tuxconfig 文件和dmxconfig文件 (9) 3.4. 如何清除IPC资源 (9) 3.5. sh命令直接执行tuxedo操作 (9) 3.6. 启动tlisten服务 (9) 3.7. 启动多机中备机的BBL (9) 4.tuxedo注意事项、常见问题及解决方法 (10) 4.1. WSL配置参数注意 (10) 4.2. UBB文件中MAX的配置注意 (10) 4.3. tuxedo WS 的配置注意 (10) 4.4. Can’t attach BBL (10) 4.5. 运行一段时间交易失败 (11) 4.6. 常见Tuxedo错误号 (11)

tuxedo基本操作atmi介绍

系统自带authsvr服务进程,和两个子例程,tpsvrinit(),tpsvrdone。 authsvr:客户端调用tpinit进行认证时,由交易TPAPPAUTH回应。 服务端自动调用tpsvrinit,可以在函数中进行数据库连接和处理命令行参数。 结束时tpsvrdone也被自动调用,可以在函数中断开数据库连接。 这两个例程分别在进程开始时和进程将要结束时,被自动调用。 服务端编程指导: 交易内一次只能接收一个请求,发送一个响应。 交易必须以tpretrurn, tpforward结束。 或交易内使用了tpacall,在返回或转发前,要么等待回应,要么使用tpcancel。 tpreturn一旦被调用,控制权就转移到main函数,未进行显示收取的响应会被丢弃,此时客户端会收到错误。 客户端调用tpcall后,若服务端此时对应的tpreturn成功返回,客户端tpcall才能返回。 客户端调用tpacall后,若服务端此时对应的tpreturn成功返回,客户端tpgetrply才能返回。返回的数据,可由客户端从指针*data处取得。 tpforward调用时,程序逻辑应保证之前的处理都正确,响应被收到。被调用后,交易不再等待响应。main函数取得控制权。被请求的另一个交易负责响应原来的请求。不能将请求转发到自身。 tpreturn 的参数: rval: 表明交易是否成功执行。 rcode:是应用自定义的返回值。客户端可通过tpurcode获得tpreturn的rcode值,而不论交易是否成功。 data: 该缓冲区由客户端传递,服务端可以将回应数据写至此地址。也可以进行tprealloc.而不能tpfree. 服务端也可以自行tpalloc一个缓冲区,并返回给缓冲区,但需要自行若管理。如果发送的数据长度大于已分配的,tuxedo会自动扩大缓冲。 len: 用来指示响应缓冲的长。客户端可据此得知数据是否有变化。 如果客户端需要收到一个响应,而tpreturn自身处理时出错,这时tpcall或tpgetrply会失败,客户端应检查tperrno. 此时客户端的data缓冲区没有变化。若交易返回的消息不符客户端要求,则无法判断应用状态,此时原来的缓冲区保持不变。如果交易超时,响应数据不会被发送。 发布与取消交易名: 当一个服务进程被启动后,它会根据配置文件来向公告板上广告自己有交易名。这通常由buildserver命令执行时完成。 tpcall:

Tuxedo与Oracle连接

Tuxedo与Oracle连接 系统说明 TUXEDO版本:9.0 安装名目/opt/bea/tuxedo9.0 ORACLE版本:10.2.0.1 安装名目/u01/app/oracle 一、Tuxedo 9 for AIX的安装 1、创建一个用户为Tuxedo,用户组为bea 2、创建/opt/bea为tuxedo的安装名目, $mkdir /opt/bea $chown tuxedo.bea /opt/bea $chmod 770 /opt/bea #bootinfo -k 64 $ sh tuxedo9_aix53_64.bin -i console Preparing 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- English CHOOSE LOCALE BY NUMBER: 1 ====================================================================== ========= (created with InstallAnywhere by Zero G) ------------------------------------------------------------------------------- ====================================================================== ========= Introduction ------------ BEA End User Clickwrap 001205 Copyright (c) BEA Systems, Inc.

TUXEDO简介及命令介绍

Tuxedo是一个客户机/服务器的―中间件‖产品,它在客户机和服务器之间进行调节,以保证正确地处理事务。Tuxedo是一个事务处理(TP)监督器,它管理联机事务处理(OLTP)系统(参见―事务处理‖)操作的事务。客户通过结构化查询语言(SQL)调用,或其它类型的请求,产生对服务器的请求。这个事务处理监督器确信,正确地进行了修改,以保证数据的完整性。这在一个事务可以改变多个位置的数据库的分布式数据库环境是非常重要的。这个事务处理监督器使用双阶段提交,以保证所有的数据库都已经接收和认可了这些数据的正确性。否则,这个数据库返回它的事务前状态。 事务监督器从前都是与大的大型计算机系统联系在一起的,但是Tuxedo的设计是为了在不昂贵的基于UNIX的系统上运行。AT&T最初是作为它自己使用的联机事务处理开发Tuxedo的。虽然Tuxedo必须在U-NIX系统上运行,但是它可以与DOS、OS/2、Windows和UNIX客户一起工作。它还使用通用的通信协议,如传输控制协议/因特网协议(TCP/IP)和网络基本输入输出系统(NetBIOS),并且可以在这些环境提供分布式处理支持。例如,它可以根据请求的类型,服务请求从一个客户选择路由到一个特定的服务器。Tuxedo的基本特征是它的联机事务处理系统,但是,Tuxedo也工作于集成关系型的平面文件,以及层次数据库系统。 相关条目:Connectionless and Connection-Oriented Transactions无连接和面向连接事务;Transaction Processing 事务处理。 Tuxedo作为电子商务交易平台,它允许客户机和服务器参与一个涉及多个数据库协调更新的交易, 并能够确保数据的完整性。BEA Tuxedo一个特色功能是能够保证对电子商务应用系统的不间断访问。 它可以对系统组件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障。 一旦出现故障,BEA Tuxedo会从逻辑上把故障组件排除,然后进行必要的恢复性步骤。 BEA Tuxedo根据系统的负载指示,自动开启和关闭应用服务,可以均衡所有可用系统的负载, 以满足对应用系统的高强度使用需求。借助DDR(数据依赖路由), BEA Tuxedo可按照消息的上下文来选择消息路由。其交易队列功能, 可使分布式应用系统以异步―少连接‖方式协同工作。 BEA Tuxedo LLE安全机制可确保用户数据的保密性, 应用/交易管理接口(ATMI)为50多种硬件平台和操作系统提供了一致的应用编程接口。 BEA Tuxedo基于网络的图形界面管理可以简化对电子商务的管理, 为建立和部署电子商务应用系统提供了端到端的电子商务交易平台。

叱咤风云tuxedo企业级运维实战如何用好全局事务

第9章如何用好全局事务 9.1 什么是全局事务 全局事务是由资源管理器管理和协调的事务,可以跨越多个数据库和进程。事务管理器一般使用XA二阶段提交协议与“企业信息系统(EIS)”或数据库进行交互。 也就是当一个事务需要跨越多个数据库时,需要使用全局事务。例如,一个事务中可能更新几个不同的数据库。对数据库的操作发生在系统的各处,但必须全部被提交或回滚。此时,一个数据库对自己内部所做操作的提交不仅依赖本身操作是否成功,还要依赖与全局事务相关的其他数据库的操作是否成功,如果任一数据库的任一操作失败,则参与此事务的所有数据库所做的所有操作都必须回滚。 在一个涉及多个数据库的全局事务中,为保证全局事务的完整性,由交易中间件控制数据库做两阶段提交是必要的。但典型的两阶段提交,对数据库来说事务从开始到结束(提交或回滚)时间相对较长,在事务处理期间数据库使用的资源(如逻辑日志、各种锁),直到事务结束时才会释放。因此,使用典型的两阶段提交相对来说会占用更多的资源,如果网络条件不好,如低速网、网络颠簸频繁,情况会更为严重。 9.2 本地事务的优缺点 本地事务容易使用,但也有明显的缺点:它们不能用于多个事务性资源。例如,使用JDBC连接事务管理的代码不能用于全局的JTA事务中。另一个缺点是局部事务趋向于侵入式的编程模型。 9.3 Tuxedo对事务的控制与管理 当客户端连接到Tuxedo并创建一个全局事务时,TM(Transaction Manager,事务管理器)就会在公告板(BB)里面创建一个事务,由TMS向GTT(Global Transaction Table,全局事务表,里面包含当前事务的状态信息)中插入一个条目,然后分配一个GTRID(Global Transaction Identifier,全局事务标识符)来对该事务进行跟踪。 Tuxedo的事务管理由TMS完成,TMS把各种RM接入到Tuxedo中的分布式计算中来,并对RM中执行的事务进行跟踪和两阶段提交。 Tuxedo对事务的管理工作主要包括创建TMS、创建TLOG、运行时事务的监控和迁

TUXEDO中间件介绍及应用

TUXEDO中间件介绍及应用 一、前言 首先介绍一下什么是中间件?中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。 中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上,不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上的负担。 世界著名的咨询机构Standish Group在一份研究报告中归纳了中间件的十大优越性: ●缩短应用的开发周期 ●节约应用的开发成本 ●减少系统初期的建设成本●降低应用开发的失败率●保护已有的投资●简化应用集成 ●减少维护费用 ●提高应用的开发质量●保证技术进步的连续性●增强应用的生命力 Tuxedo是第一个严格意义上的中间件产品。Tuxedo是1984年在当时属于A T&T的贝尔实验室开发完成的,但Tuxedo在很长一段时期里只是实验室产品。直到BEA公司1995年收购Tuxedo后,使Tuxedo现已经发展成为交易中间件领域事实上的标准。 TUXEDO是在企业、Internet 这样的分布式运算环境中,开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。 二、TUXEDO的组件软件模型 TUXEDO采用三层结构的组件软件模型。 图1 BEA TUXEDO 的组件软件模型概要

Tuxedo学习

Tuxedo学习 WSL workstation litener WSH 处理请求的进程,但不server进程,相当于oracle影子进程 WSC 处理请求的进程 WS用户和正常用户的关关健差别在WS用户不装tuxedo Abstract: 关于中间件,有一个很有名的定义是:平台+通信。这一点在TUXEDO上面得到了很好的体现,因为它提供了运行和开发的平台,以及多种的通信方式。在这多种通信方式中,使用最频繁的是WS (workstation)方式。WS方式使用的是TCP连接,为了对WS方式有更多的了解,我们结合TCP连接的知识对这种方式进行了一个比较深入的分析。 名词说明: WSC: WorkStation Client WSL: WorkStation Listener WSH: WorkStation Handler Server: 小写表示服务器端的服务处理进程 TCP连接是一种C/S模式的,即server端公开自己的IP和端口号,client通过这两个参数与之建立连接,客户端使用的端口一般是OS临时分配的。 TCP server端一般有两种模式,一种是iterative(重复)的,一种concurrent(并发)的。前面一种是一个server 的进程(应用层)来处理client的请求,处理完了之后继续接受请求来处理,当server正在处理的过程中,新来的请求得不到处理,只有等待。后面一种是请求到来的时候,server 进程通常会新开一个进程来处理这个请求,自己继续监听公开端口的连接请求。 在TUXEO这种事务处理系统中,会经常有大量的请求,故第一种模式肯定是不行的,第二种模式虽然可以达到同时处理不同请求的目的,但是由于每次要开新的进程,系统的开销很大,也会影响性能。实际中,TUXEDO的Workstation方式采用了另一种方法来实现多请求的并发处理。下面我们进行详细的说明。 以下是ubb中关于WSL的配置参数: WSL SRVGRP=Group1 SRVID=200 CLOPT="-A -t -- -n //ip(服务器IP,在此隐去):4050 -m 2 -M 10 -x 10" 其中ip:4050就是TUXEDO服务器的WSL的监听地址,只有一个WSL进程。-m参数指定的是启动时WSH 的个数,-M为最大个数(用户数大于m*x时系统会自动启动更多的WSH),-x为每个WSH可以多道处理请求的最大数目,可以理解为WSH的请求缓冲区可以存放十个请求。这样我们上面的配置在启动后可以处理同时20个并发请求,最大可以处理100个。

第四章:TUXEDO应用系统的管理

第四章:TUXEDO应用系统的管理 4.1 TUXEDO提供的系统管理工具 当一个TUXEDO应用系统投入运行时,TUXEDO系统管理员要对它进行监控,管理,根据系统的运行情况做相应的参数调整。有时候还要动态修改配置,发布新的服务等等,TUXEDO提供了很丰富的管理工具和管理编程接口。可以很方便的完成这些管理任务。下面对管理工具和管理编程接口分别进行介绍。 TUXEDO提供以下管理工具 1.基于WEB的图形化管理工具:用普通的WEB 浏览器比如Netscape或Microsoft 的Explorer可以从Internet/Intranet 的任意一个节点来运行该图形界面管理工具。对 系统进行管理配置。 2. 基于字符界面的管理工具:TUXEDO提供TMADMIN,DMADMIN等命令行管理工具。 TUXEDO提供以下管理编程接口 1.MIB编程接口:TUXEDO 提供C 语言的管理API ,用户能够用此编写出适合自己特殊需 求的管理工具 2.通过SNMP与其他管理工具(HP OpenView 等)互联, TUXEDO 的关联产品 BEA MANAGER 通过网络管理协议 SNMP和TUXEDO 的管理信息库 MIB 可以把TUXEDO 对应用程序的管理集成到一般的网络、数据库系统管理工具中,比如 OpenView, NetView 等。 TUXEDO应用系统的管理任务 通过以上的管理工具,TUXEDO可以有效地管理消息流程和服务请求,启动和停止服务进程,根据变化的负荷复制服务进程,动态地广播、撤消服务进程中的服务。并且可以在客户不用退出执行的情况下,动态的增加新的服务器、服务器组、服务器以及服务。利用命令行或图形管理界面TUXEDO还可以动态的进行负载平衡,数据依赖路由、网络用户的管理、队列的管理、存取资源管理器以及系统的启动、重启和恢复。

tuxedo与oracle连接

Tuxedo 9.0 for AIX与Oracle 10 XA连接 系统说明 TUXEDO版本:9.0 安装目录/opt/bea/tuxedo9.0 ORACLE版本:10.2.0.1 安装目录/u01/app/oracle 一、Tuxedo 9 for AIX的安装 1、创建一个用户为Tuxedo,用户组为bea 2、创建/opt/bea为tuxedo的安装目录, $mkdir /opt/bea $chown tuxedo.bea /opt/bea $chmod 770 /opt/bea #bootinfo -k 64 $ sh tuxedo9_aix53_64.bin -i console Preparing 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- English CHOOSE LOCALE BY NUMBER: 1 ======================================================== ======================= (created with InstallAnywhere by Zero G) ------------------------------------------------------------------------------- ======================================================== ======================= Introduction ------------ BEA End User Clickwrap 001205 Copyright (c) BEA Systems, Inc. All Rights Reserved.

Tuxedo基本参数配置说明

Tuxedo基本参数配置说明 2008-12-08 17:23:49 标签:Tuxedo 一、Tuxedo基本命令 #1.设置环境变量TUXDIR,APPDIR,TUXCONFIG,LANG(跟OS相关),LD_LIBRARY_PATH(跟OS相关) #2.编译ubb文本生成二进制配置文件:tmloadcf ?Cy ubbconfig #3.所有机器上运行tlisten,具体见文档中NETWORK一节 #4.启动tmboot ?Cy #5.关闭tmshutdown ?Cy 参数: -A 在所有机器上启动/关闭管理的Server进程 -M 只在MASTER机器上启动/关闭管理的Server进程 -i srvid 启动/关闭某个server id指定的Server进程 -g grpname 启动/关闭某个server group名字指定的Server Group -S 启动/关闭所有应用服务器(LMID) -s server-name 启动/关闭某个server名字指定的Server进程 -l lmid option 在指定的机器上启动/关闭所有TMS进程和应用服务器(LMID) -T grpname 启动/关闭指定的server group中所有的TMS进程 -B lmid 在指定的机器上启动/关闭BBL进程 -e command 指定一个程序可以当在MASTER机器上启动任何一个进程失败时执行 -c 计算出当前UBB配置的Tuxedo启动最少要占用的系统IPC资源 #用tmunloadcf > generated.ubb 可以得出目前配置得UBB文件所有得参数值(没有设置的有缺省值) #用tmloadcf ?Cc或tmboot ?Cc可以计算出当前UBB配置的Tuxedo启动最少要占用的系统IPC资源。 二、UBB文件配置说明 UBB配置文件分成*RESOURCES,*GROUP,*SERVER,*SERVICE,*NETWORK等若干节。DEFAULT表示该节中所有对象共有的缺省属性。 *RESOURCES #RESOUCES节提供整个系统的基本参数。 IPCKEY 55555 (32767-262143) #进行IPC通讯的key值 DOMAINID unicom #DOMAIN的ID值 MASTER unicom1,unicom2 #指定DOMAIN中的管理主机为unicom1,运行过程中unicom1若出现问题,管理主机切换至unicom2 MAXACCESSERS 1000

TUXEDO使用说明

TUXEDO使用说明 一、键tuxedo用户. * User NAME tuxedo User ID [206] # ADMINISTRATIVE USER? true + Primary GROUP [informix] + Group SET [informix,staff] + ADMINISTRATIVE GROUPS [] + ROLES [] + Another user can SU TO USER? true + SU GROUPS [ALL] + HOME directory [/home/tuxedo] Initial PROGRAM [/usr/bin/ksh] 1.TUXEDO使用的环境变量 ●TUXDIR:TUXEDO的路径 ●PATH:在PA TH中添加TUXEDO的BIN路径 ●LIBPATH:TUXEDO的链接库所在路径 ●APPDIR:编译和运行TUXEDO的应用程序所在路径 ●TUXCONFIG:tuxconfig文件所在路径 2.生成tuxconfig文件:执行tmloadcf –y ubb(文件名),其中-y表示确认,不加则会提示是 否确认 3.生成tuxconfig文件时所用的文件格式说明 ●DOMAINID:TUXEDO名称,可任意指定 ●MASTER:可任意指定 ●MAXACCESSERS:最大连接数 ●MAXSERVERS :最大服务器数量 ●MAXSERVICES :最大服务数 ●MODEL :类型SHM(单机)LM(多机) ●LDBAL N ●MACHINES:机器描述 ?APPDIR :见环境变量说明 ?TUXCONFIG :见环境变量说明 ?TLOGDEVICE :若直接连接数据库,需要设此项,LOG文件 ?TUXDIR :见环境变量说明 ?MAXWSCLIENTS :最大客户连接数 ●机器名称LMID=simple (MASTER 名称) ●GROUPS ?描述组的信息,可描述1个以上 ?LMID:见机器名称 ?GRPNO:组号 ?TMS_NAME:数据库连接时,定义数据库连接信息的文件名 ?TMSCOUNT:数据库连接时使用,表时启动几个

hp-unix常用命令

HP-UX常用命令 1、 cd命令的使用 返回上一次的目录(cd -) 2、 Esc键的使用 在命令行中可通过击两次Esc键来匹配当前目录中唯一的文件名,这样可节约击入长文件名的时间3、 col命令的使用 man cp | col –b >;cp.txt 该命令可将cp命令的联机帮助手册输出为名为cp.txt的文本文件 4、启动机器时执行的工作脚本(/etc/rc.config.d/) 5、which命令的使用(查看某命令的绝对路径) which 命令名 6、显示当前系统补丁安装情况(show_patches) 7、中文环境的配置 a、查看系统中安装的语言集(locale –a) b、显示当前语言环境变量(echo $LANG) c、如不为中文则修改(export LANG=zh_CN.hp15CN) d、 sty –istrip 8、查看系统信息和运行情况 a、 glance b、 top c、 performance view d、 /opt/ignite/bin/print_manifest /var/opt/ignite/local/manifest/manifest e、 /var/adm/syslog/syslog(系统运行日志) f、 /var/adm/shutdownlog g、 /var/adm/crash/ h、 /var/opt/sna/sna.err i、 /var/adm/nettl.LOG000 /usr/sbin/netfmt /var/adm/nettl.LOG000 >;net.log j、/usr/contrib./bin/info_col.11 k、/var/adm/btmp(历史登录信息,可用last命令查看) l、/var/adm/wtmp(比btmp更详细的信息) m、/etc/rc.log(机器启动时的信息) n、/var/adm/sw/(有关软件包安装、删除的信息) 9、查看系统当前init级别(who –r)

第3章:TUXEDO系统的配置

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应用系统的服务端。 SERVICE: 在每个服务端程序中,主要是一个个的函数,在TUXEDO中称这些函数为SERVICE,一般也称之为服务。在该SERVICE中实现业务逻辑,在客户端中调用这些SERVICE来实现各种操作,如在前面的例子simpapp中,服务端程序为simpserv.c,它编译成可执行文件simperv, simpserv就是一个SERVER,该SERVER包括SERVICE:TOUPPER。 下面我们给出一个配置文件的例子: *RESOURCES IPCKEY 123456 MASTER simple

tuxedo命令和配置的详细解释及应用实例

tuxedo命令和配置的详细解释及应用实例 域的组成 BDMCONFIG:二进制配置文件 DMADM:域管理服务器,管理多个 GWADMGWADM:运行时网关管理服务器,从DMADM服务器上获取域信息GWTDOMAIN:是一个网关进程,在域之间转发消息 tmshutdown/tmboot -s 服务名按服务名停/启单个服务tmshutdown/tmboot -S (大写的S)停/启所有服务tmshutdown/tmboot -i 进程号按进程号停/启单个服务tmshutdown/tmboot -g 组名字按组停/启服务 tmshutdown/tmboot -y -w1 按用户停/启服务 tmloadcf -n 文件名只做语法检查不编译 tmloadcf -y 文件名编译二进制文件 tmloadcf -c 文件名测试IPC资源最小需求 tmadmin -v 版本 tmadmin>bbp 查BB的参数 bbs BB统计信息 pclt 连接客户端信息 psr server信息 psc service信息 pt 当前事物信息 pq 队列信息 echo psr|tmadmin|grep -v IDLE echo psr|tmadmin|sort +4 echo psc|tmadmin|sort +6 echo pq|tmadmin|sort +4 echo pclt|tmadmin|grep -v WSH|grep -v tmadmin

以下是tmadmin命令的printserver(简写为psr)的简单输出。 列号描述 1. 服务的可执行文件名 2. 服务连接的队列名 3. 组名 4. 服务的数字id 5. 服务已经处理的请求数 6. 服务处理的全部请求的参数和 7. 服务正在处理的交易,若为IDLE则服务当前是空闲 ccsmis:/home2/ccsmis>tmadmin tmadmin - Copyright (c) 1996 BEA Systems, Inc. Portions * Copyright 1986-1997 RSA Data Security, Inc. All Rights Reserved. Distributed under license by BEA Systems, Inc. Tuxedo is a registered trademark. > printserver Prog Name Queue Name Grp Name ID RqDone Load Done Current Service --------- ---------- -------- -- ------ --------- --------------- rz_Ecsb 00004.04000 APGP2 4000 0 0 ( IDLE ) BBL 70020 simple 0 1 50 ( IDLE ) IFMTMS APGP2_TMS APGP2 30001 1 50 ( IDLE ) 交易信息 来自GAI的信息本处略去。 以下是tmadmin命令的printservice(简写为psc)的简单输出。 列号描述 1. 交易名 2. 交易函数名

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的配置文件。如果不指定,则使用环境变量TUXCONFIG 4 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等服务。通常和-g选项联合使用 -o sequence 启动SERVERS段中SEQUENCE参数为sequence的服务 -S 启动SERVERS段中的所有Server -A 启动管理Server,例如DBBL、BBL、BRIDGE等 -b 从BACKUP主机上启动服务 -B lmid 启动逻辑主机lmid上的BBL服务

tuxedo培训教程

BEA TUXEDO 简易培训教程 编写、整理:文栈良 2003-1-21

第一章认识tuxedo 1.1 TUXEDO是什么? BEA TUXEDO是在企业、Internet 这样的分布式运算环境中开发和管理三层结构的客户/服务器型关键任务应用系统的强有力工具。它具备分布式事务处理和应用通信功能,并提供完善的各种服务来建立、运行和管理关键任务应用系统。开发人员能够用它建立跨多个硬件平台、数据库和操作系统的可互操作的应用系统。BEA TUXEDO是企业、Internet 分布式应用中的基础主干平台。它提供了一个开放的环境,支持各种各样的客户、数据库、网络、遗留系统和通讯方式。 BEA TUXEDO使分布式关键任务应用系统具有大型主机的性能,从而使这些应用系统能够应付数以千计的用户,大交易吞吐量,多并行数据库存取和大量数据,同时保持较短的反应时间,较高数据完整性和安全性,并且确保全年365天,每周7天,每天24小时的系统可用性。同时,BEA TUXEDO还能让开发人员和系统管理人员享用分布式运算环境提供的好处,如技术成本的低增长率,灵活性提高,快速应用开发和安装以及业务信息存取得以改善。

1.2 BEA TUXEDO的组件软件模型 关键业务应用通常是面向事务的,要求具有准确的数据完整性、较好的性能和管理需求。这些需求要求对应用的开发、调度和操作给出一个结构化的方案。由像BEATUXEDO这样的中间件支持的组件软件模型为分布式环境处理关键性业务应用提供了一个结构化的解决方案。BEA TUXEDO和基于组件的应用设计从异构的计算资源中创建了一个虚拟主机:在分布式应用系统级提供可管理的相互关联的资源。 许多组织在进行了一段时间的分布式应用工作后,现在已经认识到组件软件模型是他们的必然选择。分布式应用的直接动力是主机应用和集中式中规模的应用系统基础上又逐渐配备有大量的台式系统和服务器系统,这些分布式系统在标准网络传送协议的支持下,呈松散耦合的态势,事实上它们构成了网络计算资源的基础。在开始的时候,分布式系统主要服务于把集中式系统的前台应用迁移到网络环境----主要用台式处理器和文件服务器实现文档处理和电子邮件通讯应用系统。接着,两层的客户/服务器数据库应用在部门级被采用,这类应用把交互式文件共享进化到并发数据元素访问,在数据级支持更细粒度的管理。虽然这些客户/服务器应用具体化了真正分布式应用处理的概念,它们仍留有为某一目标定制的特性,规模和管理能力都有限。更重要的,这些应用只停留在较细粒度的数据访问上,使得整个应用系统宛如磐石,不能有效地利用网络资源。

tuxedo常用命令

1.日志检查清理。检查Tuxedo日志,用vi命令查看日志文件内容,检查有无Tuxedo系统出错记录;检查有无服务异常错误记录;检查有无服务被重起记录;对发现的异常记录进行分析;若无异常情况清除无用的历史日志。 2. 服务器运行情况。检查Tuxedo系统和应用的服务器的运行情况,用“ps -elf|grepserver名”查看进程相关信息,如运行时间、占用内存大小等;用tmadmin命令检查看服务器运行情况,执行psr监控服务器运行情况,查看处理的请求数目、忙闲程度。 3. service运行情况。检查service运行情况,用tmadmin命令中的psc命令查看Tuxedo各service的运行情况和处理的交易数。 4. 队列使用情况。检查Tuxedo队列的使用情况,用tmadmin命令中的pq命令查看Tuxedo各server队列的使用情况,主要查看交易高峰期队列中消息的增加情况,确定是否存在阻塞现象,是否需要对服务数进行调整。 5. 客户机连接情况。检查TuxedoClient的连接情况,用tmadmin命令中的pclt命令查看Tuxedo各客户机的连接情况,检查MAXCLIENT参数是否足够,Licence数是否满足并发要求。 6 .配置参数配置。检查Tuxedoubbconfig文件和dmconfig文件,根据以上各项检查结果,查看Tuxedo配置文件是否需要调整优化,以使中间件平台良好运行,保存配置文件并归档备案。 7. 系统核心参数配置。检查操作系统核心参数配置是否满足目前应用系统规模要求,是否需要调整,根据具体使用的操作系统提供的命令查看核心参数。 8. tmunloadcf 可以导出ubb 文件, tmloadcf 加载ubb 文件 9. tmboot 启动, tmshutdown 关闭, 当然还有很多参数比如-y -i -s 等

tuxedo常见问题

TUXEDO精华贴总结 总结人:彭建新 (DEV2DEV ID:SYLPJX) 序言 原以为很容易就可以把这些帖子总结一下,没有想到,主题虽然不多,精华区的回帖却是不少,要仔细的看完这些帖子,区分开来原来竟然也不是一件容易的事,还好断断续续的坚持了下来,精华贴中的大部分信息变成了下面的形式。 由于里面的信息是我认为比较有用的,又没有和别人商量,难免有失偏颇,大家在看这个总结的时候,只选择其中有用的去看就可以。 为了保证回复的帖子的原貌,我基本没有改动大家回帖时的言语,这样做,我是想,保留大家为论坛所作的贡献,而使大家更清晰的认识到我只是一个总结者,而不是在盗用大家的东西。 做了这个总结,主要的目的使大家不再问许多重复的问题,这样就可以节省回复者的体力,更加使论坛中没有解决的问题凸现出来。 在总结的时候,分类是一个麻烦的问题,有的帖子,可能可以放到好几个类别里,而我只是把他归入了其中的一个类别中,甚至把类别归错,请大家批评。 总结时,在程序示例类别中,有3个程序,我在TUXEDO65和WEINDOWS2000 SERVER下调试通过,并把源程序附上。这3个程序是wsywin 版主在论坛上提供的,其中FML和VIEW由于论坛的原因程序甚至没能全部贴出,其中的UBB文件也没有贴出,这次在wsywin版主的大力帮助下,把源程序及配置文件一并提供。衷心对wsywin版主表示感谢。 希望这个总结对大家有所帮助,同时祝大家工作顺利!

目录 1 环境变量设置 (7) 1.1 怎么样在程序中设置环境变量,用哪个函数? (7) 1.2 如何在程序中动态变换WSNADDR? (7) 1.3 在AIX下,Client需要对应多个Server,WSNADDR如何配置?tuxputenv如 何使用?在程序调用时怎样切换? (8) 1.4 bea的文档里就有一个客户端连接不通服务端的例子(html帮助文档)。 (9) 1.5 系统环境变量的设置 (9) 1.6 TMS起来后,但运行客户端取不到数据,是什么原因? (9) 1.7 在Redhat8.0 下怎么安装Tuxedo8.1? (10) 1.8 环境变量设置需要在几个地方? (10) 1.9 UNIX库文件环境变量如何设置? (10) 1.10 Delphi开发客户端的环境变量设置? (10) 2 UBB配置 (10) 2.1 机器名怎么找? (10) 2.2 TUXEDO版本6.5和8.0可以混用吗? (11) 2.3 TUXEDO与ORACLE不采用XA方式连接,怎么在UBB文件中写? (11) 2.4 Tmloadcf can not run on a Non-Master Node? (12) 2.5 MSSQ配置问题? (12) 2.6 Tuxedo MP方式的切换说明 (13) 2.7 如何在不同的机器上实现simpapp?以及探讨一下c/s and B/s的各自有缺点。 14

相关主题
文本预览
相关文档 最新文档