Tuxedo管理培训
DATA PLAT FORM
Tuxedo 应用配置(ubbconfig文件)
整个应用的描述信息配置在系统核心位置,用一个文件描述,通常称为ubbconfig文件,在主控机器上。整个TUXEDO系统的管理任务可以在一台机器上完成,在配置中被定为主控节点。
在运行时,这些信息被装入一段共享内存(一个IPC资源),称为公告牌(Bulletin Board—BB);包含有配置中不同机器的信息,在这些机器上运行的服务的信息,这些服务提供的交易的信息以及其他相关信息。
客户端在运行时连接公告牌。当客户端程序调用一个交易,将根据公告牌找到合适的服务队列。
所以,公告牌(Bulletin Board—BB)是:
——供客户端寻找适当的服务运行一个交易请求
——包含应用信息:机器,服务,交易,网络等
——创建于ubbconfig文件
TUXEDO提供一个管理进程,称为BBL(Bulletin Board Liaison),包含了一个公告牌的本地拷贝和本地服务器上应用的状态。
TUXEDO提供的另一个管理进程DBBL(Distinguished Bulletin Board Liaison),用于多服务器配置时。DBBL与BBL协同,保证所有部分的公告牌内容的一致性。
配置文件
任何TUXEDO应用系统的最基本的管理任务,是建立并维护配置文件。该文件通常称为ubbconfig文件。负责该工作的系统管理员必须很好的了解分布于各台机器上的应用服务的数据流,消息队列的构造,资源间的相互关系。ubbconfig文件可视作包含应用启动信息的容器,需编译成二进制文件tuxconfig,作为启动时的参考。
其内信息包括:
系统范围信息(*RESOURCES节)
机器信息(*MACHINES节)
组信息(*GROUPS节)
服务信息(*SERVERS节)
交易信息(*SERVICES节)
网络组信息(*NETGROUPS节)
网络信息(*NETWORK节)
路由原则信息(*ROUTING节)
当完成了ubbconfig文件后,用tmloadcf命令生成tuxconfig
另一种从ubbconfig生成tuxconfig的方法是使用图形管理界面(GAI—Graphical Administration Interface)。
系统范围信息
RESOURCES节包含整个应用范围的信息。本节必须在配置文件第一节,不可缺少。
信息说明如下:
RESOURCES *RESOURCES节
IPCKEY 共享内存id
UID TUXEDO管理员用户id
GID TUXEDO管理员用户id
PERM TUXEDO管理员组用户的权限
MAXACCESSERS 服务端和客户端的最大进程数
MAXSERVERS 限制可以启动服务总数
MAXSERVICES 限制可以发布交易总数
MASTER 指出主控节点的逻辑名,第二个是备份节点
MODEL 应用构架,MP表示多机
OPTIONS LAN,MIGRATE表示是一个网络应用,服务可以移植到替代处理器上
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 同时最大会话数
范例
*RESOURCES
IPCKEY 80952
UID 213
GID 1
PERM 0660
MAXACCESSERS 150
MAXSERVERS 75
MAXSERVICES 200
MASTER SITE1,SITE2
MODEL MP
OPTIONS LAN,MIGRATE
SECURITY APP_PW
AUTHSVC AUTHSVC
NOTIFY DIPIN
SYSTEM_ACCESS PROTECTED,NO_OVERRIDE
LDBAL Y
MAXBUFTYPE 10
MAXBUFSTYPE 15
SCANUNIT 10
SANITYSCAN 12
BLOCKTIME 3
BBLQUERY 24
DBBLWAIT 10
MAXCONV 10
机器信息
MACHINES节包含应用有关的每个处理器的信息。本节必须在*RESOURCES节后列出。信息说明如下:
*MACHINES MACHINES节
gumby 物理处理器名,可以通过”uname –n”或节点名得到
TUXDIR TUXEDO系统软件安装位置
APPDIR 应用服务位置全路径
TUXCONFIG TUXEDO配置文件全路径
ENVFILE 环境文件全路径
ULOGPFX 应用日志文件全路径
MAXACCESSERS 本机最多处理器数,可以超越*RESOURCES节定义
MAXCONV 本机最大会话数,可以超越*RESOURCES节定义
范例
*MACHINES
gumby LMID=SITE1
TUXDIR=”/usr/tuxedo”
APPDIR=”/usr/apps/atmapp”
TUXCONFIG=” /usr/apps/atmapp/atmapp.tux”
ENVFILE=” /usr/apps/atmapp/ENVFILE”
ULOGPFX=”/usr/apps/atmapp/logs/ULOG”
MAXACCESSERS=100
MAXCONV=15
组定义
GROUP节包含服务组的定义。一台机器至少要定义一个服务组。如果没有定义组,管理命令tmadmin可能依然能运行。
每个组只要定义组名,映射组名的组号和逻辑机器名。组为分布式交易系统和数据依赖路由等灵活性措施提供了支持。
GROUPS GROUP节
BANKB1 组的唯一标识符,可以 是字母数字
GRPNO 组的唯一数字标识符
LMID 组所在的机器
范例
*GROUPS
BANKB1 GRPNO=200 LMID=SITE1
BANKB2 GRPNO=220 LMID=SITE1
SYSGRP GRPNO=110 LMID=SITE1
EVTGRP1 GRPNO=120 LMID=SITE1
服务定义
ubbconfig的*SERVERS 节包含的是服务进程的信息。本节中每一个入口代表一个应用启动时加载的服务。这些信息包含服务名,命令行参数,服务环境,重启动等等。由于每个服务功能各不相同,其配置参数也因此相同或相异。
SERVERS SERVER节,列出所有服务程序
DEFAULT: 本处列出的参数为其下列出的服务的缺省值,但可以被单列条目替代相应值
RESTART 如果设成Y,则服务可以重启动
MAXGEN 在GRACE定义时间之内,服务可以重启动MAXGEN次
GRACE 周期,单位是秒
RCMD 每次服务重启动,本处定义的脚本或命令被执行
ENVFILE 列有环境变量的文件,在交易启动前设入环境
TLR 一个服务名,用buildserver建立,应在APPDIR或$TUXDIR/bin
SRVGRP 服务属于一个在*GROUPS节中定义的服务组;如果需要移植服务,也可以定义在多个组中。
SRVID 服务组中代表服务的唯一值
MIN 最少在启动时启动的服务数
MAX 运行时,最多可以起的实例数
CLOPT 跟随服务启动的其他参数
-A 服务内建交易全发布
–r 指定服务记录时间戳,用于以后计算交易处理时间
-e 定义标准错误重定向文件
-o 定义标准输出重定向文件
-- TUXEDO参数和服务特定参数的分隔符
… 传给tpsvrinit()的参数
SYSTEM_ACCESS 设定后,应用错误不干扰公告牌
RQADDR 当设定此项后,所有本服务的实例都使用相同的请求队列。这是在应用中设置MSSQ(Multiple Server Single Queue)的方便办法,可以改善处理流量。任何时候,所有MSSQ集中的实例发布相同的交易集。
XFER 另一个服务
REPLYQ 设成Y,则服务又作为一个MSSQ集配置,任何其中的交易调用其他交易,就建立一个单独的回应队列。
范例
SERVERS
DEFAULT: RESTART=Y MAXGEN=5 GRACE=3600
RCMD=”/sur/apps/atmapp/scripts/beeper”
CLOPT=”-A” ENVFILE=”/usr/apps/atmapp/envfile”
TLR SRVGRP=BANKB1 SRVID=10 MIN=1 MAX=2
CLOPT=”-A –r
-e /usr/apps/atmapp/logs/TLR1.err
-o /usr/apps/atmapp/logs/TLR1.out
--
-T 101 –e 300 –d dbfile”
SYSTEM_ACCESS=PROTECTED
RQADDR=”TLR_Q1”
XFER SRVGRP=BANKB1 SRVID=20 MIN=1 MAX=2
RQADDR=”XFER_Q1” REPLYQ=Y
CLOPT=”-A –r”
交易定义
SERVICES节提供了应用的特殊交易的信息。包括负载平衡(LOAD)和数据缓冲类型检查(BUFTYPE)。如果全部都是缺省值则本节可以省略。
SERVICES 交易节
# 注释行符号
大写字母 交易名,由应用服务提供
BUFTYPE 任何向该交易的请求,数据应该是此处定义类型
GROUP 交易所在服务所在的组
LOAD 负载因子,表示处理请求的时间,用于计算负载平衡
PRIO 优先级
范例
*SERVICES
#comment line
DEPOSIT BUFTYPE=”FML”
SRVGRP=BANKB1
LOAD=25 PRIO=70
生成TUXCONFIG文件
UBBCONFIG文件是一个可以编辑成需要的应用配置的文本文件。但是,/T在实际应用上读取的是二进制TUXCONFIG文件用于操作。命令tmloadcf可以把UBBCONFIG文件转化成TUXCONFIG文件。
tmloadcf命令接受以下4个参数
-c 计算运行应用需要的IPC资源,该信息将提供给管理员,用于在各机器上配置资源。
-n 进行语法检查并不生成TUXCONFIG。
-b 控制TUXCONFIG占用的物理页数。
-y 无条件覆盖TUXCONFIG
环境变量TUXCONFIG必须设定指向二进制TUXCONFIG文件。
在安全要求高的应用中,tmloadcf不能从标准输入接受,环境变量APP_PW必须包含应用密码。
tmunloadcf将TUXCONFIG转换成ASCII格式用于检查。该工具读取环境变量TUXCONFIG指向的文件。输出包含所有的参数,包括TUXEDO设定的缺省值,是UBBCONFIG文件的一个超集。
Tuxedo管理工具与管理命令
命令tmboot
命令tmshutdown
命令tmipcrm
命令tmadmin
服务信息 printserver(简写为psr)
交易信息printservice(简写为psc)
队列信息printqueue(简写为pq)
客户端信息printclient(简写为pclt)
命令tmboot
tmboot命令启动TUXEDO系统的 /T应用,创建必要的IPC资源、启动相关机器的
规定
关于下班后关闭电源的规定党章中关于入党时间的规定公务员考核规定下载规定办法文件下载宁波关于闷顶的规定
的系统和应用服务进程。大多数的tmboot的参数启动了部分系统进程。在以下说明和例子中,lmid,grpname和srvid是配置文件中指定的值。
-A 启动所有机器上的管理进程。
-M 启动主控机器上的管理进程。
-i srvid 启动服务id等于 srvid的进程。
-g grpname 启动指定的一组服务(含TMS)
-S 启动所有应用服务。
-s server-name 启动可执行文件名为server-name的服务。
-l lmid 启动TMS和指定机器上的应用服务。
-T grpname 启动指定组中所有TMS。
-B lmid 启动指定机器上的BBL。
-e command 指定启动进程失败后在主控机器上运行的命令名。
-c 打印本配置所需最少的IPC资源。
命令tmshutdown
tmshutdown命令用于关闭所有或部分应用并释放IPC资源。
1.本命令所用参数与tmboot类似(如:-A, -g, -i, -s, -S, -l, -M, -B),意义相同。
2.如果需要移动服务,关闭服务时用-R参数即可不删除BB中的入口。
3.在非主控节点上,可以用-P参数仅关闭该机器上的应用。
4.当有客户端正在连接时,tmshutdown 不能关闭管理服务。参数-c则可以超越此规则。该参数仅用于管理员需要立即关机而又无法及时通知客户端时。
5.参数-w delay 在delay秒后进行强制关闭。指定的服务当即被挂起,使之不能继续接受交易请求。delay的值则允许服务在一个合理的时间内完成已经接受的请求。在延迟的时间到达后,信号SIGKILL(或SIGTERM)将发给指定的服务。该参数目的是使管理员能够关闭发生死循环或死锁的服务。
命令tmipcrm
当使用tmshutdown –c仍然不能强制关闭服务时,可以使用tmipcrm命令将所有服务进程杀掉并且释放IPC资源。
命令tmadmin
通常管理工作有以下3类:
监视运行系统
一般监视以下信息:应用、服务、客户端、交易、队列、组、会话、网络等。
动态修改服务或交易参数
使用tmadmin可以动态进行以下调整:
——交易可以挂起、恢复、发布和取消
——交易参数可以修改,如:LOAD和PRIORITY
——指定交易的超时时间
——交易口令
进行启动,关闭,移动服务等管理员的任务
服务信息
以下是tmadmin命令的printserver(简写为psr)的简单输出。
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 )
ftpserv32 00002.00001 FTPGP 1 60 3000 ( IDLE )
WSL 00001.00001 SYSGP 1 0 0 ( IDLE )
IFMTMS APGP2_TMS APGP2 30002 12 600 ( IDLE )
ftpserv32 00002.00002 FTPGP 2 0 0 ( IDLE )
IFMTMS APGP2_TMS APGP2 30003 11 550 ( IDLE )
CCS_QUANBIA_60 00004.06004 APGP2 6004 0 0 ( IDLE )
CCS_SCBB_4099 00004.04099 APGP2 4099 2 100 ( IDLE )
CCS_GEKEZI_300 00004.03000 APGP2 3000 0 0 ( IDLE )
交易信息
以下是tmadmin命令的printservice(简写为psc)的简单输出。
Service Name Routine Name Prog Name Grp Name ID Machine # Done Status
------------ ------------ --------- -------- -- ------- ------ ------
416701 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416601 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416501 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416401 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416201 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416301 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416101 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
416001 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
415901 rz_Ecsb rz_Ecsb APGP2 4000 simple 0 AVAIL
队列信息
以下是tmadmin命令的printqueue(简写为pq)[qaddress]的简单输出。如果不指定address,所有队列信息将被输出。
> pq 00004.05062
Prog Name Queue Name # Serve Wk Queued # Queued Ave. Len Machine
--------- ------------------- --------- -------- -------- -------
CCS_GEDAIPC_50 00004.05062 1 0 0 0.0 simple
客户端信息
以下是tmadmin命令的printclient(简写为pclt)的输出,来自TUXEDO系统的日志信息。主要有以下信息:
已经登录的客户端机器的LMID
用户名,由tpinit()提供的
客户端名,由tpinit()提供的
客户端连接后经过的时间
客户端状态
IDLE——表示客户端目前没有任何交易在工作
IDLET——表示客户端启动了一个交易
BUSY——表示客户端在工作中
BUSYT——表示客户端正在交易控制下工作
启动/提交/中断的交易数
pclt
LMID User Name Client Name Time Status Bgn/Cmmt/Abrt
--------------- --------------- --------------- -------- ------- -------------
simple ccsmis WSH 17:42:47 IDLE 0/0/0
simple ccsmis tmadmin 0:44:28 IDLE 0/0/0
Tuxedo Client配置
Tuxedo客户端包括两种:native client 和 Workstation(/WS)。native client是指运行在主控节点上的客户端;Workstation是指和服务应用运行在不同机器上的客户端,也即Workstation运行的机器名不包括在ubbconfig中的*MACHINES域中
在服务端配置/WS
*MACHINES域中必须进行如下改变:
MAXWSCLIENTS,允许的/WS客户端的最大数目
MAXWSCLIENTS缺省值为0,所以必须正确设置该项数值
MAXACCESSERS,需要增大该项数值以满足加入的/WS客户端
*SERVERS域增加如下内容:
一个或多个WSL服务
WSL服务通过CLOPT参数内容来设定:
-n:网络地置(ip/hostname :port)
-m:WSL可以启动WSH的最小数值
-M:WSL可以启动WSH的最大数值
-x:每个WSH可以同时处理的/WS客户端数目
-I:客户端初始化的超时时间
-N:客户端等待返回的超时时间
-T:客户端空闲的限制时间(分钟为单位),不设该值则不限制客户端idle
-p:WSL可以启动WSH的最小端口
-P:WSL可以启动WSH的最大端口
范例
MACHINES
gumby
MAXACCESSERS=300
MAXWSCLIENTS=150
。。。
*SERVERS
。。。
WSL SRVGRP=BANKB1 SRVID=100 RESTART=Y
CLOPT=”-A -- -n //gumby:9977 –m 5 –M 30 –x 5”
/WS在客户端的配置
Build /WS client程序
buildclient –f simpcl.c –o simpcl –w
设置环境变量:
TUXDIR和WSNADDR
WSNADDR即该客户端要连接的服务端的网络地址
例如:
NT:SET WSNADDR= gumby:9977
UNIX:WSNADDR= gumby:9977
export WSNADDR
客户端可以尝试连接多个网络地址
WSNADDR=ADDR1,ADDR2,ADDR3,依次尝试直至成功
WSNADDR=(ADDR1| ADDR2| ADDR3),随机选择一个
WSNADDR=(ADDR1| ADDR2),ADDR3
事务的配置与管理
分布式事务处理(Distributed Transation Processing-DTP)是运行一组需要访问一定量资源的交易或工作的必须的功能。要求保证交易动作必须全部成功或者全部失败,不能存在‘部分成功’的情况。
TUXEDO系统使用XA
协议
离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载
在本地与远程机器间协同事务活动。
分步式事务处理和XA接口
分布式事务处理(Distributed Transation Processing-DTP)有能力处理多数据库间、全局事务而不必考虑交易各方及其资源的位置。
服务使用嵌入式SQL接口去访问数据库。在一个“全局交易”中TM和RM使用XA接口保证执行所有的资源访问动作。
全局事务通常最初被ATMI调用,包含一个以上的组;由客户端和服务端启动、提交或撤消。TUXEDO通过全局事务标识符(Global Transaction Identifier-GTRID)控制所有参与部分。
相关概念:
RM 资源管理者(Resource Manager),本例中是一个数据库。
XA 控制RM提交或回滚所有动作的协议。
TMS TUXEDO的事务管理服务(Transaction Management Server),能够按XA协议与RM联系。TMS负责协调系统范围内事务相关资源管理。应用程序员可以通过ATMI事务API与TMS联系。
GTRID 全局事务标识符(Global Transaction Identifier)。
TLOG 事务日志,用于跟踪交易所有部分。
分步式事务处理UBBCONFIG
分布式事务处理的UBBCONFIG范例
*RESOURCES
MAXGTT 20
CMTRET COMPLETE
*MACHINES
lcspn1 LMID =SITE1
TUXDIR =”/usr/tuxedo”
APPDIR =”/usr/apps/atmapp”
TUXCONFIG=”/usr/apps/atmapp/atmapp.tux”
ENVFILE =”/usr/apps/atmapp/ENVFILE”
TLOGDEVICE =”/usr/apps/atmapp/logs/TLOG”
TLOGNAME =TLOG
TLOGSIZE =100
*GROUPS
DEFAULT:
TMSNAME =TMS
TMSCOUNT=2
OPENINFO=” “
CLOSEINFO=” “
BANKB1 LMID=SITE1 GRPNO=200
BANKB2 LMID=SITE2 GRPNO=220
*SERVICES
TRANSFER AUTOTRAN=Y TRANTIME=30
说明如下 :
*RESOURCES节说明
MAXGTT限制了一台机器上同时可以提供的GTRID数。最大值是2048,最小是0,缺省100;
CMTRET设成LOGGED时表示tpcommit()在所有部分都成功预提交时返回;设成COMPLETE时表示tpcommit()在所有部分都成功提交才返回。
*MACHINES节说明
TLOGDEVICE指出了该机器包含事务日志(TLOG)的文件系统。
TLOGNAME指出了该机器的事务日志名字。
TLOGSIZE指出了该机器事务日志的大小,单位是物理页数。最大值是2048,最小是0,缺省100
*GROUPS节说明
TMSNAME是事务管理服务的可执行文件名
TMSCOUNT是TMS启动的数量(最小2,最大10,缺省3)
OPENINFO是一个用于打开RM的信息的字符串
CLOSEINFO是一个用于关闭RM的信息的字符串
AUTOTRAN设成N则该交易初始化成无事务方式,Y则反之。
TRANTIME事务创建的超时时间,单位为秒。
创建事务日志的脚本
为支持分布式事务处理,必须创建一个格式化的设备记录事务信息。
tmadmin <sqlplus sys/change_on_install
2.运行ORACLE的安装路径下的/rdbms/admin/xaview.sql
SQL> @d:\ora81\rdbms\admin\xaview.sql
3.授权
SQL>grant select on v$xatrans$ to public with grant option;
SQL>grant select on v$pending_xatrans$ to public with grant option;
Tuxedo配置
1.修改TUXEDO安装路径的udataobj目录下的RM文件,把以Oracle_XA:xaosw:开头的一行用#注释掉,如是NT加入一行:
Oracle_XA;xaosw;d:\ora81\rdbms\xa\oraxa8.lib d:\ora81\precomp\lib\msvc\orasql8.lib
如果是在UNIX环境下,则为:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib –lclntsh
2.在TUXEDO用户下创建TMS文件:TMS_ORA8i,TUXEDO通过TMS_ORA8i与ORACLE数据库采用XA协议进行通讯:
buildtms -o d:\tuxedo71\bin\TMS_ORA8i -r Oracle_X
3.配置 UBBCONFIG
4.用TMADMIN创建TLOG文件,TUXEDO用一个文件TLOG记录对数据库操作的日志。用于协调分布式数据库的提交与回滚。
连接错误的定位和排除
我们的服务成功启动后,服务端程序会自动与ORACLE数据库建立连接,并一直保持这个连接,直到TUXEDO系统或ORACLE数据库关闭。现在与数据库的连接由TUXEDO通过xa接口自动管理。
如果启动过程或系统运行过程中,跟事务处理相关的部分出现故障,会在应用程序所在目录(APPDIR)产生一个*.trc文件,记录失败的原因,同时TUXEDO的ULOG文件中也会有一些错误信息。可参考这些错误信息进行错误分析并排除故障。