<P></P><P>Tuxedo 9.0 for AIX与Oracle 10 XA连接 网友:chinakkee 发布于: 2006.11.13 09:54 (共有条评论) 查看评论 | 我要评论 系统说明 TUXEDO版本:9.0 安装目录 /opt/bea/tuxedo9.0 ORACLE版本:10.2.0.1 安装目录 /u01/app/oracle 一、Tuxedo 9 for AIX的安装 1、创建一个用户为Tuxedo,用户组为bea 2、创建/opt/bea为tuxedo的安装目录, $mkdir /opt/bea $chown tuxedo.bea /opt/bea $chmod 770 /opt/bea #bootinfo -k 64 $ sh tuxedo9_aix53_64.bin -i console Preparing to install... WARNING: /tmp does not have enough disk space! Attempting to use /home/tuxedo for install base and tmp dir. Extracting the JRE from the installer archive... Unpacking the JRE... Extracting the installation resources from the installer archive... Configuring the installer for this system's environment... Launching installer... Preparing CONSOLE Mode Installation... =============================================================================== Choose Locale... ---------------- ->1- English CHOOSE LOCALE BY NUMBER: 1 =============================================================================== (created with InstallAnywhere by Zero G) ------------------------------------------------------------------------------- =============================================================================== Introduction ------------ BEA End User Clickwrap 001205 Copyright (c) BEA Systems, Inc. All Rights Reserved. DO YOU ACCEPT THE TERMS OF THIS LICENSE AGREEMENT? (Y/N): y =============================================================================== Choose Install Set ------------------ Please choose the Install Set to be installed by this installer. ->1- Full Install 2- Server Install 3- Full Client Install 4- Jolt Client Install 5- ATMI Client Install 6- CORBA Client Install 7- Customize... ENTER THE NUMBER FOR THE INSTALL SET, OR PRESS TO ACCEPT THE DEFAULT : 1 =============================================================================== Choose BEA Home --------------- 1- Create new BEA Home 2- Use existing BEA Home Enter a number: 2 1- /opt/bea Existing BEA Home directory: 1 =============================================================================== Choose Product Directory ------------------------ 1- Modify Current Selection (/opt/bea/tuxedo9.0) 2- Use Current Selection (/opt/bea/tuxedo9.0) Enter a number: 2 =============================================================================== Pre-Installation Summary ------------------------ Please Review the Following Before Continuing: Product Name: Tuxedo 9.0 Install Folder: /opt/bea/tuxedo9.0 Link Folder: /home/tuxedo Disk Space Information (for Installation Target): Required: 386,803,702 bytes Available: 2,625,392,640 bytes PRESS TO CONTINUE: =============================================================================== Ready To Install ---------------- InstallAnywhere is now ready to install Tuxedo 9.0 onto your system at the following location: /opt/bea/tuxedo9.0 PRESS TO INSTALL: =============================================================================== Installing... ------------- [==================|==================|==================|==================] [------------------|------------------|------------------|------------------] =============================================================================== Configure tlisten Service ------------------------- Password: tuxedo Verify Password: tuxedo Password Accepted! Press "Enter" to continue. =============================================================================== SSL Installation Choice. ------------------------ Would you like to install SSL Support? ->1- Yes 2- No ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS TO ACCEPT THE DEFAULT: : 2 =============================================================================== License Installation Choice --------------------------- Would you like to install your license now? ->1- Yes 2- No ENTER THE NUMBER FOR YOUR CHOICE, OR PRESS TO ACCEPT THE DEFAULT: : 2 =============================================================================== Installation Complete --------------------- Congratulations. Tuxedo 9.0 has been successfully installed to: /opt/bea/tuxedo9.0 PRESS TO EXIT THE INSTALLER: 安装完毕,需要把license文件重命名为lic.txt copy到$TUXDIR/udataobj/ 二、TUxedo 9 连接 Oracle 10g配置 前提是在Tuxedo 9 上安装Oracle 10g client还有安装C编译器(不一定要用Visual Age C/C++ 7,这里我用的是pro c),设置Tuxedo用户能够通过sqlplus连接oracle数据库 1、ORACLE的的配置 sqlplus
system@testcrm[/email] SQL> @$ORACLE_HOME\rdbms\admin\xaview.sql SQL>grant select on v$xatrans$ to public with grant option; SQL>grant select on v$pending_xatrans$ to public with grant option; SQL>grant select EMP to Scott SQL>GRANT SELECT ON DBA_PENDING_TRANSACTIONS TO Scott; 注:scott默认为lock,需要用alter user scott account unlock,解锁。 2、设置Tuxedo用户的.profile文件 PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:.TH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin /X11:/sbin:. TUXDIR=/opt/bea/tuxedo9.0 APPDIR=/opt/bea/tuxedo9.0/test TUXCONFIG=$APPDIR/tuxconfig CCOMP=/usr/vac/bin PATH=$PATH:$TUXDIR/bin:$CCOMP :$ORACLE_HOME/bin export ORACLE_BASE=/home/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/client_1 export ORACLE_SID=ORCL export ORACLE_TERM=vt100 export NLS_LANG="AMERICAN_America.ZHS16GBK" export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/network/lib:/usr/lib:$ORACLE_HOME/lib:$TUXDIR/lib export PATH APPDIR TUXDIR TUXCONFIG CCOMP if [ -s "$MAIL" ] # This is at Shell startup. In normal then echo "$MAILMSG" # operation, the Shell checks fi 3、修改$TUXDIR\udataobj目录下的RM文件 把以Oracle_XA:xaosw:开头的一行用#注释掉,并加入一行: Oracle_XA:xaosw:-L${ORACLE_HOME}/lib ${ORACLE_HOME}/precomp/lib/cobsqlintf.o -lclntsh 注意空格 3、在TUXEDO用户下创建TMS文件:TMS_ORA10g,TUXEDO通过TMS_ORA10g与ORACLE数据库采用XA协议进行通讯 buildtms -o $TUXAPP/TMS_ORA10g -r Oracle_XA 4、配置 UBBCONFIG #ghts Reserved. #ident "@(#) samples/atmi/simpapp/ubbsimple $Revision: 1.5 $" #Skeleton UBBCONFIG file for the TUXEDO Simple Application. #Replace the items with the appropriate values. *RESOURCES IPCKEY 32770 #DOMAINID simpapp MASTER simple MAXACCESSERS 100 MAXSERVERS 50 MAXSERVICES 100 MODEL SHM LDBAL N *MACHINES "Server" LMID=simple APPDIR="/opt/bea/tuxedo9.0/test" TUXCONFIG="/opt/bea/tuxedo9.0/test/tuxconfig" TUXDIR="/opt/bea/tuxedo9.0" TLOGDEVICE = "/opt/bea/tuxedo9.0/test/TLOG" TLOGNAME=TLOG TLOGSIZE=100 *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO="ORACLE_XA:Oracle_XA+Acc=P/scott/scott+sqlNet=ORCL+SesTm=100+LogDir=.+MaxCur=5" TMSNAME="TMS_ORA10g" TMSCOUNT=2 *SERVERS DEFAULT: CLOPT="-A" test SRVGRP=GROUP1 SRVID=1 *SERVICES 注意OPENINFO中P/scott/scott+sqlNet=ORCL需要根据实际情况自定义,还有机器名“server”,必须与uname -n显示的机器名一致 使用 $tmloadcf -y ubbsimple 生产TUXCONFIG文件 5、用TMADMIN创建TLOG文件,TUXEDO用一个文件TLOG记录对数据库操作的日志。用于协调分布式数据库的提交与回滚。 $tmadmin >crdl -b 500 -z $TUXAPP/TLOG >crlog -m simple >q 6、重命名下列文件,因为下列文件名与ORACLE带的文件名有冲突 TUXEDO安装路径$TUXDIR/include目录下的下面文件 把sqlca.h 改名为 sqlca.h.bak 把sqlcode.h 改名为 sqlcode.h.bak 把sqlda.h 改名为 sqlda.h.bak 7、服务端的程序:test.pc,功能:根据客户端传的EMPNO到表EMP中取ENAME的值,并把它返回给客户端 编写客户端程序: testcli.c 功能:调用TUXEDO服务端的服务TEST,取EMPNO=7900所对应的ENAME的值,并显示出来 这里为没有写代码,因为我发现我到网搜索的测试代码都没法通过。 五、编译服务端程序 1.用ORACLE的PROC把test.pc 文件预编译成test.c文件 $ proc test.pc include=$TUXDIR\include 2.用buildserver把test.c编译成可执行文件,注意-r 后带的Oracle_XA 与RM文件中的一致。 $ buildserver -o test -f test.c -r Oracle_XA -s TEST 编译客户端程序 $ buildclient -o testcli -f testcli.c 8、用 tmboot –y 启动TUXEDO 应能看到所有的SERVER都启动成功。这时,我们的服务端程序test 会自动与ORACLE数据库建立连接,并一直保持这个连接, 直到TUXEDO系统或ORACLE数据库关闭。所以在我们的程序test.pc中看不到与数据库连接的语句,因为现在与数据库的连接由TUXEDO自动管理。 如果TMS_ORA10g启动失败会在当前目录生成一个*.trc文件,记录失败的原因,同时TUXEDO的ULOG文件中也会有一些错误信息。可参考这些错误信息进行错误分析。 $ tmboot -y Booting all admin and server processes in /opt/bea/tuxedo9.0/test/tuxconfig INFO: BEA Tuxedo, Version 9.0, 64-bit, Patch Level 002 INFO: Serial #: 454493271161-2143645176821, Expiration NONE, Maxusers 5 INFO: Licensed to: Shenzhen Edensoft Information Booting admin processes ... exec BBL -A : process id=409822 ... Started. Booting server processes ... exec TMS_ORA10g -A : process id=282686 ... Started. exec TMS_ORA10g -A : process id=401624 ... Started. exec test -A : process id=397522 ... Started. 4 processes started. 9、运行客户端程序 运行后应能看到服务端返回的结果。 $ testcli 如果编写的程序没有问题,就能返回值 Tuxedo命令说明 unix&Linux 2007-07-26 17:14:10 阅读436 评论0 字号:大中小 订阅 Tuxedo命令说明 1.日志检查清理。 检查Tuxedo日志,用vi命令查看日志文件内容,检查有无Tuxedo系统出错记录;检查有无服务异常错误记录;检查有无服务被重起记录;对发现的异常记录进行分析;若无异常情况清除无用的历史日志。 2.服务器运行情况。 检查Tuxedo系统和应用的服务器的运行情况,用"ps -e|f|grep server名"查看进程相关信息,如运行时间、占用内存大小等;用tmadmin命令检查看服务器运行情况,执行psr监控服务器运行情况,查看处理的请求数目、忙闲程度。 3.service运行情况。 检查service运行情况,用tmadmin命令中的psc命令查看Tuxed各service的运行情况和处理的交易数。 4.队列使用情况。 检查tuxedo队列的使用情况,用tmadmin命令中的pq命令查看tuxedo各server队列的使用情况,主要查看交易高峰期队列中消息的增加情况,确定是否存在阻塞现象,是否需要对服务数进行调整。 5.客户机连接情况(PCLT)。 检查tuxedoClient的连接情况,用tmadmin命令中的PCLT命令查看tuxedo各客户机的连接情况,检查Max Client参数是否足够,Licence数是否满足并发要求。 6.配置参数配置。 检查tuxedo ubbconfig文件和dmconfig文件,根据以上各项检查结果,查看tuxedo配置文件是否需要调整优化,以使中间件平台良好运行,保存配置文件并归档备案。 7.系统核心参数配置。检查操作系统核心参数配置是否满足目前应用系统规模要求,是否需要调整,根据具体使用的操作系统提供的命令查看核心参数。 8.Tuxedo启动命令 tmboot -y 9.停止命令 tmshutdown -y 10.tmadmin 使用tmadmin命令解释器来检测一个应用程序,并作一些动态的改变,要运行该命令,你必须设置TUXCONFIG环境变量。 11.Tuxedo 服务器端编译命令 当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文件中。 12. 编译C语言客户端程序 当C语言的客户端程序编码完后,需要连接正确的库并编译。使用buildclient可以使该过程容易一点。该命令引用了C语言编译器并按正确的次序连接TUXEDO系统的库。为使用buildclient,应确认客户端程序包含了”atmi.h”,TUXDIR被设了正确的值。命令语法如下: buildclient [-v] –o executable –f first-file [-f first-file] [-l last-file] 此处first-file表示的应该是编译器可以识别的文件。缺省的编译器是cc。一般是.c(c源程序),.C(C++源程序),.o(object)或.a(库)文件。 参数解释如下: -o 生成的可执行文件名 -f 需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。 -l 需要在连接TUXEDO库之前传给编译器的文件名。语法同上。 -v 编译过程显示。 TUXEDO 管理命令简介--转载 1.tmadmin命令的printserver(简写为psr)的简单输出。 列号 描述 1. 服务的可执行文件名 2. 服务连接的队列名 3. 组名 4. 服务的数字id 5. 服务已经处理的请求数 6. 服务处理的全部请求的参数和 服务正在处理的交易,若为IDLE则服务当前是空闲 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 ) : 交易信息 来自GAI的信息本处略去。 2.tmadmin命令的printservice(简写为psc)的简单输出。 列号 描述 1. 交易名 2. 交易函数名 3. 服务可执行文件名 4. 服务所在组名 5. 服务的数字id 6. 提供交易的机器的LMID 7. 交易已经执行的次数 8. 交易当前状态 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 : 队列信息 3.tmadmin命令的printqueue(简写为pq)[qaddress]的简单输出。如果不指定address,所有队列信息将被输出。 列号 描述 1. 队列连接的服务的可执行文件名 2. 字符队列名,是RQADDR参数或一个随机值 3. 连接的服务数 4. 当前队列的所有请求的参数和 5. 实际请求数 6. 平均队列长度 7. 队列所在机器的LMID > 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 客户端信息 来自GAI的信息本处略去。 4.tmadmin命令的printclient(简写为pclt)的输出,来自TUXEDO系统的日志信息。主要有以下信息: 客户端id,用户名和当前状态 登录的LMID和进程号(PID) 服务组和上一访问过的服务组 交易(启动/提交/中断)和会话的统计数字 中继队列id,通知方法和提交控制 列号 描述 1. 已经登录的客户端机器的LMID 2. 用户名,由tpinit()提供的 3. 客户端名,由tpinit()提供的 4. 客户端连接后经过的时间 5. 客户端状态 6. IDLE――表示客户端目前没有任何交易在工作 7. IDLET――表示客户端启动了一个交易 8. BUSY――表示客户端在工作中 9. BUSYT――表示客户端正在交易控制下工作 10. 启动/提交/中断的交易数 > 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 用tmadmin写脚本 输出所有服务/交易/队列信息 $tmadmin 2>&1<&1 <</P><P></P>