tuxedo配置与服务部署

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TUXEDO应用服务配置、部署手册
1. WINDOWS环境下TUXEDO服务端应用程序的部署和配置
1.1 tuxedo的安装
确定安装介质(Tuxedo安装程序)
运行Setup
图表 -1 Tuxedo安装向导
图表-2 Tuxedo安装向导点击“Next”,继续
图表 -3 许可证协议
选择“YES”,继续
图表 -4:选择安装类型
选择“Full Installation”,继续
图表 -5 制定安装路径
路径设为“d:\bea”,继续
图表 -6 产品路径
6.路径设为“d:\bea\tuxedo”,继续
图表 -7安装程序开始拷贝文件
等待安装程序拷贝文件。

图表 -8输入Listen password
输入Listen password,输入两个相同的密码,“lp”,继续
图表 -9安装SSL
选择“NO”,继续
图表-10:安装LDAP
取安装程序的默认值,继续
图表 -11:安装License 选择“no”,继续
图表 -12:Tuxedo安装完毕安装完毕
注意事项
LIC的安装
假设TUXEDO安装在d:\bea\tuxedo,在udataobj子目录中考入lic.txt
1.2 应用程序的配置
关于环境变量的配置,setenv.bat
文件格式如下:
rem Copyright (c) 1995 Novell, Inc.
rem All Rights Reserved
rem THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF
rem Novell, Inc.
rem The copyright notice above does not evidence any
rem actual or intended publication of such source code.
rem Copyright (c) 1995 Novell, Inc.
rem All rights reserved
rem ident "@(#) apps/simpapp/setenv.cmd $Revision: 1.1 $"
set TUXDIR=d:\bea\tuxedo
set WSNADDR=//10.233.128.18:8888
set APPDIR=d:\ydlw
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
set LIB=%LIB%;d:\Oracle\Ora9\precomp\lib\msvc;
set TUXCONFIG=%APPDIR%\tuxconfig
set FIELDTBLS32=qqdata,fhdata,yhfymx,comfld
set FLDTBLDIR32=%APPDIR%;%TUXDIR%\udataobj
call %APPDIR%\VCVARS32.BAT
需要注意的地方用红色标记,其中TUXEDO为tuxedo的安装主目录,APPDIR为应用程序主目录,根据实际情况进行修改。

关于环境变量的配置,ubbconfig
配置文件内容如下:
*RESOURCES
IPCKEY 223357
DOMAINID hnapp
MASTER hn
MAXACCESSERS 1500
MAXSERVERS 800
MAXSERVICES 1000
MODEL SHM
SECURITY APP_PW
LDBAL Y
SCANUNIT 10
BLOCKTIME 30
*MACHINES
WANGXJ LMID=hn
APPDIR="d:\ydlw"
TUXCONFIG="d:\ydlw\tuxconfig"
TUXDIR="d:\bea\tuxedo"
MAXWSCLIENTS=600
*GROUPS
GROUP1
LMID=hn GRPNO=1
*SERVERS
DEFAULT:
RESTART=Y GRACE=3600 MAXGEN=100
interface SRVGRP=GROUP1 SRVID=1 MIN=1 MAX=20
CLOPT="-A –r"
retobank SRVGRP=GROUP1 SRVID=21 MIN=1 MAX=20
CLOPT="-A –r"
sfcxsvr SRVGRP=GROUP1 SRVID=41 MIN=1 MAX=20
CLOPT="-A –r"
sfbcsvr SRVGRP=GROUP1 SRVID=61 MIN=1 MAX=20
CLOPT="-A –r"
dypjsvr SRVGRP=GROUP1 SRVID=81 MIN=1 MAX=20
CLOPT="-A –r"
sfzfsvr SRVGRP=GROUP1 SRVID=101 MIN=1 MAX=20
CLOPT="-A –r"
zffpsvr SRVGRP=GROUP1 SRVID=121 MIN=1 MAX=20
CLOPT="-A –r"
zedzsvr SRVGRP=GROUP1 SRVID=141 MIN=1 MAX=20
CLOPT="-A –r"
mxdzsvr SRVGRP=GROUP1 SRVID=161 MIN=1 MAX=20
CLOPT="-A –r"
pkqqsvr SRVGRP=GROUP1 SRVID=181 MIN=1 MAX=20
CLOPT="-A –r"
pkxysvr SRVGRP=GROUP1 SRVID=201 MIN=1 MAX=20
CLOPT="-A –r"
pkbcsvr SRVGRP=GROUP1 SRVID=221 MIN=1 MAX=20
CLOPT="-A –r"
delaypkxysvr SRVGRP=GROUP1 SRVID=241 MIN=1 MAX=20
CLOPT="-A –r"
delaypkbcsvr SRVGRP=GROUP1 SRVID=261 MIN=1 MAX=20
CLOPT="-A –r"
yhcxsvr SRVGRP=GROUP1 SRVID=281 MIN=1 MAX=20
CLOPT="-A –r"
wdfpcxsvr SRVGRP=GROUP1 SRVID=301 MIN=1 MAX=20
CLOPT="-A –r"
WSL SRVGRP=GROUP1 SRVID=400
CLOPT=" -A -t -- -n //165.116.16.207:8888 -H //10.233.112.18:8888 -p 41076 -P 41080 -m 5 -M 20 -x 10 "
*SERVICES
需要注意的地方用红色标记,其中APPDIR为应用程序主目录, TUXCONFIG
为txuedo的主配置文件位置,TUXDIR为tuxedo安装目录。

