通过wtc使tuxedo与weblogic通信开发

通过wtc使tuxedo与weblogic通信开发
通过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)

管理域的域网关进程,在运行时可以对某一组域网关进行管理,主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理.

*GWTDOMIN(GATEWAY PROCESS)

处理域之前的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN 必须在一个组中,一个tuxedo应用可以有多个GWADM,GWTDOMAIN对,一个组只能有一个

GMADM,GWTDOMAIN对,但一个tuxedo应用只能有一个DMADM,DMADM可以在如何一个组中,一个本地域可以和多个远程域实现互操作.

Wtc介绍

Wtc(weblogic tuxedo connector)是weblogic server的一个组成部分,可以实现tuxedo和weblogic之间的应用集成,为weblogic和tuxedo提供了双向的互操作性,即tuxedo service可以调用在weblogic上部署的ejb,在weblogic上部署的ejb可以调用tuxedo的service.

2)Tuxedo方面需要进行的工作

修改并编译ubb文件

1)在ubb文件*GROUPS节点中增加如下3个tuxedo Group:

DMGroup

LMID=simple GRPNO=2 OPENINFO=NONE

DMGroup

LMID=simple GRPNO=3 OPENINFO=NONE

WSGroup

LMID=simple GRPNO=4 OPENINFO=NONE

2)在ubb文件*SERVERS节点中增加如下3个tuxedo server:

DMADM

SRVGRP=DMGroup SRVID=22230

GWADM

SRVGRP=GWGroup SRVID=22340

GWTDOMAIN

SRVGRP=GWGroup SRVID=22350

其中GWADM和GWTDOMAIN应该在同一个组中,保存ubb文件并按如下完成编译:

tmloadcf ubb_filename

之后tmboot-y启动tuxedo server,如果启动以上3个server时报类似Application initialization failure的启动失败的提示信息,那么注意查看tuxedo的ULOG日志文件,通过日志的提示排除错误,这里常见的一个错误是没有在系统环境变量中定义

BDMCONFIG或者指定该文件路径错误.(关于环境变量的修改见下文).

增加并编译dm文件

dm文件是tuxedo进行域间通信时的配置文件,tuxedo与weblogic通过wtc通信是通过域间通信实现的,所以dm文件需要创建,dm文件通常可以存放在ubb文件所在的路径下.

Dm需要做的配置如下:

*DM_LOCAL_DOMAINS

tuxedo_domain GWGRP=GWGroup

TYPE=TDOMAIN

DOMAINID=billing

DMTLOGDEV="/../../log/DLOG"

*DM_REMOTE_DOMAINS

weblogic_domain TYPE=TDOMAIN

DOMAINID=weblogic

*DM_TDOMAIN

tuxedo_domain NWADDR="//tuxedoserver_domain_ip:port

NWDEVICE="../../bin"

weblogic_domain NWADDR="//weblogicserver_domain_ip:port

*DM_REMOTE_SERVICES

*DM_LOCAL_SERVICES

fml32_test RNAME="fml32_test"

*DM_LOCAL_DOMAINS定义本地tuxedo域的信息,分别定义该域所在的组,域类型,域的唯一标识,域间通信时日志的全路径,其中GWGRP, DOMAINID的值要与ubb文件中的定义匹配.

*DM_REMOTE_DOMAINS定义远程weblogic域的信息,分别定义域类型,域的唯一性标识,该id标识需要与在weblogic server中的配置名称吻合,否则通信将会失败,关于在weblogic中的相应配置下文将作详细描述. *DM_TDOMAIN定义在DM_LOCAL_DOMAIN中已经说明的本地域和在DM_REMOTE_DOMAINS中已经说明的远程域的具体的通信ip地址以及通信端口,其中NWDEVICE指定tuxedo发布的server通信进程文件所在的路径. *DM_REMOTE_SERVICES定义当前域需要调用远程域的服务名称,本例中的服务作为被调用服务,所以此处可以为空.

*DM_LOCAL_SERVICES定义当前域对外发布的tuxedo service名称,可以通过RNAME重新命名service.

在以上NWADDR中指定的端口一定不能是已经被占用的端口,否则通信将失败,之前应该用netstat命令查询得到空闲的端口.

保存dm文件并按如下完成编译:

dmloadcf dm_filename

修改系统环境变量

在系统环境变量中增加:

export BDMCONFIG=$HOME/your_path/bdmconfig

其中bdmconfig文件为dmloadcf dm_filename编译之后生成的2进制配置文件.

编写基于tuxedo的程序以及makefile.

说明

