内容
Tuxedo 简介
Tuxedo 安装 基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连
Tuxedo和WebLogic Server互连
Tuxedo优化要点 日常监控和维护
BEA 机密 | 2
内容
Tuxedo 简介 Tuxedo 安装 基本配置介绍
管理命令和日志文件分析
Tuxedo和Oracle互连 Tuxedo和WebLogic Server互连 Tuxedo优化要点 日常监控和维护
BEA 机密 | 3
Tuxedo 是什么
位于客户端和服务器之间的中间件
交易处理(Transaction Processing, TP)监控器
分布式应用的基础 多层客户端/服务器系统的基础 Tuxedo
Transactions for
Unix (TUX) + distributed client-server communications (Extended for Distributed Operation)
BEA 机密 | 4
Tuxedo 的特征
架构
分布式服务 高效的无连接通讯 服务透明 可扩展性
管理
事件通知
MIB:
Management Information Base
开发
ATMI/CORBA
分布事务处理 符合X/Open XA
接口规范
BEA 机密 | 5
2层结构和3层结构
BEA 机密 | 6
Tuxedo在客户端/服务器结构中的位置
BEA 机密 | 7
如果不使用中间件
连接数据库 业务逻辑… 获取数据 业务逻辑… 断开和数据库的连接 SQL访问 Database
BEA 机密 | 8
使用中间件
连接Tuxedo 业务逻辑… Tuxedo API 服务调用 Database
断开和Tuxedo连接
BEA 机密 | 9
Tuxedo主要组成部分
Bulletin Board Liaison
Bulletin Board
消息队列 (Message Queue) Tuxedo 客户端 (Client) Tuxedo 服务器 (Server)
BEA 机密 | 10
Bulletin Board (BB)
一段共享内存,可以被Tuxedo的进程访问
系统配置信息
记录Server中的信息,为客户端提供Service定位 记录运行时的一些信息,例如某服务被调用的次数等等
BEA 机密 | 11
Bulletin Board Liaison (BBL)
Tuxedo的管理进程
监视管理Tuxedo的各个组件
进行健康检查
BEA 机密 | 12
消息队列 (Message Queue)
客户端和服务器通信的消息通道 使用IPC或者网络交互信息
对于在本机调用的服务,即客户端和服务器在同一台主机,消息
不做转换
在不同平台上的消息交互,Tuxedo会自动进行转换 开发人员无需进行数据格式的转换
BEA 机密 | 13
Tuxedo 客户端(1)
本地客户端
客户端和服务器运行在同一台主机上
远程客户端
客户端和服务器运行在不同的主机上 使用Tuxedo /WS
(Workstation)组件的/WS客户端
使用JOLT的客户端,即Java客户端 CORBA
客户端
编程语言
C/C++ Delphi
VB
Java …
BEA 机密 | 14
Tuxedo 客户端(2)
WebLogic Tuxedo Connector (WTC)
使用WebLogic上的应用调用Tuxedo的服务 使用Tuxedo服务调用WebLogic上的EJB服务 支持事务 CORBA
Java和CORBA C++服务器协同工作
易于配置和使用
BEA 机密 | 15
Tuxedo 服务器
实现业务逻辑
可以由C/C++编写
BEA 机密 | 16
内容
Tuxedo 简介
Tuxedo 安装
基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连 Tuxedo和WebLogic Server互连
Tuxedo优化要点
日常监控和维护
BEA 机密 | 17
安装前的配置检查
对硬件和系统资源的要求
操作系统是否支持
硬盘容量
用户权限,文件系统的分配
对TMP空间有写权限
文件系统剩余空间要大于安装要求
安装介质的选择
64位版本和32位版本的选择 检查操作系统位数
BEA 机密 | 18
Tuxedo 安装准备
获取安装介质
http://commerce.beasys.com/downloads/tuxedo.jsp#tuxedo CD
硬件或者操作系统需求
参考在线文档 BEA
Tuxedo 8.1 Platform Data Sheets http://e-docs.bea.com/tuxedo/tux81/install/inspds.htm#1365510
临时空间
Windows: 系统环境变量TMP
通过修改该变量指定临时空间
Unix: /tmp
使用export IATEMPDIR=tmpdirname 命令来修改临时空间的路径
BEA 机密 | 19
Tuxedo 安装类型
图形界面安装
和常见的软件安装类似,简单明了,易于使用。通常在Windows
上使用
http://e-docs.bea.com/tuxedo/tux81/install/insgui.htm#1032394
控制台安装
通过字符终端进行安装时的交互。通常在Unix平台使用
http://e-docs.bea.com/tuxedo/tux81/install/inscon.htm#1008419
静默模式安装
使用定制脚本进行安装,通常用于安装多份配置相同的Tuxedo http://e-docs.bea.com/tuxedo/tux81/install/inssil.htm#1008419
BEA 机密 | 20
Tuxedo 组件
BEA 机密 | 21
步骤1 解压缩文件
BEA 机密 | 22
步骤2 介绍
BEA 机密 | 23
步骤3 许可协议
BEA 机密 | 24
步骤4 选择安装组件
BEA 机密 | 25
步骤5 选择BEA HOME
BEA 机密 | 26
步骤6 选择产品安装路径
BEA 机密 | 27
步骤7 开始安装
BEA 机密 | 28
步骤8 设置tlisten口令
BEA 机密 | 29
步骤9 设置LDAP
BEA 机密 | 30
步骤10 安装license文件
BEA 机密 | 31
步骤11 安装完成
BEA 机密 | 32
目录说明
BEA HOME
logs (目录):BEA产品安装日志 jre130 (目录):Java运行环境 tuxedo8.1(目录):Tuxedo目录,即:$TUXDIR
registry.xml :该BEA
HOME下安装的BEA产品的信息
BEA 机密 | 33
安装后检查
安装后的确认
设置环境变量后,tmadmin –v
IPC参数设置
IPC是UNIX系统进程间通讯的规范
Semaphores: 信号灯,用来保护共享资源
Message and Message Queue: 消息和消息队列 Shared Memory: 共享内存,可以由多个进程共享访问
内核参数的设定必须能满足应用的要求 IBM主机上IPC参数不需要手工调整
BEA 机密 | 34
license 问题
Tuxedo license为文本文件
位于%TUXDIR/udataobj/lic.txt
分SDK和RTK两种
SDK可以编译应用和运行Tuxedo,RTK不能编译应用
非对称加密,不可修改
不限制CPU数量 限制客户端用户数,最多为license数量的110%
BEA 机密 | 35
安装过程中常见问题以及解决方法(1)
多个版本TUXEDO的共存
可以共存,安装在不同的目录下 启动时,设置对应版本的环境变量(TUXDIR,PATH) UBB配置(TUXDIR)
Tuxedo补丁的加入方法
UNIX
TAR.Z的包,解压时不能覆盖原来的文件,必须独立的空间
解压后有可执行脚本文件install
反安装:运行反安装脚本uninstall
WINDOWS:
可执行文件,可以直接安装
BEA 机密 | 36
安装过程中常见问题以及解决方法(2)
临时空间不够
解决方法:
Bourne shell (sh), ksh,
bash and zsh:
$ IATEMPDIR=/your/free/space/directory $ export IATEMPDIR
C
shell (csh) and tcsh:
$ setenv IATEMPDIR /your/free/space/directory
BEA 机密 | 37
安装过程中常见问题以及解决方法(3)
安装Rolling Patch失败
现象:
Installing server and client files... Enter owner for patch files:
tuxedo8
Enter group for patch files: bea *** Error: uninstall must be in the current directory and owned by tuxedo
解决方法:
该问题出现在使用su过来的用户安装Patch出现 直接用安装用户登录服务器安装
BEA 机密 | 38
内容
Tuxedo 简介
Tuxedo 安装 基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连
Tuxedo和WebLogic Server互连
Tuxedo优化要点 日常监控和维护
BEA 机密 | 39
TUXEDO 配置文件
UBBCONFIG文件
文本文件,包含资源、主机、服务进程、网络的配置信息,不包含客户 进程的配置信息 通过tmloadcf命令加载成二进制文件TUXCONFIG,供运行时使用
tmloadcf -y ubbconfig
TUXCONFIG文件
UBBCONFIG配置文件的二进制版本 可以通过tmunloadcf转换成文本文件
tmunloadcf >ubbconfig
通过环境变量TUXCONFIG供系统运行时使用 SET TUXCONFIG=C:\TuxDP\labs\simpapp\tuxconfig
启动时,从内存中申请共享内存块 该内存启动时,把所有UBB文件配置的信息载入
BEA 机密 | 40
UBBCONFIG文件中各部分之间的关系
*RESOURCES(Application-wide information) *MACHINES(Machine-wide information) *GROUPS(Group-wide information) *SERVERS(Server-specific information server-1 server-2 server-3
*SERVICES
svc-x
svc-y svc-z
svc-x svc-y svc-y svc-z
service x info service y info service z info
BEA 机密 | 41
*RESOURCE
IPCKEY
IPC资源的唯一值,32768-262143
GID, UID
用户组ID和用户的ID,在Unix平台上使用
DOMAINID
Tuxedo域的ID
MAXACCESSERS
并发访问BB的进程数量
0-32768
默认50 小于等于MAXSERVERS +
license 中用户数量
BEA 机密 | 42
*RESOURCE
MAXSERVERS
BB中最多容纳的服务器数量 0-8192 默认50
Tuxedo系统进程和应用的进程都要计算在内
MAXSERVICES
BB中最多容纳的服务数量 0-32768 默认100 Tuxedo系统服务和应用的服务都要计算在内
BEA 机密 | 43
*RESOURCE
MODEL
SHM: MP:
Single Shared Memory
Multi Processors
LDABL
Y:启用负载均衡 N:禁用负载均衡(当使用MSSQ时,建议设置LDBAL为N) 负载均衡会有额外的资源消耗
BEA 机密 | 44
*MACHINE
LMID
逻辑主机名称 格式:物理主机名称 其中物理主机名称
LMID=逻辑主机名称
使用命令hostname可以查看主机名称
Windows 平台要求全部大写 Unix 平台要求大小写严格一致
TUXCONFIG
Tuxedo二进制配置文件的全路径
BEA 机密 | 45
*MACHINE
APPDIR
应用程序的路径
可以是多个路径的组合 Unix 平台上使用:分隔,Windows 平台上使用;分隔
TUXDIR
Tuxedo 路径,要求和环境变量TUXDIR一致
BEA 机密 | 46
*MACHINE
TYPE
主机类型 无固定要求,主要是用来标识是否同类型的主机
SPINCOUNT
在单处理器的主机上设置为1
在多处理器的主机上设置为5000-100000,实际参数不同主机不同
MAXWSCLIENTS
最大的/WS客户端数量,受license限制
ULOGPFX
ULOG的路径及前缀 默认为APPDIR,前缀为ULOG
BEA 机密 | 47
*GROUPS
定义主机与服务进程之间的映射关系
不能忽略,必须为每台主机至少定义一个组 主要参数包括:组名,组编号,LMID, OPENINFO
,
CLOSEINFO,TMSNAME,TMSCOUNT等
配置实例:
BANKB1
GRPNO=1
TMSNAME=TMS_SQL TMSCOUNT=2 LMID=SITE1 OPENINFO="TUXEDO/SQL:C:\TuxDP\devices\bankdl1;bankdb; readwrite"
BEA 机密 | 48
*SERVERS
包含服务进程的配置信息,不是必须的
主要参数包括:
可执行的服务进程名:用buildserver生成的可执行文件名,在NT平台 下可不带exe扩展名 SRVID:服务进程编号,取值范围在(1, 30000)之间
SRVGRP:指定服务进程所属的组名
CLOPT:服务进程的命令行参数,如:CLOPT=“-A -- -T 100 -e 1000.00“,其中“--”之前的部分由服务进程的初始化函数tpsvrinit() 处理,之后部分由服务里程序的主函数main()处理
BEA 机密 | 49
*SERVICES
提供个性化服务配置信息,可选
主要参数包括:
服务名:buildserver命令中-s选项指定的串名 PRIO:定义服务的优先级,缺省为50 ROUTING:指定本服务使用到的DDR(数据依赖路由)字段
配置实例:WITHDRAWAL ROUTING=ACCOUNT_ID PRIO=50
BEA 机密 | 50
常见问题(1)
现象
ULOG中出现以下错误
WSH.12961.1.0: LIBTUX_CAT:1122: ERROR: No space in Bulletin Board WSH.12961.1.0: LIBTUX_CAT:582: ERROR: Unable to register, registry table full
解决方法:增大MAXACCESSERS值或MAXWSCLIENTS值
MAXACCESSERS的含义 客户端和服务进程可以同时访问BB的最大数目 MAXACCESSERS>(MAXWSCLIENTS+MAXSERVERS+total
num(JSH+WSH+ISH))
BEA 机密 | 51
常见问题(2)
现象
ULOG中出现以下错误
simpserv.908.1832.0: LIBTUX_CAT:328: ERROR: No space in Bulletin Board for Service Table
解决方法
增大MAXSERVICES值
BEA 机密 | 52
常见问题(3)
现象
ULOG中出现以下错误
simpserv.2128.2124.0: LIBTUX_CAT:328: ERROR: No space in Bulletin Board for Server Table 或 simpserv.2036.2072.0: LIBTUX_CAT:328: ERROR: No space in Bulletin Board for Queue Table
解决方法
增大MAXSERVERS值
BEA 机密 | 53
内容
Tuxedo 简介
Tuxedo 安装 基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连
Tuxedo和WebLogic Server互连
Tuxedo优化要点 日常监控和维护
BEA 机密 | 54
管理任务
准备阶段
安装 设置环境变量 配置UBB文件
配置事务、消息等组件
运行阶段
启动和关闭应用 监控运行情况、问题 性能调整 故障排除
BEA 机密 | 55
Tuxedo 提供的管理工具
BEA 机密 | 56
常用管理命令
tmboot
启动 tuxedo
tmshutdown
停止
tuxedo tuxedo 版本及license信息
tmadmin -v
查看
BEA 机密 | 57
常用管理命令
tmloadcf -y ubb_file
编译文本格式的ubb文件到二进制的ubb文件
tmloadcf -c ubb_file
测试IPC资源最小需求
tmadmin>bbparms (bbp)
显示BB的关键参数配置
tmadmin>bbstats (bbs)
显示当前BB的统计信息
BEA 机密 | 58
常用管理命令
tmadmin>printclient (pclt)
显示当前连接tuxedo的客户端信息
tmadmin>printserver (psr)
显示
server 的信息 service 的信息
tmadmin>printservice (psc)
显示
tmadmin>printtrans (pt)
显示当前事务的信息
tmadmin>printqueue (pq)
显示请求队列的信息
BEA 机密 | 59
psr命令
BEA 机密 | 60
pq命令
BEA 机密 | 61
psc命令
BEA 机密 | 62
pclt命令
BEA 机密 | 63
Tuxedo Command-Line Utilities
tmadmin
和Unix shell命令结合使用,例如:
echo psr| tmadmin | grep –v IDLE echo psr| tmadmin | grep –v IDLE|wc -l
echo psr| tmadmin | sort +4
echo psc| tmadmin | sort +6 echo pq | tmadmin | sort +4 echo pclt | tmadmin | grep –v WSH|grep –v tmadmin|wc –l
还可以通过script的方式,对于命令结果进行更复杂的处理
BEA 机密 | 64
Log Files
User Log (ULOG)
Tuxedo将错误信息、警告信息、一般信息和调试信息写入此
文件
每天一个ULOG文件
Transaction Log (TLOG)
Tuxedo使用此文件跟踪全局事务
BEA 机密 | 65
Log Files
User Log (ULOG)
日志信息格式:时间戳.主机名!进程名字.进程号.线程号.上下
文号:信息类:编号:详细信息
112720.sunws!simpserv.6012.1.0: LIBTUX_CAT:262: INFO: Standard main starting
信息目录及编号
在TUXEDO在线文档的Messages链接中 在文档中,针对每个信息,会有更加详细的解释、原因分析和 建议的动作
BEA 机密 | 66
Log Files
Transaction Log (TLOG)
TLOG的格式:
(<gtrid>):<count>:<loggrp>:<group id 1>:<group id 2> ... <group id n>
<gtrid> 是一个包含8个32位的值
<count> 是在包含组ID的数组的维度 <loggrp> 是事务协调组的组ID (TMS 组) <group id 1> 是参与事务的第一组的组ID [280] <group id 2> 是参与事务的第二组的组ID [0, 无意义] ... <group id n> 是第十六组的组ID (最多16组)
使用tmadmin>pt 命令查看事务信息
BEA 机密 | 67
Tuxedo 启动/停止不正常
当Tuxedo服务进程不能正常shutdown,如执行tmshutdown –y没 有响应,系统挂起时,可以使用操作系统的kill -9的命令停止 进程;
使用Tuxedo的tmipcrm清除ipc资源
清除IPC和进程垃圾
ipcrm `ipcs ksh> kill -9
|grep {ACCOUNT}|awk '{print "-" $1 " " $2}'` -1
当Tuxedo执行tmboot失败时,请检查ULOG文件,查看具体的 出错信息
谨防IPC KEY和SOCKET端口被占用 ipcs -aq/-am/-as netstat -a
-f inet
BEA 机密 | 68
内容
Tuxedo 简介
Tuxedo 安装
基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连 Tuxedo和WebLogic Server互连
Tuxedo优化要点
日常监控和维护
BEA 机密 | 69
Tuxedo和Oracle互连
2种方式
XA模式
支持分布式事务 Tuxedo是事务管理器(TM) Oracle是资源管理器(RM) Tuxedo负责协调分布式事务,Oracle负责事务的提交和回滚
非XA模式
BEA 机密 | 70
分布式事务(成功提交)
BEA 机密 | 71
分布式事务(失败)
BEA 机密 | 72
Tuxedo对分布式事务的支持
Tuxedo对分布式事务的支持
生成一个所有事务参与者都理解的事务标识GTRID
它通过TLOG来跟踪活动事务 它向RM发出访问通知,以便RM锁定被访问的记录 它协调两阶段提交,以确保所有的RM都同时提交 出现错误时,它启动一个恢复流程
Tuxedo的事务管理服务器TMS
一个全局事务可能会涉及到多个RM,需要单独为每一个RM创建
TMS
BEA 机密 | 73
TMS与XA协同工作
SQL
GTRID
Server
XA XID
xa_open
Client
tpbegin
tpcommit tpabort
TX ATMI
xa_close
RM
(RDBMS)
GTRID
TMS
XA XID xa_prepare xa_commit xa_rollback
TLOG
BEA 机密 | 74
Tuxedo和Oracle互连(XA模式)
UBB配置文件中
*RESOURCES部分中的MAXGTT *MACHINES部分定义TLOG *GROUP部分定义OPENINFO和TMS,OPENINFO由数据库定义
使用tmadmin>crdl命令创建TLOG设备 创建TMS
在$TUXDIR/udataobj目录下编辑RM文件,定义连接数据库所用的
类库
使用buildtms命令编译TMS
应用中使用tpbegin()/tpcommit()/tpabort()
UBB中定义自动发起事务
BEA 机密 | 75
UBBCONFIG
*RESOURCES
MAXGTT:
最大全局事务数
事务日志文件名,TLOG
*MACHINES
TLOGNAME:
TLOGDEVICE:
TLOGSIZE: TLOGOFFSET:
TLOG的全路径名
TLOG物理页的大小 在TLOGDEVICE中的偏移页
BEA 机密 | 76
UBBCONFIG(续)
*GROUPS
TMSNAME: TMSCOUNT: OPENINFO: CLOSEINFO:
TMS名字 要启动的TMS数量 打开RM的参数 关闭RM的参数
*Services
AUTOTRAN
指定如果请求不在Transaction中,是否自动开始一个事务 默认值:N
TRANTIME
自动启动的Transaction的timeout值 默认值:30秒
BEA 机密 | 77
创建TMS
Oracle
修改RM文件,添加新的入口
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib32 –lclntsh 如果使用的是64位的tuxedo,则链接Oracle 64位的库文件
执行buildtms创建TMS
buildtms -v -o $TUXDIR/bin/TMS_ORA -r Oracle_XA
BEA 机密 | 78
OPENINFO/CLOSEINFO
OPENINFO
建立与RM之间连接的参数 xa_open()的参数
CLOSEINFO
关闭与RM之间连接的参数 xa_close()的参数
Oracle: OPENINFO=“Oracle_XA:Oracle_XA+Acc=P/user/password+SesTm= 120+MaxCur=5+LogDir=.+SqlNet=ORA9” CLOSEINFO=“NONE”
BEA 机密 | 79
创建TLOG
创建TLOG
tmadmin
>crdl –b 1000 –z /opt/tuxedo/samples/atmi/simapp/TLOG
>crlog –m SITE1
跨域事务:自动创建Domain TLOG
BEA 机密 | 80
使用XA事务时需注意的问题
遵循谁发起,谁结束的原则
在程序中 tpbegin() 要和
tpsuspend() 要和
tpcommit() 或者 tpabort() 配对使用
tpresume() 配对使用
参考数据库文档配置RM文件
Oracle 数据库要使用XA,需要进行授权
grant select
on dba_pending_transactions to public
BEA 机密 | 81
如何隐藏OPENINFO中的Password
UBBCONFIG
将用户密码改为5个星号“*”
OPENINFO="Oracle_XA: Oracle_XA+Acc=P/java/*****+SesTm=30+LogDit=/tmp“
tmloadcf时输入密码
BEA 机密 | 82
基本优化策略
现象
使用tmadmin->pq观看到ORACLE的数据库的TMS Server的队列中
请求不断增加,很长时间请求也不会减少。
数据库性能正常
优化方法
设置三个timeout参数有T1<T2<T3的关系
the global transaction timeout T1--->tpbegin(T1); The session idle timeout T2--->SesTm=T2 in OPENINFO; The Oracle system global transaction lock time out T3-->_dirstributed_lock_timeout in init.ora;
增大Oracle默认的参数max_commit_propagation_delay>=9000
BEA 机密 | 83
XA函数的错误返回值
XA函数的错误返回值
在$TUXDIR/include/xa.h文件中定义了XA API函数返回值
#define XAER_ASYNC
-2
/* asynchronous operation already outstanding */ /* a resource manager error occurred in the transaction branch */ /* the XID is not valid */ /* invalid arguments were given */ /* routine invoked in an improper context */ /* resource manager unavailable */ /* the XID already exists */ /* resource manager doing work outside */
#define XAER_RMERR -3 #define XAER_NOTA -4 #define XAER_INVAL -5 #define XAER_PROTO -6 #define XAER_RMFAIL -7 #define XAER_DUPID -8 #define XAER_OUTSIDE -9
BEA 机密 | 84
常见问题(1)
现象
ULOG中出现LIBTUX_CAT:1384: ERROR:
returned –9
xa_start flags 0
XA文件中出现
ORA-24776: cannot start a new transaction xaostart: XAER_OUTSIDE; session in local transaction
BEA 机密 | 85
常见问题(1)续
解决方法
错误原因:如果进程的oracle session处在一个未提交的本地事务中,
则启动全局事务会失败。
禁止本地事物:在OPENINFO设置“+NOLOCAL=T” 避免出现以下问题
在程序中使用了dblink SQL语句的session time后执行了SQL语句导致开始一个本地事务 For example: ---------->tpbegin()
---------->sql 1
---------->sql 2 ---------->sql 3
(<---timeout)
---------->tpcommit()/tpabort()
BEA 机密 | 86
常见问题(1)续
查找出错的SQL语句过程
检查长时间执行的本地事务
select xidusn, start_time, ses_addr from v$transaction; 发现start_time是较早的ses_addr
根据ses_addr查找session id
select sid, process, sql_address from v$session where saddr='%ses_addr%';
根据session id,查询session执行的SQL语句
select sql_text from v$sqltext where 阿address='%sql_address%';
BEA 机密 | 87
常见问题(2)
ERROR: tms_timeout group GRPITFUIF xa_abort returned XAER_RMERR
这个问题的出现是由于事务在回滚时遇到数据库错误
LIBTUX_CAT:1397: WARN: tpreturn transaction processing failure
这个问题的出现是由于应用进程在tpreturn遇到事务处理错误,该
事务将被回滚,通常原因是在tpreturn之前事务已经超时。
建议:请核查应用流程,检查数据库端的事务信息,查看是否有
运行较长时间的事务存在。
DSMP系统
BEA 机密 | 88
内容
Tuxedo 简介 Tuxedo 安装 基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连 Tuxedo和WebLogic Server互连 Tuxedo优化要点
日常监控和维护
BEA 机密 | 89
Tuxedo和WebLogic Server互连
2种方式
JOLT:
单向,只支持从tuxedo到WebLogic Server的调用 客户端方式
WTC
双向:支持Tuxedo与WebLogic Server间的双向调用 域通讯方式
BEA 机密 | 90
Tuxedo客户端分类
根据与服务器通讯方式的不同,客户端可以分为以下四类
Native Client
客户端通过IPC与服务器通讯
Workstation Client
客户端通过TCP/IP Socket与服务器通讯
Jolt Client
Java客户端通过TCP/IP Socket与服务器通讯
Tuxedo CORBA
Client
客户端通过IIOP协议与服务器通讯
BEA 机密 | 91
/WSC
/WSC客户端
WSL
WSH MAXWSCLIENT
BEA 机密 | 92
/WSC工作原理
3 2
WSNADDR
WSL WS SHM WSH Bulletin Board Server
1 4
WSC Client Machine
Server
WSH Server Machine
BEA 机密 | 93
JOLT
Tuxedo客户端的Java形式的API 与/WS技术类似; JSL对应WSL,JSH对应WSH 在Jolt session中进行对象方法调用 可被调用service预先定义在一个repository中 不支持Jolt客户端与服务器端集成的事务 除了notification方式外,只能够单向的通讯 Jolt可以配置连接池:独立运行或者运行在 WebLogic Server上
BEA 机密 | 94
WSL/JSL配置
CLOPT="[ -A ] [servopts_options] -- -n netaddr [-d device] [-w WSHname][-t timeout_factor][-T Client_timeout] [-m minh][-M maxh][-x mpx_factor ] [-p minwshport][-P maxwshport] [-I init_timeout][-c compression_threshold] [-k compression_threshold] [-z bits][-Z bits][-H external_netaddr] [-N network_timeout][-K{client|handler|both|none}]“
-n 指定WSL监听的地址和IP。 -m 初始化WSH的个数 -M 最大WSH的个数 -x 每个WSH同时能处理客户端请求的最大值
BEA 机密 | 95
JSL和WSL的不同
WSH和JSH选择端口方式不同
WSH使用的端口范围可以通过-p和-P指定
JSH使用的端口范围是从JSL占用端口开始向上累加
BEA 机密 | 96
WSL/JSL中的3种超时
-T client-timeout
客户端和WSH之间空闲的时间,超过这个时间后,WSH会断开与客户端的连 接,清除客户端占用的资源。 WSH 计时。连接泄漏时设置。 单位为分钟。默认为0,永不超时
-N network-timeout
客户端连接到WSH后网络上空闲的超时时间。如果在这段时间内没有网络数据 传输,客户端将返回错误,并断开与WSH之间的链接
客户端计时。网络不稳定时可以设置。 单位为秒。默认为0,永不超时
-I init-timeout
客户端tpinit首先连接到WSL,WSL分配WSH让客户端去连接。如果在这个超 时时间内客户端没有连接到WSH,tpinit返回-1。 客户端计时。ULOG经常出现LIBWSC_CAT:1037,LIBWSC_CAT:1059可以增 加SH个数或增大这个值 单位为秒。默认为60秒
BEA 机密 | 97
域的概念
域是Tuxedo应用程序的组织形式和管理单元,只有一个 tuxconfig文件,可以包含多台主机 域可以允许一个客户端跨域访问其他域的服务 TUXEDO通过域可以实现和不同系统的互连
几种类型的域
TDOMAIN(TUXEDO),WTC利用该模式进行互连 OSI TP,
TOPEND
BEA 机密 | 98
Tuxedo域的特性
别名功能:这一特性允许在两个域之间作别名服务映射 高可用性:当远程域失效时,可选择另一个远程域来处理业务请求 可扩展性:便以模块化应用程序设计,便以故障隔离,便以模块的独 立管理 安全性好:支持跨域用户验证和访问控制列表(ACL),提供了跨域 链路加密和口令认证的特性 透明性:客户机不必要知道服务在域之间的分布 事务管理:可跨域作分布式事务协调 支持多域配置 支持跨域的failover和load balance
BEA 机密 | 99
Tuxedo域的组成
BDMCONFIG:二进制配置文件
DMADM:域管理服务器,管理多个GWADM
GWADM:运行时网关管理服务器,从DMADM服务器上获取域信息 GWTDOMAIN:是一个网关进程,在域之间转发消息
dmadmin: 域管理工具
BEA 机密 | 100
域的配置
两个配置文件
UBBCONFIG:指定本地的域服务进程 DMCONFIG: 定义连接的参数,包括本地域,远程域。以及引入
和导出的SERVICE
UBB配置文件中
*RESOURCES段中的DOMAINID:指定域的名称 必须为域服务进程配置指定的组,下面三个服务进程必须在
SERVER段进行配置
DMADM GWADM GWTDOMAIN
BEA 机密 | 101
Tuxedo域的配置DMCONFIG
DM_RESOURCES
定义域全局信息,如版本等,可忽略
DM_LOCAL_DOMAINS
描述本地域网关环境
DM_REMOTE_DOMAINS
描述远程域网关环境
DM_TDOMAIN
定义域网关地址和端口
DM_LOCAL_SERVICES
描述可被远程域访问的本地服务
DM_REMOTE_SERVICES
描述由远程域提供给本地域访问的服务
……..
BEA 机密 | 102
DMADMIN命令介绍
pd 打印域连接的信息
pd –d
domain
co 尝试连接所有的域
co
–d domain
pstats 打印域gateway的状态(需要打开域信息收集)
pstats –d
domain
BEA 机密 | 103
通过dmunloadcf获取域配置文件
把二进制的配置文件反向解析成文本文件
需要正确的环境变量BDMCONFIG
BEA 机密 | 104
Tuxedo域架构图
Tuxedo Domain1
Client Application Code ATMI BEA Tuxedo
Server BEA Tuxedo ATMI Withdrawal Inquiry Domain TLOG GWTDOMAIN
Server BEA Tuxedo ATMI Openc CloseC Domain TLOG GWTDOMAIN
Client Application Code ATMI BEA Tuxedo
Tuxedo Domain2
Domains Administrative Server Machine1 DMADM BDMCONFIG 3 Gateway groups
GWADM Gateway Group
GWADM Gateway Group
Domains Administrative Server Machine1 DMADM BDMCONFIG 2 Gateway groups
Remote Domain
Remote Domain
图2
BEA 机密 | 105
WTC
BEA 机密 | 106
WTC组件
Tuxedo部分
Dom配置文件:定义本地和远程域的信息,导入和导出的服务信
息,域间连接信息
UBB配置文件:定义DMADM/GWADM/GWTDOMAIN
应用:跟调用本地服务相同
WebLogic Server部分
WTC:一个WLS实例一个,定义本地域和远程域的信息,域间连
接信息,导入和导出服务信息
应用以EJB形式存在
BEA 机密 | 107
常见问题(1)客户端连接问题
UBB配置文件中MAXWSCLIENT是否设置
客户端的WSNADDR环境变量是否正确设置
客户端数量是否超出了license许可 WSL/JSL是否正确配置,WSH/JSH数量是否足够 是否有防火墙 分析服务器端的ULOG和客户端的ULOG
BEA 机密 | 108
常见问题(2)
WSNAT_CAT:1175: WARN: Disconnecting listener connection to workstation, request timed out WSNAT_CAT:1174: WARN: Disconnecting listener connection to workstation, connection timed out JOLT_CAT:1175: "WARN: Disconnecting listener connection to Jolt client, request timed out“ 1174的信息表明WSL在将WSH的信息发给客户端后,WSH等 待客户端的连接请求,而这个连接请求到规定时间内没有收到, 需要调整-I的设置;
1175的信息表明主机或者网络繁忙或者没有可用的WSH/JSH导 致客户端连接失败,需要调整(-M)*(-x)
前台服务系统
BEA 机密 | 109
常见问题(3)
WSNAT_CAT:1287: WARN: Forced shutdown of client; user name ''; client name ''; workstation address WSH.10468.1024.0: WSNAT_CAT:1185: INFO: Userid: [], Clientid: [] timed out due to inactivity
/WS客户端非正常退出,不影响系统的正常运行 /WS连接超时,超过-T设置
WSNAT_CAT:1042: ERROR: tpcall() call failed, tperrno = 6
该信息的出现是由于被调用服务不存在导致,生产系统重启应用
服务进程会导致该信息出现
一级BOSS系统
BEA 机密 | 110
常见问题(4)
LIBGW_CAT:1023: ERROR: Service request <QPL_CRM1_L2SVC> from remote site <NETCC> failed:"TPENOENT - no entry found" gwerrno(402017)和 LIBGW_CAT:1023: ERROR: Service request <QPL_CRM1_L2SVC> from remote site <NETCC> failed:"TPESVCERR - server error while handling request" gwerrno(402019) 402017这个问题的出现是Tuxedo GWTDOMAIN在转发请求到 指定应用服务进程时,该应用不存在导致,可能是应用服务进 程在重启;402019这个问题的出现是由于对用的应用服务进程 IPC队列满,请求阻塞导致 网上营业厅系统
BEA 机密 | 111
内容
Tuxedo 简介
Tuxedo 安装 基本配置介绍 管理命令和日志文件分析 Tuxedo和Oracle互连
Tuxedo和WebLogic Server互连
Tuxedo优化要点
日常监控和维护
BEA 机密 | 112
Tuxedo系统架构
Shared Memory
tmboot -y
UBBCONFIG
BBL
WSNADDR
Bulletin Board
TMSYSEVT TMUSREVT TMS /MP BRIDGE
tmloadcf
TUXCONFIG
Client
TCP/IP
/WS WSL/ WSH
IPC Message Queue
Service 1 Service 2
IPC Message Queue /DOMAIN GATEWAY
Dispatch
Service 3 Tuxedo Server
Client Machine
Executable/Container Executable or application layer Machine
tmshutdown -y Server Machine
BEA 机密 | 113
系统性能优良的要点
Tuxedo的是一个性能优良的中间件,它往往不是系统性能 出现问题的原因,当确实是Tuxedo出现问题时,你需要:
找出系统瓶颈 任何东西都不要启动太多 避免低性能的系统操作 安装最新的补丁
BEA 机密 | 114
一些比较耗时操作的要点
tpinit PK Security 大消息的传输 数据压缩
网络
MIB和管理 Userlog Fadd 线程 数据库访问 其它,例如,FML操作 Boolean, tpbroadcast
连接层的数据加密
域 分布式事务
BEA 机密 | 115
服务绑定到服务进程
把业务功能相似的SERVICES绑定到一个SERVER中
把调用了相同链接库或其它资源的SERVICES绑定到一个 SERVER中,减小应用程序的大小,节省磁盘空间 执行时间和优先级相近的SERVICE可放到同一个SERVER中 把调用频率相同的SERVICES绑定在同一个SERVER中 同一个SERVER中的SERVICE最好有相同的服务优先级,如果 不同,优先级最低的那个的请求可能要很长时间才得到处理
BEA 机密 | 116
Tuxedo 性能调优参数
性能的改进参数 (Tuxedo 8.0以后版本)
服务和接口的缓存机制:
UBB中的SICACHEENTRIESMAX
关闭授权和认证功能:
UBB中OPTIONS=NO_AA
关闭XA功能
UBB中OPTIONS=NO_XA
关闭多线程功能
环境变量:TMNOTHREADS=Y
多CPU环境下,UBB中SPINCOUNT
TMS 配置
TMSCOUNT一般设为3 – 5 TMS 本身也要占有数据库连接
BEA 机密 | 117
内容
Tuxedo 简介 Tuxedo 安装 基本配置介绍
管理命令和日志文件分析
Tuxedo和Oracle互连 Tuxedo和WebLogic Server互连 Tuxedo优化要点 日常监控和维护
BEA 机密 | 118
日常监控内容
监控ULOG文件,看有无可疑异常出现,及时告警;
监控操作系统CPU、内存、IO使用情况
监控Tuxedo应用有无请求排队 如有异常出现,及时收集相关信息,及时恢复
BEA 机密 | 119
案例分析(1)内存泄露问题
通过top/vmstat等系统工具判断系统内存的消耗
捕捉泄漏的进程 在UNIX系统中,进程的SIZE只增不减 定期(半天或更长)取ps的状态,在EXCEL中以进程号排序,比较
多次照相中谁在不停增长
TUXEDO BUFFER的合理使用
SERVICE中rqst->data为输入缓存,tpreturn()中的data为输出缓存,
如果输出数据量大于输入,请重新分配内存
BEA 机密 | 120
案例分析(2)Core dump 问题
用dbx/gdb分析CORE文件
dbx
服务进程执行文件 core
dbx>where
在ULOG中定位异常的服务
174011.xxx!BBL.4098.1.0: LIBTUX_CAT:541: WARN: Server
GROUP_XX/30001 terminated
174011.xxx!BBL.4098.1.0: LIBTUX_CAT:557: INFO: Server
GROUP_XX/30001 being restarted
可以配置Restart来暂时缓解
S1
GRACE=3600 RESTART=Y MAXGEN=10
BEA 机密 | 121
案例分析(3)系统堵塞
用tmadmin>pq查看队列情况
用 ipcs 观察IPC资源状态
ipcs -aq
查看消息队列的CBYTES不要接近NBYTES
可能原因:
Server处理缓慢 Server处理繁忙 Server经常发生Core Dump
BEA 机密 | 122
使用跟踪调试
启动 Tuxedo 之前设置环境变量 TMTRACE=(atmi+xa+iatmi|*):ulog:dye,或者 tmadmin>chtr on/off 申请调试包
用操作系统提供的truss命令跟踪进程运行情况
BEA 机密 | 123
相关资源
BEA 在线文档 http://e-docs.bea.com BEA 在线文档 Tuxedo 8.1 http://e-docs.bea.com/tuxedo/tux81/index.htm BEA 在线支持 http://support.bea.com BEA 开发者论坛 (英文) http://dev2dev.bea.com
BEA 开发者论坛 (中文) http://dev2dev.bea.com.cn
Tuxedo 8.1 命令行参考 http://e-docs.bea.com/tuxedo/tux81/rfcm/rfcmd.htm Tuxedo 8.1 系统进程及配置文件参考 http://e-docs.bea.com/tuxedo/tux81/rf5/rf5.htm
BEA 机密 | 124
Thanks!
--转自搜狗