含义与setenv.bat
中的一致。

需要修改的地方用红色标记,即*MACHINES下的计算机名与WSL选项
*MACHINES下面字符改为当前银联服务器的名字,注意要大写。

WSL 为工作站相关配置,工作站配置主要是配置-p –P –n –H参数,具体
解释如下:
-p –P指定端口序列,-p为最小端口值,-P为最大端口值。

如果电业局方
有防火墙,与电业局方协商,约定防火墙开放一个端口序列,例如:电业局开
方端口序列为41076 至 41086,文件配置为-p 41076 –P 41086。

如果电业局
方无防火墙,省略两个参数。

-n –H为内网与外网的IP地址
-n为内网的IP地址,即本地银联服务器的地址及TUXEDO的监听端口。

格式为//:port_number,为本地银联服务器的IP地址,port_number为本地银联服务器tuxedo监听端口,默认值为8888。

-H为外网的IP地址,如果电业局方有防火墙而且又作了地址映射的话,需要配置-H参数,-H参数为被防火墙映射后的外网地址。

格式与-n后面的一致,注意tuxedo的监听端口为8888。

编译配置文件
编译配置文件使用tmloadcf命令,使用tuxedo命令之前,先设置环境变量。

即在控制台模式下,先转到d:\ydlw目录下
执行setenv命令。

执行tmloadcf ubbconfig,命令,当出现提示Enter New Application Password:,输入lp,回车后,再输入lp,回车后,出现Really overwrite TUXCONFIG file: d:\ydlw\tuxconfig [y, q] ?,输入y,回车。

配置文件编译完成。

如果编译过程中出现错误,根据错误提示,检查ubbconfig文件的内容。

配置ydlwcfg文件
文件内容如下:
username=ld_data|
password=ld|
connname=newtest|
filepath=c:\bank\|
remotefprestrict=0|
tshrestrict=0|
每一行都以一个|结尾,文件末没有回车。

各项参配置意义如下:
connname 数据库连接的服务名,即oracle的服务名
username 数据库的登陆名
password 数据库的登陆密码
filepath 电子托收文件及批量代扣文件以及相应的返回文件的路径
remotefprestrict 异地发票控制选项,如果是0代表不控制异地发票的打印,即发票可以给任意一个用户使用,如果为1代表,某一个局的发票只能被那个局的用户使用。

tshrestrict 托收户代收控制选项,如果是0代表不限制托收户银行代收,如果为1代表控制托收户在银行代收,即托收用户不充许在银行交费。

1.3 应用程序的编译
当C语言的交易程序编码完后,需要连接正确的库并编译。

使用buildserver可以使该过程容易一点。

该命令引用了C语言编译器并按正确的
次序连接TUXEDO系统的库,连接TUXEDO生成的main()等。

buildserver还用-s参数产生合适的交易名/函数名映射表。

要使用buildserver,必须先正确设定环境变量TUXDIR,PATH,LD_LIBRARY_PATH。

命令语法如下:
buildserver [-v] [–o executable] [-s service2,service3:func] [-f source/object] [-l object/library file]
例:
buildserver –s DEPOSIT –o TLR –f TLR.o –f appinit.o
参数解释如下:
-o 生成的可执行文件名
-f 需要在连接TUXEDO库之前传给编译器的文件名。

如有多于一个的文件名,名字应用空格分隔并用引号引起。

也可以使用多个-f参数。

-l 需要在连接TUXEDO库之前传给编译器的文件名。

语法同上。

-v 编译过程显示。

-b 指定SHM或MP模式。

如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点
-r 连接此处指出的RM库。

该RM的名字必须含在$TUXDIR/udataobj/RM文件中。

1.4 启动程序
输入tmboot –y,回车。

出现启动画面,如果一个服务正常启动出现如:
process id=544 ... Started.的提示,否则的话出现错误提示,如果出现初始化失败等错误,检查ydlwcfg的数据库连接参数是否正确。