Tuxedo支持string,carry,view,view32,fml,fml32等数据缓冲区,其中fml32类型相对复杂且比较常用,本例子采用fml32数据缓冲区开发,首先需要编写fml32数据缓冲区的定义文件,包括fml32数据缓冲区各个字段的名称已经长度等等,并将该文件生成相应的c语言.h头文件,在应用程序中需要包含该头文件,这样应用程序中即可以使用fml32数据缓冲区, fml32类型通常在开发数据库应用程序的时候比较常用,以下的例子完成的功能是:根据输入的学生学号从数据库中查询得到该学生的姓名和年龄,其实输入和输出参数采用fml32类型.

编写并编译fml32数据缓冲区定义文件

定义fml32数据缓冲区文件student_fld文件如下:

*base 10000

# name number type flags comments

student_id 1 long - 学生学号

student_name 2 string - 学生姓名

student_age 3 long - 学生年龄

student_id等3项就是自定义fml32类型的域字段,其中每一个字段都对应一个number,这些number有一个公共的起始值,通过*base 10000定义.

定义之后通过mkfldhdr32 student_fld编译该文件,之后生成student_fld.h头文件,在应用程序中将引用该文件.

编写源程序以及定义表

定义t_student表,其中id表示学号,name表示学生姓名,age定义表示姓名.

进入oracle sqlplus,键入:

create table t_student (id number(10), name varchar2(20), age number(3));

源程序文件wtc_jolt.pc(该程序通过pro*c文件访问数据库oracle数据库):

#include

#include

#include

#include

#include "student_fld.h"

EXEC ORACLE OPTION (RELEASE_CURSOR = YES);

#if defined(__STDC__) || defined(__cplusplus)

tpsvrinit(int argc, char *argv[])

#else

tpsvrinit(argc, argv)

int argc;

char **argv;

#endif

{

EXEC SQL BEGIN DECLARE SECTION;

char sConnStr [100];

EXEC SQL END DECLARE SECTION;

argc = argc;

argv = argv;

memset(sConnStr, 0x00, sizeof(sConnStr));

strcpy(sConnStr, “数据库连接串”);

EXEC SQL Connect :sConnStr;

if (sqlca.sqlcode)

{

userlog("连接数据库失败,错误号码:%d,详细原因:%s ", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);

return -1;

}

}

#ifdef __cplusplus

extern "C"

#endif

void

#if defined(__STDC__) || defined(__cplusplus) fml32_test(TPSVCINFO *rqst)

#else

fml32_test(rqst)

TPSVCINFO *rqst;

#endif

{

FBFR32 *recebuf = NULL;

FBFR32 *sendbuf = NULL;

FLDLEN32 recebuflen = 0;

EXEC SQL BEGIN DECLARE SECTION;

long lStudentId = 0;

char sName[15] = "";

long lAge = 0;

EXEC SQL END DECLARE SECTION;

recebuf = (FBFR32 *)rqst->data;

if ((sendbuf = (FBFR32 *)tpalloc("FML32", NULL, 1024)) == NULL)

{

tpterm();

exit(-1);

}

recebuflen=0;

Fget32(recebuf, student_id, 0, (char *)&lStudentId, &recebuflen);

EXEC SQL Select age, name Into :lAge, :sName

From t_student

Where student_id = :lStudentId;

if (sqlca.sqlcode)

{

userlog("查询失败,code=%d,detail=%s ", sqlca.sqlcode, sqlca.sqlerrm.sqlerrmc);

exit(-2);

}

Fchg32(sendbuf, student_age, 0, (char *)&lAge, 0);

Fchg32(sendbuf, student_name, 0, sName, 0);

tpreturn(TPSUCCESS , 0, (char *)sendbuf, 0, 0);

}

编写makefile文件

.SUFFIXES:.pc .c

CC=cc

TUXINCLUDE=$(TUXDIR)/include

ORAINCLUDE=$(ORACLE_HOME)/precomp/public WORKPATH=$(HOME)/../../...

APPPATH=$(HOME)/bin

TARGET=wtc_jolt

all: $(TARGET)

-@echo "build successfully!"

wtc_jolt:wtc_jolt.c

buildserver -f wtc_jolt.o -o wtc_jolt -s "fml32_test" -r Oracle_XA -v

.pc.c:

proc iname=$<$(PROCPLSFLAGS) oname=$*.c parse=full hold_cursor=no release_cursor=yes

include=$(TUXINCLUDE) include=$(ORAINCLUDE)

$(CC) -I$(ORAINCLUDE) -I$(TUXINCLUDE) -c $(ORACFLAGS) $*.c

