Tuxedo中间件 配置维护记录

試著忘記壹切 提交于 2020-03-18 18:08:30

Tuxedo 配置维护手册

 

Tuxedo 作为系统的中间件,其配置主要包括:资源文件的配置和应用环境的配置;其管理和维护主要包括:系统的启动和关闭、日志的跟踪查看工作。

 

Tuxedo应用系统的配置

 

一、应用系统的资源配置,全都包含在两个资源配置文件中(ubbconfig 和dmconfig ),在这两个配置文件中包含了系统所有的应用资源(文件)。

1、  对于ubbconfig文件,可以任意使用一个文件名(如:ubb.txt),使用一种文本编辑工具,将应用系统的资源分类进行配置,相关进程启动数量等等都应该配置在其中,然后设置环境变量TUXCONFIG,使用系统命令:tmloadcf 来将文本文件ubb.txt,转化生成环境变量TUXCONFIG制定的二进制文件。在该文件中主要包含了几个参数的设置:系统所使用的共享内存的键值IPCKEY,针对workstation客户端的监听进程的端口(WSL),多台机器之间互连(登记中心与各网关)的网络地址和端口(NADDR,NLSADDR),数据依赖路由的设定等等。

详细的内容参看《Ubbconfig配置.doc》

参看模版来实现移植或添加应用进程等等。

 

2、  对于dmconfig文件,可以任意使用一个文件名(如:dm.txt),使用一种文本编辑工具,将应用系统的多域互联及互相调用的关系进行配置,包括多域之间互联的地址和端口,然后使用系统命令:dmloadcf 来将文本文件dm.txt,转化成环境变量BDMCONFIG所指定的二进制文件。在该文件中主要包含了在多个域互连时用到的一些设置,主要包括:各个域的定义,各个域通讯连接的地址和端口(NWADDR),本地服务(DM_LOCAL_SERVICES)和远端服务(DM_REMOTE_SERVICES)以及数据依赖路由等等。

详细的内容参看《dmconfig配置.doc》

参看模版来实现移植或添加应用远端或本地服务等等。

 

3、  客户端代码:是指使用编译工具buildclient编译生成的执行代码。在编译过程中,当使用编译参数:-w 时,将连接库wsc等,生成的执行代码将调用远端的服务,即通过环境变量:WSNADDR来查找相应的WSL的地址和端口; 当编译没有使用参数:–w时,生成的执行代码将调用本机的服务,通过环境变量:TUXCONFIG来实现调用相应的服务,如果要调用异域(如:代理集中点到登记中心)的服务,就需要在dmconfig文件中配置和公布服务。

 

4、  服务进程:是指使用编译工具buildserver编译生成的执行代码,不要出现main()函数,启动和关闭要使用Tuxedo的工具:tmboot 和 tmshutdown

 

 

二、应用系统的环境配置,即系统运行时的环境变量的设置

 一般的这些环境变量都放在用户注册是的.profile文件中,也可以根据应用放置在专门的文件中,如:setenv等等,环境的设置主要包括:

TUXDIR:其值为TUXEDO的安装目录。

            例如:TUXDIR=/home/tuxedo 或 TUXDIR=/home/bea

TUXCONFIG:其值为含有绝对路径二进制的资源配置文件的文件名,系统启动、监控、关闭等等都要用到此环境变量,当客户端的代码要调用应用系统的本机服务时也需要使用此变量。

例如:TUXCONFIG=/home/work/etc/tuxconfig

BDMCONFIG:其值为含有绝对路径二进制的多域配置文件的文件名,在使用多域间互联时要用到此环境变量。

      例如:BDMCONFIG=/home/work/etc/dmcomfig

PRINTERDIR:传输文件的放置目录,主要是针对文件传输来使用的。

      例如:PRINTERDIR=/home/work/print

FTP_BLOCK_SIZ:针对文件传输的,每次传输的快的大小,如果没有设置,则系统默认为1024。

例如: FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE

WSNADDR:客户端(workstation)设定的,指向服务器端WSL监听的地址和端口,当客户端的代码要调用系统的远端服务时需要此环境变量。

      例如:WSNADDR=//192.168.42.210:7001

 

Tuxedo 的管理和维护

一、系统的启动:

1、  多机系统的启动(如:登记中心的启动)

首先设置环境变量,在各台机器上启动tlisten进程,一般设置在setenv中,然后在主管理机上,使用命令tmboot启动应用系统

tmboot 命令可以选择使用多个参数:

-A  在各台机器上启动核心的进程(DBBL,BBL)。

