Google

Friday, October 22, 2004

collections of Common config problem

Tuxedo常见应用配置关注事项
都是自己工作中曾经犯过的错或者是觉得容易弄错的地方,整理了部分与大家交流,还有些正在整理中。
1. ubbconfig配置中机器名配置:windows环境中一定要大写,unix中可用uname -n查看。
2. tmboot 起不来常与这几个参数相关,并容易混淆,建议关注。
MAXACCESSERS,MAXSERVERS,MAXSERVICES:这三个参数控制该TUXEDO应用系统对IPC资源的使用情况。
MAXACCESSERS: 在本系统的一个节点(一台服务器)上,同时可以有多少个进程可以访问该TUXEDO系统的公告板,默认值为50,它包括本地客户端进程,SERVER进程,但不包括管理进程如:BBL,DBBL等。
MAXSERVERS: 在本系统中,总共可以有多少个SERVER存在,包括进行管理的SERVER,如:BBL,TMS等。默认值为50。
MAXSERVICES: 在本系统中,总共可以有多少个SEVICE存在, 默认值为100。
MAXCONV: 在一台服务器上最多可以有多少个会话同时存在。范围:0-32768,默认为10
3. 不同版本的tuxedo互连问题:如果是WSL模式:低联高版本在WSL中加入-t参数,如CLOPT=”-A -t ??n//机器名:端口号,高联低版本应在环境变量中设置WSINTOPPRE71=yes;如果是域模式:低联高版本应该在ubbconfig中的 SERVERS配置GWADM的CLOPT中加入-t参数,例如GWADM SRVGRP=LGWGRP SRVID=3 REPLYQ=N CLOPT="-A -t -- "
4. 在dmconfig中如果配置了多个域,并且指定远端域服务时应该指定域服务路由(即远端服务的本地域是什么,远端域是什么),否则报协议错误,例如*DM_REMOTE_SERVICES
SERV_1 LDOM=TDOM1 RDOM=TDOM3 RNAME=SERV_1
SERV_2 LDOM=TDOM1 RDOM=TDOM3 RNAME=SERV_2
5. 用户用tmadmin进入了管理进程,如果没有退出,另外用户用tmadmin进入管理进程,就成为受限管理用户,部分命令不能使用。
6. Tuxedo Domain-level Failover 的工作特点和配置方式:
特点
当本地domain与主的远端domain连接失败时,本地Domain将请求转发到另一个备份的远端domain上。支持自动failback。当主 domain恢复正常时,本地domain可以将请求转发回主domain。CONNECTION_POLICY必须配置成ON_STARTUP或者是 INCOMING_ONLY 。Domain-level要求本地domain与主domain和备份domain之间都建立好socket连接。可以有多个远端的备份domain

配置方法
在Domain 配置文件(dmconfig)中的DM_REMOTE_SERVICES处按以下方法配置Service,用逗号分割Service所在的远端 domain ID,如:RDOM=identifier_1, identifier_2, identifier_3
*DM_REMOTE_SERVICES
DEFAULT: RDOM=R1, R2, R3
TOUPPER
TOLOWER
R1是主domain,后面的是备份domain
7. Tuxedo7.1及其以后的版本才正式支持多线程环境。在6.5版本,在Windows上有个客户端的多线程附加包,安装后可以用多线程方式并发调用服务,而在unix环境下6。5版不支持。
8. 如何在Tuxedo7.1中使用Fprint打印中文,应该配置环境变量 FML_PRINT_NOHEX =yes
9. unix环境下可以通过配置环境变量TUXCONFIG和BDMCONFIG的不同目录,可以在一个用户中启动两套完全独立的BBL和两套应用,并在相应的环境变量下管理相应的应用。
10. 在Tuxedo中有许多关于时间方面的参数,
SCANUNIT :
BBL 系统进程对Bulletin Board的管理和监控是基于时间片的轮询方式,时间片的大小就是SCANUNIT的值,SCANUNIT是Tuxedo对系统进行管理的最基本时间单位,其他许多时间方面的参数均是SCANUNIT的倍数。每隔SCANUNIT,BBL对Bulletin Board进行一次检查,看看有无超时的事务或服务请求。SCANUNIT必须是大于0的5的倍数,最大是60,缺省10,单位为秒。
BLOCKTIME:
服务请求的超时值,BBL发现有超时的Request时,会给相应的Client端发信息,Client端如果在调用时未加TPNOTIME标记,会报错返回,tperrno值为13。由于BLOCKTIME是以SCANUNIT为单位的,所以时间的绝对值为(BLOCKTIME * SCANUNIT),BLOCKTIME缺省为(60/SCANUNIT)。
SANITYSCAN
健全性检查扫描,健全性检查主要检查 Server进程状态和Bulletin Board数据结构, BBL检查Server进程是否存活,如果已经不存在,会清理Bulletin Board中相应的数据项及IPC资源,并根据参数配置决定是否重新启动,如果设了RESTART=Y,所占的Message Queue不会被清,Queue中的Request得到保留,仍会被处理。如果是MP模式,BBL还会给DBBL发状态消息。SANITYSCAN缺省为 (120/SCANUNIT)。
BBLQUERY
BBL检查,在MP模式下,DBBL会每隔一段时间检查是否所有的BBL都发了" I am ok "心跳信息给自己,如果没有收到某个BBL的信息,它会发Request给那个BBL,如果等了DBBLWAIT后仍然没有回复,DBBL会认为那台机器有问题,将其partition。BBL QUERY缺省为(300/SCANUNIT),DBBLWAIT缺省为(20/SCANUNIT)。BBLQUERY必须大于等于 SANITYSCAN,tmloadcf 时会强制检查,如果设的值小于SANITYSCAN,tmloadcf会自动调整为SANITYSCAN。