将例子文件发布成tuxedo server和service.

通过makefile将wtc_jolt.pc编译成可执行文件wtc_jolt之后.

(一)修改tuxedo ubb配置文件.

1)在 *server节点中添加:

wtc_jolt SRVGRP=GROUP SRVID=1100

其中GROUP是tuxedo应用所在的组, SRVID是该server的标识id,注意不要与其他SRVID重复,wtc_jolt 是刚刚编译生成的可执行文件名字,这样该文件就被发布为tuxedo server.

2)在*service节点中添加:

fml32_test

其中fml32_test是wtc_jolt.pc文件中的函数名字,这样该函数就被发布为属于server:wtc_jolt中的一个tuxedo service.

3)编译修改之后的ubb文件:

tmloadcf ubb_filename

(二)修改tuxedo dm配置文件.

1)在*DM_LOCAL_SERVICES节点中添加:

fml32_test RNAME="fml32_test"

发布fml32_test service,使该service可以被其他域中的服务调用.

2)编译修改之后的dm文件:

dmloadcf dm_filename

以上配置和开发工作完成之后tuxedo方面的工作完成,tmboot ?y启动tuxedo,如有以下提示信息,tuxedo 方面的工作宣告成功.

1) exec DMADM -A :

process id=28863 ... Started.

exec GWADM -A :

process id=28864 ... Started.

exec GWTDOMAIN -A :

process id=28865 ... Started.

以上信息说明域间通信进程启动成功!

2) exec wtc_jolt -A :

process id=28950 ... Started.

以上信息说明发布的server进程启动成功!

此时键入命令tmadmin, 键入子命令psc, 如有以下提示信,说明发布service成功.

Service Name Routine Name Prog Name Grp Name ID Machine # Done Status

---------------------------------------------------------------------

fml32_test fml32_test wtc_jolt GROUP 1100 simple 0 AVAIL

进行到这里tuxedo方面所有的工作已经完成,下面进入weblogic方面的工作.

3)Weblogic方面需要进行的工作.

创建tuxedo fml(32) 数据缓冲区定义文件对应的java类文件

本文例子用到tuxedo fml32数据缓冲区,所以首先要创建该fml32数据缓冲区定义文件对应的java描述文件的类文件,将前面定义的文件student_fld.

1)执行weblogic环境变量setWLSEnv.sh,使weblogic环境变量生效.

2)运行: java weblogic.wtc.jatmi.mkfldclass32 student_fld生成student_fld.java描述文件.

3)运行: javac ?d student_fld.java生成student_fld.class文件.

4)该类文件的存放路径一定可以被weblogic识别,即保存在weblogic启动后CLASSPATH的路径中,否则在后面配置wtc resource时会失败.

配置weblogic wtc service

进入weblgoic console,mydomain->services->wtc->Co nfigure a new WTC service…

Name属性键入: WTC_Service,create保存设置,此时WTC_Service将生成local tuxedo access等若干子项,在下面将一步一步配置这些项目.

配置local tuxedo access

mydomain->services->wtc-> WTC_Service-> Configure a new local tuxedo access point…

依次填写Access Point: Local_Wls_Domain

Access Point ID: weblogic

Network Address: //weblogicserver_ip:port

注意:

1)Access Point ID的值应该与在tuxedo dm文件中*DM_REMOTE_DOMAINS节中指定的domainid 相同.

2)Network Address中指定的通信端口一定是weblogic server上未被占用的端口.

以上信息填写完成后点击create保存.

配置remote tuxedo domain

mydomain->services->wtc-> WTC_Service-> Configure a new remote tuxedo access point…

依次填写Access Point: Remote_Tuxedo_Domain

Access Point ID: billing

Local Access Point: Local_Wls_Domain

Network Address: //tuxedoserver_ip:port

注意:

1)Access Point ID的值是远程tuxedo domain 的domain_id.

2)Local Access Point的值是上面配置的local tuxedo access point的名字.

以上信息填写完成后点击create保存.

导入tuxedo services

mydomain->services->wtc-> WTC_Service->Imported services->

Configure a new imported service…

Resource Name: fml32_test

Local Access Point: Local_Wls_Domain

Remote Access Point List: Remote_Tuxedo_Domain

Remote Name: fml32_test

注意:

1)Local Access Point是上面配置的local tuxedo access point的名字.

2)Remote Access Point List是上面配置的remote tuxedo access point的名字.

3)Remote Name是可供weblogic调用的远程tuxedo发布的service名字,即在

Tuxedo dm文件的*DM_LOCAL_SERVICES节点中发布的service名字.