1.5 测试程序
如果启动正常完成,执行tmadmin,在出现的交互命令界面内,敲入printserver,回车。

出现的服务列表即为当前已经启动的服务列表,如果能正确的显示列表而且前面启动也未出现错误的话,说明当前服务已经正确的被启动。

1.6 关闭程序
输入 tmshutdown –y,回车,关闭所有服务。

查看当前TUXEDO版本信息,
输入 tmadmin –v,回车
2. LINUX环境下TUXEDO的部署和配置
2.1 Tuxedo的安装
安装很简单,在linux下注意加参数 -i console
主要就是配置环境了,在环境变量中加:
TUXDIR=/home/bea/tuxedo9.1; export TUXDIR
PATH=$TUXDIR/bin:$PATH; export PATH
COBCPY=:$TUXDIR/cobinclude; export COBCPY
COBOPT="-C ANS85 -C ALIGN=8 -C NOIBMCOMP -C TRUNC=ANSI -C OSEXT=cbl"; export COBOPT
SHLIB_PATH=$TUXDIR/lib:$SHLIB_PATH; export SHLIB_PATH
LIBPATH=$TUXDIR/lib:$LIBPATH; export LIBPATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$TUXDIR/lib:$ORACLE_HOME/lib;export LD_LIBRARY_PATH
TUXCONFIG=/home/bea/tuxedo9.1/samples/atmi/simpapp/tuxconfig;export TUXCONFIG
CLASSPATH=$CLASSPATH:TUXDIR/udataobj/jolt;export CLASSPATH WEBJAVADIR=$TUXDIR/udataobj/webgui/java;export WEBJAVADIR FLDTBLDIR32=$TUXDIR/samples/atmi/simpapp;export FLDTBLDIR32; FIELDTBLS32=tt.fml;export FIELDTBLS32;
APPDIR=$TUXDIR/samples/atmi/simpapp;export APPDIR
export NLS_LANG=American_America.ZHS16GBK(这个需要的,否则TMS可能启动不起来)
2.2 常用命令
编译服务器:buildserver -f simpserv.c -o simpserv -s TOUPPER
编译客户端:buildclient [-v] –o executable –f first-file [-f first-file] [-l last-file](没有用过,我是用JAVA写客户端的)
载入配置文件:tmloadcf ubbsimp
启动服务:tmboot -y
停止服务:tmshutdown -y
管理服务:tmadmin
2.3 定义配置文件
修改sample中的simpserv项目的,所以怎么建服务不是很清楚,就是改服务。

主要看ubbsimple配置文件
*RESOURCES
IPCKEY 123456
DOMAINID simpapp
MASTER simple
MAXACCESSERS 100()(这个以及一下几个数字都是改大了点)MAXSERVERS 50
MAXSERVICES 100
MODEL SHM(单机方式,多机方式是MP,不会)
LDBAL N
*MACHINES
DEFAULT:
APPDIR="/home/bea/tuxedo9.1/samples/at mi/simpapp"
TUXCONFIG="/home/bea/tuxedo9.1/samples /atmi/simpapp/tuxconfig"
TUXDIR="/home/bea/tuxedo9.1"
MAXWSCLIENTS=50
TLOGDEVICE="/home/bea/TLOG"(这行以及下面三行是配置连接ORACLE数据库时才加上去的)
TLOGNAME=TLOG
TLOGSIZE=200
devsvr LMID=simple
(机器名,很重要)
*GROUPS
GROUP1
LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/yn_paygo_1_1/yn _paygo_1_1+SqlNet=orcl_20+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA9i" TMSCOUNT=2(这行也是连数据库时才加的,否则原来是OPENINFO=NONE)
WSGRP LMID=simple GRPNO=4 OPENINFO=NONE
JSLGRP LMID=simple GRPNO=5 OPENINFO=NONE
JREPGRP LMID=simple GRPNO=6 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
JSL SRVGRP=JSLGRP SRVID=5 CLOPT="-A -- -n //192.168.2.5:7777 -m 5 -M 10 -x 5"
JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT="-A -- -W -P
/home/bea/tuxedo9.1/samples/atmi/simpapp/jrepository"
WSL SRVGRP=WSGRP SRVID=8888
CLOPT="-A -- -n //192.168.2.5:8888 -x 5 -m 5 -M 10"
*SERVICES
DEFAULT: LOAD=50 AUTOTRAN=Y TRANTIME=30
TOUPPER PRIO=50 ROUTING=INSTR
*ROUTING
INSTR FIELD=INSTR
BUFTYPE="FML32"
RANGES="*:GROUP1"(这部分是把参数改成FML32缓冲区时改的,否则只要在上面SERVICES中写TOUPPER,其他就不需要了)
2.4 修改服务的参数
可以用JREPSVR增加服务,修改服务的参数等:
JREPSVR is Jolt Repository Server
定义如:
JREPSVR SRVGRP=JREPGRP SRVID=6 CLOPT="-A -- -W -P
/usr/bea/tuxedo9.1/udataobj/jolt/repository/jrepository"
一个主机上可以有多个JREPSVR,但 -W的只能有一个,这是指可写,但只有一个jrepository文件可写
-P 指jrepository文件的路径,是必须有的。