其它和时间相关的参数还有:
WSL [-I init-timeout]
WorkStation Client和后台建立连接的超时参数值,缺省60秒
WSL [-T Client-timeout]
WorkStation Client和WSH建立连接后,如果在指定的时间内没有信息交互,WSH会自动释放和这个Client端的连接,并将此Client在Bulletin Board中的数据项请空,RollBack它未完成的事务 。

WSL [-N network-timeout]
此值实际上是WorkStation Client在做receive时的超时值,如果发生超时,此操作会出错,WorkStation Client会断开和后台的连接。

SERVICES中的SVCTIMEOUT
如果SERVICE执行时间超过SVCTIMEOUT,BBL会自动将此Server进程Kill掉。

SERVICES中的TRANTIME
如果此SERVICE设置了AUTOTRAN=Y,则此值为事务超时值,超时后Transaction
Manager会自动RollBack此transaction

Introduction to MP mode

Distant Oracle instance connection

Tuxedo Development Tools

http://www.xebia.com/TDDSdatasheet.htm

factors fo the memory usage by GWTDOMAIN and WSH

Hi!

What factors does the memory usage by GWTDOMAIN and WSH depend on?

Lechu


Lechu,

Factors I can think of off the top of my head (by guessing, based on a recollection of the internals from a few years ago) are:

Number of requests concurrently passing through the process

Size of the requests

(in the case of the WSH) number of connected clients

The process size may also vary with the number of concurrent active transactions.

As I say, this is not an exhaustive (or necessarily 100% correct) list, but it will give you a start.

Do you have any issues with process size?

Peter.


Lechu,

I suppose your question comes from experiencing some problems with the memory occupied by GWTDOMAIN and WSH? Both have been notorious in the past (especially GWTDOMAIN) for suffering from memory leaks and a lot of rolling patches have been issued with Tuxedo 6.x and 7 to alleviate the problems. So, if you have any problems, the first thing that I would recommend is to checkt the list of rolling patches for your version of Tuxedo and consider upgrading to the most recent rolling patch, if that might help you.

Winfried

Wednesday, October 20, 2004

Introduction to EAI

[PROGRAMMING] Tpinit failed --buildclent -w

我在服务器上使用客户端已经可以查询出数据库中的数据了,但是在其他的机器上,设置了环境变量WSNADDR=//10.31.202.248:6301,可是运行程序时提示:Tpinit failed错误?

客户端编译时加上-w 参数
-w
指定了当前的应用程序需要链接的库文件。

Tuxedo 提供两种客户端类型:Native client与Workstation client。在做buildclient的时候,两种类型的客户端程序链接的库文件是不一样的,所以用-w指定客户端是WS/C类型的,此类客户端的程 序在初始化的时候会自动读取环境变量WSNADDR的值,建立与服务器端的连接,当然这一切都是由Tuxedo自动完成的。

-w
specifies that the client is to be built using the workstation libraries. The default is to build a native client if both native mode and workstation mode libraries are available. This option cannot be used with the -r option.