配置wtc resource

mydomain->services->wtc-> WTC_Service->resources->

Configure a new Resource….

FldTbl32 classes: student_fld

注意:

1)resource定义fml(32),view(32)等数据缓冲区的类文件定义,其中student_fld就是上面编译得到的类,如果源文件包含在包中那么要标明包名称在内的全路径,如:

com.bea.wtc.test.classname

2)其中fml和fml32类型的java类在这里要分别指定,不能通用,view(32)也是一样.

以上信息填写完成后点击create保存,至此wtc service全部配置完成,单击wtc_service的Target and deploy标签,选择server,apply以上应用.

编写通过wls访问tuxedo service的程序

为了减少篇幅例子代码没有全部罗列,只选择粘贴了代码中的关键部分.

编写访问tuxedo service的ejb

关键函数介绍

创建本地接口文件,远程接口文件以及bean文件,公布以下远程方法:

1)public CallDescriptor Tpacall(String service, TypedFML32 in_params)

throws TPException, TPReplyException, RemoteException;

2)public TypedFML32 Tpgetrply(CallDescriptor cd)

throws TPException, TPReplyException, RemoteException;

3)public TypedFML32 Tpcall(String service_name, TypedFML32 in_params)

throws TPException, TPReplyException, RemoteException;

Tpcall : 同步调用tuxedo service.

Tpacall : 异步调用tuxedo service.

Tpgetrply: 等待异步调用service的返回结果.

关键函数代码

import weblogic.wtc.jatmi.Reply;

import weblogic.wtc.jatmi.TypedFML32;

import weblogic.wtc.jatmi.TPException;

import weblogic.wtc.jatmi.TPReplyException;

import weblogic.wtc.gwt.TuxedoConnection;

import weblogic.wtc.gwt.TuxedoConnectionFactory;

import weblogic.wtc.jatmi.Ferror;

import weblogic.wtc.jatmi.CallDescriptor;

import weblogic.wtc.jatmi.ApplicationToMonitorInterface;

private TuxedoConnection tuxConn = null;

函数setUpConnection

public TuxedoConnection setUpConnection() throws TPException

{

Context ctx = null;

TuxedoConnectionFactory tcf = null;

try

{

ctx = new InitialContext();

tcf= (TuxedoConnectionFactory)ctx.lookup(TUXEDOCONN_JNDI_NAME);

}

catch (NamingException ne)

{

throw new TPException(TPException.TPENOENT, "Could not get TuxedoConnectionFactory : " + ne);

}

try

{

tuxConn = tcf.getTuxedoConnection();

}

catch (TPException e)

{

throw new TPException(TPException.TPENOENT, "getTuxedoConnection threw exception: " + e);

}

return tuxConn;

}

函数Tpcall

public TypedFML32 Tpcall(String service_name, TypedFML32 in_params) throws TPException, TPReplyException

{

Reply tuxReply = null;

TypedFML32 tuxRtn = null;

try

{

if (tuxConn == null) tuxConn = this.setUpConnection();

}

catch (TPException e)

{

System.out.println("setUpConnection throw exception:" + e); throw e;

}

try

{

tuxReply = tuxConn.tpcall(service_name, in_params, 0);

}

catch (TPReplyException tre)

{

System.out.println("tpcall threw TPReplyExcption " + tre); throw tre;

}

catch (TPException te)

{

System.out.println("tpcall threw TPException " + te);

throw te;

}

catch (Exception ee)

{

System.out.println("tpcall threw exception: " + ee);

throw new TPException(TPException.TPESYSTEM, "Exception: " + ee);

}

tuxRtn = (TypedFML32)tuxReply.getReplyBuffer();

return tuxRtn;

}

函数Tpacall

public CallDescriptor Tpacall(String service_name, TypedFML32 in_params) throws TPException, TPReplyException