如果要修改
appletviewer -J-
Djava.security.policy=d:\jdk1.5.0_06\jre\lib\security\java.policy RE.html
可以连上主机。

要先用policytool.exe编辑java.policy文件,当然也可以另外创建一个policy文件的,需要在policy文件中有socket的connect权限
2.5 连接oracle
XA方式:
2.5.1ORACLE方面改动
必须要装oracle客户端中的PROC *C/C++模块,因为tuxedo服务程序中连接oracle是用嵌入SQL实现的,也有其他方式的,不熟悉了。

而且这个模块在oralce的服务端一般是没有的,不是默认安装的。

@$ORACLE_HOME/rdbms/admin/xaview.sql
grant select on v$xatrans$ to public with grant option;
grant select on v$pending_xatrans$ to public with grant option; grant select any table to public;
2.5.2TUXDO方面改动
修改$TUXDIR/udataobj/RM 文件
把原来的Oracle_XA:xaosw打头的一行注释掉,加:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
在TUXDIR/bin目录下 buildtms -o TMS_ORA9i -r Oracle_XA 创建TMS文件
(RM文件包含所有的资源管理器的入口,它们被tuxedo应用访问。

RM文件在$TUXDIR/udataobj目录下。

每一个入口使用冒号分隔。

第一个字段是资源管理器的唯一名字。

你可以使用任何指定的名字,通常启比较被人容易理解的名字。

第二个字段是xa_switch_t 结构名字。

Oracle叫做 xaosw,oracle7引用的是静态注册。

从oracle后使用另外一个结构xaoswd 用来动态注册。

(具体的查看the Oracle8i Application Developer's Guide - Fundamentals 获得更多信息)
第三个字段是使用空格分隔的建立TM所需要的lib库文件列表。

这些库文件
通过访问RM文件建立tuxedo server 还是需要的。

一旦资源管理器入口正确建立到该RM文件中,就可以build事务管理server了。

RM的例子如下:
如果你没有使用cobol,oracle的RM使用:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
如果使用cobol:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib
${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh)
2.5.3配置UBBCONFIG
在*MACHINES节中增加
TLOGDEVICE="/home/cuiying/temp/simpdb/TLOG"
TLOGNAME=TLOG
TLOGSIZE=200
在*GROUPS节中增加
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/yn_paygo_1_1/yn_paygo_1_1+SqlNet= orcl_20+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA9i" TMSCOUNT=2
2.5.4TUXEDO下的sqlca.h,sqlcode.h,sqlda.h改名
libsql.lib改名(没有找到,只有Libsql.a,libsql.o,暂时还没有改)
执行tmadmin命令
>crdl -b 500 -z /home/cuiying/temp/simpdb/TLOG 创建日志
>crlog -m catsvr(没成功)
>q
2.5.5编译前的准备
编译之前先配置好 $ORACLE_HOME/precomp/admin/pcscfg.cfg 文件,否则可能找不到有些.h文件
sys_include=(/usr/lib/gcc-lib/i386-redhat-
linux/3.2.3/include,/usr/include)--修改的
include=/home/oracle/product/9.2.0.4/precomp/public
include=/home/bea/tuxedo9.1/include/ --增加的
ltype=short
特别注意系统默认的gcc的include目录不准确的,要自己去/usr/lib/gcc-lib目录下去看看
2.6 使用FML缓冲区
tt.fml文件
mkfldhdr或mkfldhdr32命令进行编译生成tt.fml.h文件,在.c文件中include该.h文件。

2.7 编译过程
把服务程序.c文件改成.pc文件
proc simpserv.pc --产生预编译后的.c文件,这是因为.pc文件中有嵌入SQL语句,需要进行预编译
buildserver -f simpserv.c -o simpserv -r Oracle_XA -s TOUPPER 如果有多个c文件:buildserver -f "simpserv.c a.c b.c" -o simpserv -r Oracle_XA -s TOUPPER
头文件不需要写在命令行中,因为.c文件中都包含了。

如果tmloadcf也执行过了,就可以执行tmboot了,客户端就可以调用了。

相关文档
最新文档