-l lmid 启动某一台机器lmid上的全部进程,机器名:lmid是在文件ubb.txt中配置的逻辑名。

-g grpname 启动某一组grpname中的全部进程。

-s server 启动某一个进程server。

2、  单机系统的启动(如:代理集中点的起动)

首先设置环境变量,然后使用命令tmboot

-A  在机器上启动核心的进程(BBL)。

-g grpname 启动某一组grpname中的全部进程。

-s server 启动某一个进程server。

 

二、系统的关闭:

1、  多机系统的关闭(如:登记中心的关闭)

应该在主管理机上,使用命令tmshutdown

tmshutdown 命令可以选择使用多个参数:

-y  关闭各台机器上的全部进程。

-l lmid 关闭某一台机器lmid上的全部进程。

-g grpname 关闭某一组grpname中的全部进程。

-s server 关闭某一个进程server。

2、  单机系统的关闭(如:代理集中点的关闭)

使用命令tmshutdown

-y  关闭机器上的全部进程。

-g grpname 关闭某一组grpname中的全部进程。

-s server 关闭某一个进程server。

 

三、系统的日志跟踪:

1、  使用管理工具tmadmin

运行tmadmin进入管理维护界面

2、  查看系统日志 ULOG.mmddyy

在系统设定的目录下查看日志文件:ULOG.mmddyy和应用系统自己的日志。

 

 

代理集中点的安装和配置

 

一、软件打包

将目前的代理集中点上的配置文件目录~/etc和简单测试目录~/apps打成一个包。在目录~/apps下的内容多适用于测试环境配置结束后是否正常,在系统正常启动运行后就不再有什么作用了。

 

二、系统安装和配置

1、  修改资源管理配置文件:ubb.txt

可以使用任意的文本编辑工具,如vi等等编辑工具,以下同。

修改其中的: IPCKEY,TUXDIR,APPDIR,TUXCONFIG,ENVFILE,ULOGFPX和主机名(通过uname –n看到的)等的值,使之与实际环境相一致。修改 WSL的参数:CLOPT=“-A -- -n 地址:端口…”,使之与实际的环境一致,例如:CLOPT=“-A -- -n 192.168.42.220:7410”。

 

2、  修改域管理配置文件:dm.txt

修改:NWADDR的地址:端口,例如:NWADDR="//192.168.42.231:7310"

要注意在系统中的dm.txt中的DOMAINID要保持一致,即在不同的文件重要有统一的命名。

 

3、  修改环境变量设置文件:setenv,将如下环境变量的值进行修改,使之与实际的配置想符合,以下是参考。

例如:

TUXDIR=/home/tuxedo; export TUXDIR

PATH=$TUXDIR/bin:$PATH:$HOME/runtime:.; export PATH

SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX

                     LIBPATH=$TUXDIR/lib:$LIBPATH; export LIBPATH   ( for AIX )

                     LD_LIBRARY_PATH=/usr/tuxedo/lib: /usr/informix/lib/esql  ( for SCO

NLSPATH=$TUXDIR/locale;export NLSPATH

LANG=C;export LANG

TUXCONFIG=/home/ebistest/config/tuxconfig;export TUXCONFIG

BDMCONFIG=/home/ebistest/config/bdmconfig;export BDMCONFIG

FIELDTBLS32=ftpflds;export FIELDTBLS32

FLDTBLDIR32=$TUXDIR/api105;export FLDTBLDIR32

在SCO、HP、IBM系统上的函数库环境设置有个不相同的环境变量(如:SHLIB_PATH、LIBPATH),需要注意。

针对文件传输的,如果文件较大,可以将环境变量FTP_BLOCK_SIZE的值设置的大一点,如果没有设置该环境变量,则系统默认为1024。例如:

FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE

 

4、  系统启动

首先设置环境变量,可以放在.profile中,也可以执行文件. ./setenv,并创建日志存放目录 ~/log。

然后执行tmboot 即可

 

 

三、故障排除

查看系统日志 ULOG.mmddyy

在系统设定的目录下查看日志文件:ULOG.mmddyy和应用系统自己的日志。

 

登记中心的安装和配置

 

一、软件打包

将目前的登记中心及其网关机上的配置文件目录~/etc和简单测试目录~/apps,及网关机上的~/cjhb打成一个包。在目录~/cjhb下的内容是用于完成成交回报交易的。

二、系统安装和配置

1、  修改资源管理配置文件:ubb.txt

可以使用任意的文本编辑工具,如vi等等编辑工具,以下同。

修改其中的: IPCKEY,TUXDIR,APPDIR,TUXCONFIG,ENVFILE,ULOGFPX和主机名(通过uname –n看到的)等的值,使之与实际环境相一致。修改 WSL的参数:CLOPT=“-A -- -n 地址:端口…”,使之与实际的环境一致,例如:CLOPT=“-A -- -n 192.168.42.220:7410”。

 

2、  修改域管理配置文件:dm.txt,此文件可以放在登记中心机器上,也可以放在网关机器上的响应目录下。

修改:NWADDR的地址:端口,例如:NWADDR="//192.168.42.231:7310"

要注意在系统中的dm.txt中的DOMAINID要保持一致,即在不同的文件重要有统一的命名。

 

3、  修改环境变量设置文件:setenv,将如下环境变量的值进行修改,使之与实际的配置想符合。

例如:

TUXDIR=/home/tuxedo; export TUXDIR

PATH=$TUXDIR/bin:$PATH:$HOME/runtime:.; export PATH

SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX

                     LIBPATH=$TUXDIR/lib:$LIBPATH; export LIBPATH   ( for AIX )

                     LD_LIBRARY_PATH=/usr/tuxedo/lib: /usr/informix/lib/esql  ( for SCO

NLSPATH=$TUXDIR/locale;export NLSPATH

LANG=C;export LANG

TUXCONFIG=/home/ebistest/config/tuxconfig;export TUXCONFIG

BDMCONFIG=/home/ebistest/config/bdmconfig;export BDMCONFIG

FIELDTBLS32=ftpflds;export FIELDTBLS32

FLDTBLDIR32=$TUXDIR/api105;export FLDTBLDIR32

针对文件传输的,如果文件较大,可以将环境变量FTP_BLOCK_SIZE的值设置的大一点,如果没有设置该环境变量,则系统默认为1024。例如:

FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE

 

4、  修改在网关机上的环境设置文件envfilesetenv,将如下的环境变量进行修改,使之与实际的配置想符合。

除了上面列出的还有如下几个变量:

MCHSNDFILE=/tmp/beta/matchsend.txt;export MCHSNDFILE

FSNDLOG=/tmp/beta/Fsnd.log;export FSNDLOG

PRINTERDIR=/tmp/beta; export PRINTERDIR

主要是用于成交回报交易的。

 

5、系统启动

首先设置环境变量,可以放在.profile中,也可以执行命令. ./setenv

然后再登记中心机器上(MASTER)执行tmboot 即可,可以选择分步来启动应用系统,使用:tmboot –A 和 tmboot –l 来逐个启动系统。

 

 

网点的安装和配置

一、软件打包

1、  网点的中间件软件(tuxedo),只是需要一些客户端的库函数等等,在选择workstation模式安装后,将tuxedo的所有文件达成一个包即可。

2、  需要在网点编译时,要注意配置环境变量,参看下面的系统配置。

二、系统的配置

1、  配置环境变量

修改环境变量设置文件(tux.env 或setenv),将如下环境变量的值进行修改,使之与实际的配置想符合。

例如:

TUXDIR=/home/tuxedo; export TUXDIR

PATH=$TUXDIR/bin:$PATH:$HOME/runtime:.; export PATH

SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX

LIBPATH=$TUXDIR/lib:$LIBPATH; export LIBPATH   ( for AIX )

LD_LIBRARY_PATH=/usr/tuxedo/lib: /usr/informix/lib/esql  ( for SCO

NLSPATH=$TUXDIR/locale;export NLSPATH

LANG=C;export LANG

2、  配置与代理集中点相连接的环境变量

各个网点的应用代码都是通过工作站(workstation)方式与代理集中点连结的。因此要配置连结代理集中点的tcp/ip地址和端口。

              例如:

                     WSNADDR=//192.168.42.220:7520; export WSNADDR

                     也可以主机名加端口,例如:

                     WSNADDR=//hp01:7520; export WSNADDR

 

 

常见的问题及解决方法

以下常见的都是在使用中间过程中遇到的问题:

 

一、与数据库的连接问题

在测试中看到,应用代码都是自己去联的数据库,为了保证效率,都是在进程启动的时候预先建立起连接,这样保证了交易进行时的效率;但当数据库出现宕机时,连接也将随之丢失了,这时的应用程序就不能再访问数据库了,在目前的应用中都没有对访问数据库的返回码进行判断,如果是连接失败的可以选择重新连接数据库,而不是退出交易,这样交易又可以正常运行了。

目前,这样的情况出现后,就需要将应用系统重新启动,使应用程序同数据库进行重新连接。

 

 

二、代理集中点上常见的一个问题

在代理集中点上常看到两条队列,键值是32和3e8,这两条队列在写满时,因为监控进程没有及时读队列,常常会影响与之有关的几个进程,只需要将这两条队列清空就可以了。

 

三、系统启动不正常

常见的原因有如下几个:

1、  环境变量没有设好,如上面的所说的各个环境变量。可以到~/etc目录下使用命令:. ./setenv来设置一下。

2、  据库连接失败,这样会导致连接数据库的应用进程不能启动。检查数据库确保能够正常连接后,再重新启动这些进程。

3、  单个进程的问题,比如执行权限等等,参看日志文件来找出原因。

4、  在登记中心使用的是多机互连方式,主管机器负责启动所用的进程,在所有的机器上都要有相应的监听进程:tlisten,对于网关机上的服务,如果网关机宕机或被重新启动时,要将监听进程启动起来,在~/etc目录下,使用命令:. ./setenv即可,然后先在主管机器上运行tmadmin,进入后并执行pcl gwname命令来清理掉网关机得响应信息,再退出并重新启动网关机上的应用系统:tmboot –l gwname。

注:gwname时网关机的逻辑名,在ubb.txt(Ubbconfig)中定义的,不同的网关机有不同的逻辑名。

注:tlisten进程可以多次启动,当该进程已经正常运行时,再次启动会报出错误信息:CMDTUX_CAT:1319: INFO: Terminating tlisten process,在日志文件中也有相应的记录,这说明该进程已经启动了。

5、  如果有某些进程始终在内存中,导致系统不能启动时,可以将这些进程杀掉,并将与之相关的队列和内存也都清掉,然后重新启动系统。

 

 

四、系统关闭不正常

1、  客户端与系统在发生交易或连接,如:tmadmin等等或客户端的某些服务等正在运行,这些都会导致系统的主进程不能正常关闭。

2、  登记中心使用的是多机互连方式,主管机器负责启动和关闭所用的进程,在所有的机器上都要有相应的监听进程:tlisten,对于网关机上的服务,如果网关机宕机或被重新启动时,要将监听进程启动起来,在~/etc目录下,使用命令:. ./setenv即可,然后先在主管机器上运行tmadmin命令,然后执行pcl gwname命令来清理掉网关机得响应信息,再退出并重新关闭网关机上的应用系统:tmshutdown –l gwname。

注:gwname时网关机的逻辑名,在ubb.txt(Ubbconfig)中定义的,不同的网关机有不同的逻辑名。

注:tlisten进程可以多次启动,当该进程已经正常运行时,再次启动会报出错误信息:CMDTUX_CAT:1319: INFO: Terminating tlisten process,在日志文件中也有相应的记录,这说明该进程已经启动了。

3、  如果有某些进程始终在内存中,导致系统不能正常关闭时,可以将这些进程杀掉,并将与之相关的队列和内存也都清掉;这些进程往往都是由于运行中出现的异常导致僵死在内存里了,需要手工干预的。

4、  有时候,有几个操作人员在同时启动系统,会导致系统的某些进程与主进程失去联系,这样就很难关闭了,只好手工来杀掉(kill),并将与之相关的队列、信号灯和共享内存也都清掉(ipcrm)。

 

五、交易连接失败

1、环境变量设置有误,特别是使用客户端代码,直接连接远端服务的;需要重新设定环境变量,如:WSNADDR,TUXCONFIG等等,环境变量设置正确后,再进行交易就可以了。

2、对方交易没有启动,这是的出错代码在日志文件中tperrno=6,是很典型的,找不到相应的服务;检查服务是否存在,重新启动服务即可。

3、在代理集中点上常常因为某条队列(32或 3e8)阻塞,影响几个进程的访问,如操作员注册等会因为超时而失败;只需要将这两条队列清空就可以了。

 

六、成交回报的交易出错

1、  进程(gwreadfs)启动时有错误;检查网关机上环境设置是否正确,查看文件~/etc/envfile中的内容,并根据其中的环境变量MCHSNDFILE和FSNDLOG所指定的文件, 如:~/data/matchsend.txt和~/data/Fsnd.log,看看这两个文件是否存在,否则,启动时会指出文件打不开而出错的。

2、  成交回报的内容没有正确的传到代理集中点上,要检查文件:senderr.log看其中的代理集中点号是否正确,主要是位置是否正确,并且看看在路由表中是否有配置,这类问题在测试初期曾出现过多次。

3、  交易过程中,文件如果被删除掉了,(特别是目前放在临时目录下的这种情况),就需要在启动进程前,手工创建一个同名的空文件matchsend.txt;如果进程已经启动,则需要重新启动该进程。

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!