{

CallDescriptor tuxRtn = null;

通过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基本操作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简介及命令介绍

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

叱咤风云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管理配置中文说明new

Tuxedo的配置管理简要说明 Tuxedo的配置管理简要说明 (1) 一、Tuxedo基本命令 (2) 二、UBB文件配置说明 (3) 三、数据库XA设置 (8) 3.1 ORACLE XA (8) 四、Tuxedo多机方式配置要点 (9) 4.1启动tlisten (9) 4.2 ubb文件配置 (9) 4.3管理 (10) 五、用JOLT连接Tuxedo和Weblogic (11) 5.1在Tuxedo上安装、配置JOLT Server (11) 5.2 配置Weblogic Server 6.x (12) 5.3 Example setup (12) 六、TUXEDO动态配置 (13) 6.1 用tmadmin修改配置 (13) 6.2 用tmconfig更改TUXCONFIG(UBBCONFIG) (13)

一、Tuxedo基本命令 #1.设臵环境变量TUXDIR,APPDIR,TUXCONFIG,LANG(跟OS相关),LD_LIBRARY_PATH(跟OS相关) #2.编译ubb文本生成二进制配臵文件:tmloadcf –y ubbconfig #3.所有机器上运行tlisten,具体见文档中NETWORK一节 #4.启动tmboot –y #5.关闭tmshutdown –y 参数: -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 –c或tmboot –c可以计算出当前UBB配臵的Tuxedo启动最少要占 用的系统IPC资源。

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与WEBLOGIC通过WTC进行互连的配置

TUXEDO与WEBLOGIC通过WTC进行互连的配置BEA公司的TUXEDO,WEBLOGIC作为最优秀的中间件产品,在银行、电信、金融等行业广泛使用,通常采用TUXEDO实现系统的核心业务,用WEBLOGIC做为系统扩展到INTERNET的平台,实现电子商务,由WEBLOGIC调用TUXEDO上的服务,所以TUXEDO 与WEBLOGIC之间的互连经常遇到。下面通过一个例子介绍TUXEDO与WEBLOGIC通过WTC进行连接的配置方法。 WEBLOGIC与TUXEDO的互连有两中方式,通过JOLT或通过WTC(WEBLOGIC TUXEDO CONNECTOR)。它们都是BEA的产品,WTC不仅能让WEBLOGIC调用TUXEDO中的SERVICE,而且能让TUXEDO调用WEBLOGIC中的EJB;而JOLT只能让WEBLOGIC调用TUXEDO. 但JOLT可以使TUXEDO与WEBSPERE等其他应用服务器相连,而WTC只能用于WEBLOGIC与TUXEDO之间进行互连。 一、WTC说明 (1)WEBLOIGIC5.1无法通过WTC与TUXEDO连接. (2)WEBLOGIC6.0与TUXEDO连接时,要安装WTC软件包. (3)WTC已集成在在EBLOGIC6.1中,只要配置一下就可以了,不用单独安装WTC软件包. (4)目前WTC只支持TUXEDO6.5,TUXEDO8.0两个版本,不支持TUXEDO7.1版本.

(5)目前WTC有两个版本, Windows版本支持2000/NT,UNIX为统一版本. (6)WTC可从http://commerce.bea .com/downloads/tuxedo.jsp 下载,目前的版本为1.0. 二、WTC安装过程 (1) WEBLOGIC与TUXEDO必须先安装好. (2)WTC要求在JAVA环境下安装,可在命令行下,运行weblogic 主目录下config/EXAMPLE/setEnv.sh(NT/2000 下为setenv.cmd)配置JAVA环境 (3)在DOS命令行下执行安装程序WTC_10_win.exe。按提示操作就可以. 注意:如果在WINDOW下安装,到COPY文件那一步时,不会执行,但提示安装成功,实际是假的。所以应在DOS命令行下安装. 三、WTC配置说明TUXEDO与WEBLOGIC之间通过DOMAIN方式实现互相调用,在这个例子中有两个DOMAIN:TUXEDO所在的DOMAIN名为TDOM1,WEBLOGIC所在的DOMAIN名为TDOM2。TDOM1上有TOUPPER它是一个TUXEDO SERVEICE,TDOM2上有TOLOWER它是一个EJB,下面以WTC安装带的例子simpapp(在WTC安装目录的examples/wtc/atmi/simpapp下)说明配置过程: TUXEO版本: TUXEDO65 WEBLOGIC版本:

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:数据库连接时使用,表时启动几个

Tuxedo完全操作手册

一、tuxedo的配置 1、展开tuxedo包,例如:/home/tuxedo 2、配置ubbconfig文件 在江苏建行是jsccb.ubb *RESOURCES *RESOURCES节包含整个应用范围的信息。本节必须在配置文件第一节,不可缺少。 参数意义 *RESOURCES *RESOURCES节 IPCKEY 共享内存id UID TUXEDO管理员用户id GID TUXEDO管理员用户id PERM 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 检索公告牌的内部时间间隔,单位是SCANUNIT BLOCKTIME 交易超时时间,单位是SCANUNIT BBLQUERY DBBL查询所有BLL的时间间隔 DBBLWAIT DBBL等待BBL回应的超时时间 MAXCONV 同时最大会话数 jsccb.ubb的实例

第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服务

相关文档
最新文档