Tuxedo的配置管理簡(jiǎn)要說(shuō)明
Tuxedo的配置管理簡(jiǎn)要說(shuō)明
Tuxedo的配置管理簡(jiǎn)要說(shuō)明1
一、Tuxedo基本命令2
二、UBB文件配置說(shuō)明3
三、數(shù)據(jù)庫(kù)XA設(shè)置7
3.1 ORACLE XA7
3.2 SYBASE XA8
3.3 INFORMIX XA8
四、Tuxedo多機(jī)方式配置要點(diǎn)9
4.1啟動(dòng)tlisten9
4.2 ubb文件配置9
4.3管理11
五、用JOLT連接Tuxedo和Weblogic11
5.1在Tuxedo上安裝、配置JOLT Server11
5.2 配置Weblogic Server 6.x12
5.3 Example setup13
六、TUXEDO動(dòng)態(tài)配置13
6.1 ?用tmadmin修改配置13
6.2 ?用tmconfig更改TUXCONFIG(UBBCONFIG)14
一、Tuxedo基本命令
#1.設(shè)置環(huán)境變量TUXDIR,APPDIR,TUXCONFIG,LANG(跟OS相關(guān)),LD_LIBRARY_PATH(跟OS相關(guān))
#2.編譯ubb文本生成二進(jìn)制配置文件:tmloadcf –y ubbconfig
#3.所有機(jī)器上運(yùn)行tlisten,具體見(jiàn)文檔中NETWORK一節(jié)
#4.啟動(dòng)tmboot –y
#5.關(guān)閉tmshutdown –y
參數(shù):
-A在所有機(jī)器上啟動(dòng)/關(guān)閉管理的Server進(jìn)程
-M只在MASTER機(jī)器上啟動(dòng)/關(guān)閉管理的Server進(jìn)程
-isrvid ?啟動(dòng)/關(guān)閉某個(gè)server id指定的Server進(jìn)程
-ggrpname啟動(dòng)/關(guān)閉某個(gè)server group名字指定的Server Group
-S啟動(dòng)/關(guān)閉所有應(yīng)用服務(wù)器(LMID)
-sserver-name 啟動(dòng)/關(guān)閉某個(gè)server名字指定的Server進(jìn)程
-llmid option 在指定的機(jī)器上啟動(dòng)/關(guān)閉所有TMS進(jìn)程和應(yīng)用服務(wù)器(LMID)
-Tgrpname 啟動(dòng)/關(guān)閉指定的server group中所有的TMS進(jìn)程
-Blmid 在指定的機(jī)器上啟動(dòng)/關(guān)閉BBL進(jìn)程
-ecommand 指定一個(gè)程序可以當(dāng)在MASTER機(jī)器上啟動(dòng)任何一個(gè)進(jìn)程失敗時(shí)執(zhí)行
-c計(jì)算出當(dāng)前UBB配置的Tuxedo啟動(dòng)最少要占用的系統(tǒng)IPC資源
#用tmunloadcf > generated.ubb 可以得出目前配置得UBB文件所有得參數(shù)值(沒(méi)有設(shè)置的有缺省值)
#用tmloadcf –c或tmboot –c可以計(jì)算出當(dāng)前UBB配置的Tuxedo啟動(dòng)最少要占用的系統(tǒng)IPC資源。
二、UBB文件配置說(shuō)明
UBB配置文件分成*RESOURCES,*GROUP,*SERVER,*SERVICE,*NETWORK等若干節(jié)。DEFAULT表示該節(jié)中所有對(duì)象共有的缺省屬性。
*RESOURCES
#RESOUCES節(jié)提供整個(gè)系統(tǒng)的基本參數(shù)。
IPCKEY55555 (32767-262143)
#進(jìn)行IPC通訊的key值
DOMAINIDunicom ?
#DOMAIN的ID值
MASTERunicom1,unicom2
#指定DOMAIN中的管理主機(jī)為unicom1,運(yùn)行過(guò)程中unicom1若出現(xiàn)問(wèn)題,管理主機(jī)切換至unicom2
MAXACCESSERS ?1000
#這里該值表示整個(gè)系統(tǒng)中單個(gè)機(jī)器上可以訪問(wèn)TUXEDO的最多的Client和Server的總數(shù)(可以訪問(wèn) BBL的最大進(jìn)程數(shù)),應(yīng)大于license用戶數(shù)+server數(shù)(副本應(yīng)記入)。該字段會(huì)被MACHINE部分的MAXACCESSERS覆蓋。
#系統(tǒng)核心參數(shù)中SEMAPHORE的數(shù)目(SEMMNS)要大于這里的MAXACCESSERS數(shù)目,而ipc消息個(gè)數(shù)(MSGMAX)應(yīng)大于MAXACCESSERS數(shù)+所有帶REPLYQ的SERVER的個(gè)數(shù)。
MAXSERVERS80 ?
#最大的server數(shù)(副本應(yīng)記入)
MAXSERVICES200
#最大的service數(shù)(多個(gè)server重復(fù)記入)
MAXGTT20
#系統(tǒng)最多的并發(fā)的全局交易數(shù)目
MODELMP ?
#表示cluster方式,否則為SHM
OPTIONSLAN,MIGRATE ?
#多機(jī)cluster方式時(shí)必須指定為L(zhǎng)AN方式,MIGRATE表示可以以組為單位進(jìn)行機(jī)器間SERVER的遷移。
LDBALY ?
#允許負(fù)載均衡
SCANUNIT10
#SCANUNIT
是BBL在所有服務(wù)請(qǐng)求中定期掃描以尋找超時(shí)的交易和被阻塞德調(diào)用和德間隔時(shí)間(秒)。這個(gè)參數(shù)指定BBL掃描間隔時(shí)間的基本單位,
它會(huì)影響在tpbegin中指定的交易超時(shí)時(shí)間和用BLOCKTIME指定的請(qǐng)求阻塞超時(shí)時(shí)間的精確程度。SANITYSCAN, BBLQUERY,
DBBLWAIT,
BLOCKTIME等參數(shù)都是SCANUNIT的倍數(shù),而不是實(shí)際秒數(shù)。而作為時(shí)間單位SCANUNIT必須是5的倍數(shù),并且滿足0<
SCANUNIT<60。
SANITYSCAN12
#SANITYSCAN的值指定在每個(gè)MACHINE上BBL自動(dòng)檢測(cè)所有進(jìn)程的時(shí)間間隔,以SCANUNIT為單元。缺省值滿足(SCANUNIT*SANITYSCAN)約為120秒。
DBBLWAIT 2
#DBBLWAIT
的值指定DBBL掃描BBL時(shí)等待所有BBL應(yīng)答的最大時(shí)間,以SCANUNIT為單元,即超過(guò)DBBLWAIT*SCANUNIT(秒)就超時(shí)。每一次
DBBL將請(qǐng)求轉(zhuǎn)發(fā)給它的BBL時(shí),BBL會(huì)在請(qǐng)求返回結(jié)果之前先回復(fù)一個(gè)肯定的應(yīng)答。這樣可以定時(shí)檢測(cè)死掉或不正常的BBL。缺省值滿足
(SCANUNIT*DBBLWAIT)的值等于SCANUNIT和20秒兩者之間的最大者。
BBLQUERY30
#BBLQUERY指定DBBL對(duì)所有BBL進(jìn)行狀態(tài)檢查的時(shí)間間隔,它也是以SCANUNIT為計(jì)算單位。如果DBBL的狀態(tài)詢問(wèn)沒(méi)有回答,該BBL就被‘隔離’了。缺省值滿足(SCANUNIT * BBLQUERY) 約為 300秒。
BLOCKTIME6
#BLOCKTIME指定在阻塞隊(duì)列中的被阻塞請(qǐng)求的超時(shí)時(shí)間(包括客戶端從tpinit到tpterm的等待時(shí)間),以SCANUNIT為計(jì)算單位。缺省值滿足(SCANUNIT * BLOCKTIME) 約為60秒。
*MACHINES
DEFAULT:
#該部分對(duì)各主機(jī)進(jìn)行描述。
unicom2LMID=unicom2
APPDIR="/usr/tuxedo/apps/simpapp"
TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig"
TUXDIR="/usr/tuxedo"
UID=17
GID=26
MAXACCESSERS=100
unicom1LMID=unicom1
APPDIR="/usr/tuxedo/apps/simpapp"
TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig"
TUXDIR="/usr/tuxedo"
UID=17
GID=26
MAXWSCLIENTS=50
#unicom2, unicom1為網(wǎng)絡(luò)主機(jī)名用hostname獲得。
#LMID:Logical Machines ID 為tuxedo對(duì)主機(jī)的內(nèi)部邏輯命名。
#APPDIR要求放置SERVER的可執(zhí)行文件。
#TUXCONFIG為全路徑的二進(jìn)制配置文件,要求和環(huán)境變量TUXCONFIG相同。對(duì)于master機(jī)tuxconfig文件是由tmloadcf生成的,而非master機(jī)則是由tmboot啟動(dòng)后由tlisten從master機(jī)上拷貝獲得。
#TUXDIR為tuxedo安裝目錄,要求和環(huán)境變量TUXDIR相同。
#MAXWSCLIENTS表示可連接client的最大個(gè)數(shù)。
*GROUPS
#GROUP1為組名,LMID表示該組運(yùn)行的主機(jī),GRPNO為組號(hào),OPENINFO為該組通過(guò)XA打開(kāi)RM(通常指數(shù)據(jù)庫(kù))的初始串。
GROUP1 LMID=unicom2GRPNO=1 OPENINFO=NONE
GROUP2 ?LMID=unicom3GRPNO=2 OPENINFO=NONE
*SERVERS
#這里描述應(yīng)用服務(wù)器。SRVGRP的該SERVER所屬組名,SRVID為服務(wù)器ID號(hào),MIN表示該服務(wù)器CLOPT提供運(yùn)行的相關(guān)參數(shù),要求是”-A -- ….”,可以在應(yīng)用服務(wù)器的srvinit函數(shù)中獲得這些參數(shù)。
DEFAULT:
CLOPT="-A"
BillServer SRVGRP=GROUP1 SRVID=1 MIN=2 MAX=4
RQADDR=QNAME REPLYQ=Y
CLOPT="-A -o ./out.log –r -e ./err.log --
-p [L][low_water][,[terminate_time]][:[high_water][,create_time]]
如
果MAX>1,并且使用了MSSQ(RQADDR,
RQPERM)的Server可以配置-p來(lái)控制進(jìn)程的增加和減少。控制算法如下:如果請(qǐng)求隊(duì)列中的請(qǐng)求個(gè)數(shù)大于high_water
后超過(guò)create_time 秒,就增加該服務(wù)的一個(gè)新進(jìn)程; 如果請(qǐng)求隊(duì)列中的請(qǐng)求個(gè)數(shù)小于low_water
后超過(guò)terminate_time 秒, 就停止該服務(wù)的一個(gè)進(jìn)程。low_water 缺省是平均每個(gè)服務(wù)進(jìn)程有一個(gè)請(qǐng)求消息或者workload
50;high_water 缺省是平均每個(gè)服務(wù)進(jìn)程有兩個(gè)請(qǐng)求消息或者workload 100。create_time 缺省最小是50秒,
and terminate_time 缺省最小是60秒。
注意:
使用TUXEDO的服務(wù)進(jìn)程池時(shí),用戶自己在程序中如果用alarm()等系統(tǒng)調(diào)用來(lái)停止進(jìn)程是不起作用的,但也不會(huì)報(bào)錯(cuò)。
? ?[L] 標(biāo)記意味著增減服務(wù)進(jìn)程基于負(fù)載而不是請(qǐng)求隊(duì)列的長(zhǎng)度。僅用于SHM模式下并且LDBAL=Y,否則會(huì)報(bào)錯(cuò) (LIBTUX_CAT:1542) ,服務(wù)進(jìn)程也不會(huì)增減。
WSLSRVGRP=GROUP2 SRVID=1
CLOPT="-A -- -n //130.36.0.103:8889 -m 3 -M 10 -x 10 -T 10"
#WSL
用于和client端進(jìn)行連接。-n 表示出接入點(diǎn)為IP:PORT方式,-m –M
表示最小和最大啟動(dòng)多少個(gè)WSH和前端通訊,-x則表示一個(gè)WSH和幾個(gè)client端連接。-T
10表示如果client端和server連接后10分鐘內(nèi)沒(méi)有交易請(qǐng)求則關(guān)閉連接。
*SERVICES
#不要求將所有的service在這里描述,當(dāng)某個(gè)service有特別參數(shù)時(shí)才在SERVICE節(jié)中說(shuō)明。
TOUPPER
LOAD=60 ?// 負(fù)載,當(dāng)LDBAL=Y時(shí)有用
PRIO=80// 服務(wù)在請(qǐng)求隊(duì)列中的優(yōu)先級(jí)
TRANSTIME=120 // 交易時(shí)間
SVCTIMEOUT=600// 服務(wù)超時(shí)時(shí)間
*NETWORK
#NETWORK節(jié)對(duì)多機(jī)之間如何進(jìn)行網(wǎng)絡(luò)連接進(jìn)行描述。
#cluster方式下要求先啟動(dòng)tlisten。事實(shí)上,對(duì)于非master機(jī)啟動(dòng)應(yīng)用服務(wù)器是由tlisten完成的。
#tlisten的啟動(dòng)方式為
#unicom1: tlisten –l //130.36.1.101:8891
#unicom2: tlisten –l //130.36.0.102:8891
#NADDR指定網(wǎng)絡(luò)連接的接入點(diǎn)。
#NLSADDR則指定tlisten的接入點(diǎn)。
#BRIDGE則指TCP連接所用的設(shè)備文件。
unicom2 ? ?
NADDR="http://130.36.0.102:8899"
NLSADDR="http://130.36.0.102:8891"
BRIDGE="/dev/streams/xtiso/tcp"
unicom1
NADDR="http://130.36.0.101:8899"
NLSADDR="http://130.36.0.101:8891"
BRIDGE="/dev/streams/xtiso/tcp"
分類總結(jié)
TypeParameters requiring tuning
IdentificationTUXCONFIG, UID, GID, IPCKEY, DOMAINID
ThresholdsMAXACCESSERS, MAXSERVERS, MAXSERVICES, MAXGTT, MAXCONV, MAXBUFSTYPE, MAXWSCLIENTS
Time-outsSCANUNIT, SANITYSCAN, DBBLWAIT, BBLQUERY, BLOCKTIME
AvailabilityMASTER, MIGRATE, RESTART, GRACE, MAXGEN, RCMD
MachineTYPE, CMPLIMIT, NETLOAD, SPINCOUNT, TLOGDEVICE, PERM
NetworkNADDR, NLSADDR
ServersCLOPT, ENVFILE
ServicesLOAD, PRIO, BUFTYPE, SVCTIMEOUT
WorkstationsWSNADDR, WSRPLYMAX
三、數(shù)據(jù)庫(kù)XA設(shè)置
3.1 ORACLE XA
1.在附件中提供了rm文件,另外建議運(yùn)行oracle的demo文件獲得要連接的所有l(wèi)ib庫(kù)的名稱.然后將這些名稱全部寫(xiě)在RM文件中.
如: #Oracle 8i for NT
Oracle_XA;xaosw;%ORACLE_HOME%\RDBMS\XA\ORAXA8.LIB
%ORACLE_HOME%\PRECOMP\LIB\MSVC\ORASQL8.LIB
%ORACLE_HOME%\PRECOMP\LIB\MSVC\ORASQX8.LIB
%ORACLE_HOME%\OCI\LIB\MSVC\OCI.LIB %ORACLE_HOME%\OCI\LIB\MSVC\OCIW32.LIB
#Oracle 8i for Unix
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
2.ubb 文件中 *GROUP節(jié)加上
?TMSNAME=TMS_ORA
?TMSCOUNT=3 ?OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTM=120+LogDir=.+SqlNet=abcde"
具
體在Oracle聯(lián)機(jī)文檔Application Development->oracle8 Application
Development's Guild->Oracle XA->Defining the xa_open String中提供了解釋
3.在oracle用sys用戶登錄sqlplus,
a)運(yùn)行${ORACLE_HOME}/rdbms/Admin/xaview.sql,
b)grant select on v$xatrans$ to public;
c)grant select on dba_pending_transactions to scott;
d)commit;
4.運(yùn)行 buildtms -o $(TUXDIR)/bin/TMS_ORA -r Oracle_XA
5.
在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen(), ?tpsrvdone()中EXEC SQL
DISCONNECT...改成tpclose(); 實(shí)際可拷貝$TUXDIR/apps/bankapp/appinit.c
6.需在ubb文件中MACHINE節(jié)指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
? TLOGSIZE=500
7.建立TLOG文件直接拷貝$TUXDIR/apps/bankapp/crtlog.sh.設(shè)定相關(guān)的環(huán)境變量后運(yùn)行該shell文件.
8.啟動(dòng)事務(wù)用tpbegin(3,0),提交回滾用tpcommit/tpabort.
3.2 SYBASE XA
1.在RM文件,運(yùn)行sybase獲得要連接的所有l(wèi)ib庫(kù)的名稱.然后將這些名稱全部寫(xiě)在RM文件中:#Sybase_11 for NT
SYBASE_XA_SERVER;sybase_xa_switch;C:\SYBASE_SERVER\lib\libxasrvlib.lib
2.ubbconfig 文件中的 *GROUP節(jié)
TMS_NAME=TMS_SYB TMSCOUNT=3 ?OPENINFO=" SYBASE_XA_SERVER: -Uuserid1 -Ppassword1 -Nconnection2 -Lxa_log -Tall "
具體察看Sybase文當(dāng)中xa_open String中提供了解釋
3.運(yùn)行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r SYBASE_XA_SERVER
4.
在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL
DISCONNECT...改成tpclose(); 實(shí)際可查看$TUXDIR/apps/bankapp/appinit.c
5.需在ubb文件中MACHINE節(jié)指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
? TLOGSIZE=500
6.建立TLOG文件直接拷貝$TUXDIR/apps/bankapp/crtlog.sh.設(shè)定相關(guān)的環(huán)境變量后運(yùn)行該shell文件.
7.啟動(dòng)事務(wù)用tpbegin(3,0),提交回滾用tpcommit/tpabort.
3.3 INFORMIX XA
1.
運(yùn)行esql
-lib獲得要連接的所有l(wèi)ib庫(kù)的名稱.然后將這些名稱全部加到RM文件中INFORMIX-OnLine:infx_xa_switch:$
{INFORMIXDIR}/lib/esql/libinfxxa.a /usr/informix/lib/esql/libixos.a
/usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixsql.a
/usr/informix/lib/libixasf.a /usr/informix/lib/esql/libixos.a
/usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixgls.a
-lnsl_s -lm -lV3 -lcl -lsec /usr/informix/lib/esql/libixglx.a
2.ubbconfig 文件中
*GROUP節(jié) TMS_NAME=TMS_INFO TMSCOUNT=3 ?OPENINFO="INFORMIX-OnLine:test_tux"
具體察看Sybase文當(dāng)中xa_open String中提供了解釋
3.運(yùn)行 buildtms -o $(TUXDIR)/bin/TMS_INFO -r INFORMIX-OnLine
4.
在tpsvrinit()中EXEC SQL CONNECT ...改成 tpopen, tpsrvdone()中EXEC SQL
DISCONNECT...改成tpclose(); 實(shí)際可查看$TUXDIR/apps/bankapp/appinit.c
5.需在ubb文件中MACHINE節(jié)指定TLOGDEVICE,TLOGSIZE
例:TLOGDEVICE="/home/usr1/TLOGDEV"
? TLOGSIZE=500
6.建立TLOG文件直接拷貝$TUXDIR/apps/bankapp/crtlog.sh.設(shè)定相關(guān)的環(huán)境變量后運(yùn)行該shell文件.
7.啟動(dòng)事務(wù)用tpbegin(3,0),提交回滾用tpcommit/tpabort.
四、Tuxedo多機(jī)方式配置要點(diǎn)
tuxedo多機(jī)方式配置有兩個(gè)方面
4.1啟動(dòng)tlisten
tlisten在tuxedo啟動(dòng)時(shí)扮演控制者的角色,在非master機(jī)上由tlisten啟動(dòng)bbl和應(yīng)用服務(wù)器,tlisten的啟動(dòng)方法為
tlisten ? -l //hostip:ipport
1.注意這里的ipport必須和ubb文件中NETWORK域的NLSADDR一致,最好都用IP地址,以避免雙方對(duì)同一機(jī)器名解釋出不同的IP地址。
2. tlisten必須在所有的機(jī)器上啟動(dòng),啟動(dòng)后才能運(yùn)行tmboot.建議操作系統(tǒng)啟動(dòng)時(shí)就運(yùn)行tlisten.
3.
注意各個(gè)節(jié)點(diǎn)的tlisten都有PASSWORD,存在%APPDIR%\.adm\tlisten.pw文件下,如果那里沒(méi)有,就讀TUXEDO的%
TUXDIR%\udataobj\tlisten.pw文件中的內(nèi)容。各節(jié)點(diǎn)的tlisten
password要保證絕對(duì)一樣(包括回車?。?。否則會(huì)報(bào)錯(cuò):‘Security Violation’。
4.2 ubb文件配置
對(duì)于多機(jī)模式一般就是指單一domain管理的多臺(tái)機(jī)器,所有機(jī)器上僅需要一個(gè)ubb文件,以下是ubb文件的模板
*RESOURCES
IPCKEY80952
MAXACCESSERS40
MAXSERVERS35
MAXSERVICES75
MASTERSITE1,SITE2
OPTIONSLAN,MIGRATE ? ?// MIGRATE表示MASTER可以動(dòng)態(tài)遷移
MODELMP// 多機(jī)模式
*MACHINES
"PATRICK"LMID="site1"
APPDIR="D:/Bea/tuxedo/samples/atmi/simpapp"
TUXCONFIG="d:/Bea/tuxedo/samples/atmi/simpapp/tuxconfig"
TUXDIR=" d:/Bea /tuxedo"
UID=0
GID=0
TYPE="NT"
MAXWSCLIENTS=5
MAXACCESSERS=40
"test60"LMID="site2"
APPDIR="/bea/tuxedo/samples/atmi/simpapp"
TUXCONFIG="/bea/tuxedo/samples/atmi/simpapp/tuxconfig"
TUXDIR="/bea/tuxedo"
UID=1002
GID=101
TYPE="Sun"
MAXWSCLIENTS=15
MAXACCESSERS=100
*GROUPS
GROUP1 LMID=site1GRPNO=1OPENINFO=NONE
GROUP2 LMID=site2GRPNO=2OPENINFO=NONE
*SERVERS
DEFAULT:DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A"
WSLSRVGRP=GROUP1 SRVID=20 CLOPT="-A -- -n //10.128.5.201:9009"
WSLSRVGRP=GROUP2 SRVID=10 CLOPT="-A -- -n //10.128.5.200:9009"
simpservSRVGRP=GROUP1 SRVID=3
simpservSRVGRP=GROUP2 SRVID=4
*SERVICES
*NETWORK
site1NADDR="http://10.128.5.201:6044"
? ? ? ?NLSADDR="http://10.128.5.201:6045"
site2NADDR="http://10.128.5.200:6044"
NLSADDR="http://10.128.5.200:6045"
# ?BRIDGE="/dev/tcp"
4.3管理
只能在master機(jī)上運(yùn)行tmadmin進(jìn)行管理。要獲得統(tǒng)計(jì)信息在tmadmin中應(yīng)運(yùn)行default –m命令。
$tmadmin
>default –m SITE1
>psr
>bbi
當(dāng)MASTER主機(jī)意外當(dāng)機(jī)時(shí),TUXEDO仍可以正常運(yùn)行,可以在backup的節(jié)點(diǎn)上手工做MASTER的動(dòng)態(tài)遷移,在當(dāng)前的backup節(jié)點(diǎn)上 DBBL充當(dāng)MASTER。
$tmadmin
>m
Windows NT/2000下要注意的問(wèn)題:
1.由于NT機(jī)器上MAXACCESSORS受IPC的限制通常較小,因此建議在MACHINES部分單獨(dú)設(shè)置MAXACCESSORS.
2.在MACHINES部分要單獨(dú)設(shè)置UID=0和GID=0
3.和其他類型的CPU機(jī)器互連時(shí),在MACHINES部分一定要指定不同的TYPE.否則將提示tlisten版本不匹配。
TUXEDO在SERVER和CLIENT之間進(jìn)行數(shù)據(jù)交換缺省進(jìn)行數(shù)據(jù)翻譯,但一個(gè)domain的server之間缺省不進(jìn)行數(shù)據(jù)翻譯!
5.有時(shí)LANG環(huán)境變量無(wú)法改變?yōu)镃, 可以在 %TUXDIR%\locale創(chuàng)建文件夾 mkdir %LANG%.
6.RM文件使用中發(fā)現(xiàn)有效的RM后一定要有回車,否則將報(bào)RM不存在.
五、用JOLT連接Tuxedo和Weblogic
5.1在Tuxedo上安裝、配置JOLT Server
1 – 安裝JOLT Server
2 -- set your environment
?set TUXDIR=d:\bea\tuxedo
set JOLTDIR=%TUXDIR%\udataobj\jolt
?set APPDIR=%TUXDIR%\samples\atmi\simpapp
?set PATH=%TUXDIR%\bin;%JOLTDIR%\bin;%APPDIR%;%PATH%
?set NLSPATH=%TUXDIR%\locale\C
?set TUXCONFIG=%APPDIR%\tuxconfig
3 – added in UBBconfig file
JSLSRVGRP=GROUP1
SRVID=6 CLOPT="-A -- -n //10.128.5.112:9001"JREPSVRSRVGRP=GROUP1
SRVID=7 CLOPT="-A -- -W -P
d:\Bea\tuxedo\udataobj\jolt\repository\jrepository"JREPSVRSRVGRP=GROUP1
SRVID=8 CLOPT="-A -- -P
d:\Bea\tuxedo\udataobj\jolt\repository\jrepository"
5.2 配置Weblogic Server 6.x
1,Download
the Jolt client package for WLS from developer.bea.com, unzip it and
copy the jar file to %WL_HOME%\lib. ?Then add the jar files into your
Weblogic domain environment file:
?classpath=%classpath%;%WL_HOME%\lib\jolt.jar;%WL_HOME%\lib\joltweblogic.jar
2,Config Jolt pool manager startup class ?in Weblogic
?a,start Weblogic and access the console
?b,create Startup class and Shutdown class
? ?in console:Deployments->Startup & Shutdown,right click
? select create a new StartUp class...:
? ? ?name:demojoltpoolStartup
? ? classname:bea.jolt.pool.servlet.weblogic.PoolManagerStartUp
3,Create a jolt pool
?in console:Services->Jolt,right click
? ? Select the panel:Configuration
? ? in TAB General
? ? name:demojoltpool
? ? Minimum Pool Size:1
? ? Maximum Pool Size:3
? ? Click the button "Create"
? ? in TAB address
? ? ? ?Primary Address://hostname:port
? ? ? ?Failover Address://hostname:port
? ? Click the button "Apply"
? ? Select Targets:
? ? ? ?in Listbox Available:
? ? ? ? select your server add into the listbox Chosen
? ? Click the button "Apply"
4. Restart your Weblogic
5.3 Example setup
1.Run %WL_HOME%\config\example\setExampleEnv.cmd,
2.compile the SimpAppServlet by:
javac -d %EX_WEBAPP_CLASSES% SimpAppServlet.java
3.Edit WL_HOME%\config\examples\applications\examplesWebApp\WEB-INF\web.xml
add the servlet description:
?<servlet>
? ?<servlet-name>JoltServlet</servlet-name> ?
?<servlet-class>examples.jolt.servlet.simpapp.SimpAppServlet</servlet-class>
?</servlet>
?<servlet-mapping><servlet-name>JoltServlet</servlet-name>
<url-pattern>/joltservlet</url-pattern>
?</servlet-mapping>
4.Edit a html and put it to %WL_HOME%\config\examples\applications\examplesWebApp
內(nèi)容包含調(diào)用JoltServlet
Type
some text here and click the Post button:<form name="simpapp"
action="joltservlet" method="post"><input type="hidden"
name="SVCNAME" value="TOUPPER"><input type="text"
name="STRING"></td><input type="submit"
value="Post!"></form>
5.Goto %WL_HOME%\config\example, start the examples domain,
6.Access http://localhost:7001/examplesWebApp/jolt.html
六、TUXEDO動(dòng)態(tài)配置
TUXEDO
的動(dòng)態(tài)配置可以通過(guò)tmadmin和tmconfig兩個(gè)命令行工具實(shí)現(xiàn)不同級(jí)別的配置修改。tmadmin的作用主要是監(jiān)控TUXEDO的運(yùn)行,可以修
改服務(wù)的參數(shù);而tmconfig功能更強(qiáng)大,可以在線修改當(dāng)前TUXEDO的系統(tǒng)UBB配置,即通過(guò)MIB修改用UBBCONFIG生成的二進(jìn)制
TUXCONFIG在內(nèi)存的拷貝。
6.1 ?用tmadmin修改配置
進(jìn)入tmadmin后用命令help可以列出所有命令。
6.2 ?用tmconfig更改TUXCONFIG(UBBCONFIG)
tmconfig工具實(shí)際上遍歷TUXCONFIG的內(nèi)容并通過(guò)MIB API修改其配置。要正確運(yùn)行tmconfig,建議設(shè)置以下環(huán)境變量:
TUXDIR=/usr/tuxedo
TUXCONFIG=/usr/app/tuxconfig
EDITOR=vi
主要的界面如下:
? $ tmconfig
? Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS
? ?5)SERVICES ?6) NETWORK 7) ROUTING q) QUIT 9) WSL
? ?10) NETGROUPS 11) NETMAPS 12) INTERFACES [1]:
? Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE
? ?6) CLEAR BUFFER 7) QUIT [1]: ?4
? Enter editor to add/modify fields [n]?
? Perform operation [y]?
1. 用tmconfig增加新主機(jī)
1.進(jìn)入tmconfig后,選擇2)MACHINES項(xiàng)
2.然后可以先選擇3)RETRIEVE看看當(dāng)前的配置,缺省是第一個(gè)MACHINE的配置
3.通過(guò)選擇2)NEXT可以一直向后搜索MACHINE配置,直到空記錄為止。
4.選擇4)ADD
? Enter editor to add/modify fields [n]? y
5.進(jìn)入vi編輯狀態(tài),可以按照一定格式增加配置。格式為:
MIB域名[tab]值
6.增加MACHINE必須加入以下的域:
oTA_TUXCONFIG
oTA_TUXDIR
oTA_APPDIR
oTA_TLOGDEVICE
oTA_TLOGSIZE
oTA_PMID
oTA_LMID
oTA_TYPE
例:
TA_TUXCONFIG ? ? ? ? ? ? /usr/apps/bank/tuxconfig
TA_TUXDIR ? ? ? ? ? ? ? ?/usr/tuxroot
TA_APPDIR ? ? ? ? ? ? ? ?/usr/apps/bank
TA_TLOGDEVICE ? ? ? ? ? ?/usr/apps/bank/TLOG
TA_ULOGPFX ? ? ? ? ? ? ? /usr/apps/bank/ULOG
TA_ENVFILE ? ? ? ? ? ? ? /usr/apps/bank/ENVFILE
TA_TLOGSIZE ? ? ? ? ? ? ?150
TA_PMID ? ? ? ? ? ? ? ? ?SERVER109
TA_LMID ? ? ? ? ? ? ? ? ?SITE1
TA_TYPE ? ? ? ? ? ? ? ? ?Sun
7.存盤(pán)退出vi,執(zhí)行操作即可。 ?
8.激活新增的MACHINE: 重新選擇2)MACHINES –> 5)UPDATE
9.進(jìn)入vi后查找TA_STATE,將其值從NEW改為ACTIVE
10.存盤(pán)退出vi并執(zhí)行操作。
2. 用tmconfig增加新Server進(jìn)程
1.進(jìn)入tmconfig后,選擇2)SERVER項(xiàng)
2.可以先選擇3)RETRIEVE看看當(dāng)前的配置,缺省是第一個(gè)SERVER的配置
3.通過(guò)選擇2)NEXT可以一直向后搜索SERVER配置,直到空記錄為止。
4.選擇4)ADD
Enter editor to add/modify fields [n]? y
5.進(jìn)入vi編輯狀態(tài),可以按照一定格式增加配置。格式為:MIB域名[tab]值
6.增加MACHINE必須加入以下的域:
oTA_SERVERNAME
oTA_SRVGRP ?
oTA_SRVID ?
例:
TA_SERVERNAME ? ? ? ? ?/usr/apps/bank/teller_server
TA_SRVGRP ? ? ? ? ? ? ? ?GROUP1
TA_SRVID ? ? ? ? ? ? ? ? ?15
7.存盤(pán)退出vi,執(zhí)行操作即可。
七、系統(tǒng)核心參數(shù)參考
Message Queues Parameters
·MSGMNI:
Total Number of Queues (Use this formula: Add ?MAXACCESSERS + (No.
Servers with Reply Queues) - (No. Servers in MSSQ Set) + (No. MSSQ
Sets) + 7) to determine the appropriate value
·MSGMAP: Number of entries in control map used to manage message segments (Not defined in NT). Set to 2 * MSGMNI
·MSGMAX: ?Maximum message size in bytes. ?Set to the largest message size or 75% of the queue size (whichever is bigger)
·MSGMNB: ?This is the queue size itself (64K, 128K, etc.)
·MSGSSZ:
Size of a segment in bytes (Not defined in NT). The value of MSGSSZ
should be such that a multiple of ?MSGSSZ is equal to the size
(including the BEA TUXEDO System header) of the most commonly sent
message. ?Usually set to 16, 32, or 64.
·MSGTQL: Total Number of In-Flight messages in the system at once
·MSGSEG:
Number of message segments in the system (Not defined in NT). You need
to find out the queue space of your machine and then the following
formula applies: ?MSGSEG * MSGSSZ = Machine Queue Space Size (note it
will swap)
Semaphores Parameters
·SEMMNS: Maximum number of
semaphores in the system. The minimum requirement for SEMMNS is
MAXACCESSERS - MAXWSCLIENTS + 13 (local clients and all servers)
·SEMMNI:
?Maximum number of active semaphore sets. ?For small apps,(100 to 500
servers),10 sets are usually sufficient. ?For large apps, (>500
servers) 32-64 sets are usually sufficient (do a tmloadcf -c to see
which is the best)
·SEMMSL: Maximum number of semaphores per semaphore sets (Not defined in NT). ?Use the formula: ?SEMMNS = SEMMNI * SEMMSL
·SEMMAP: Size of the control map used to control semaphore sets (Not defined in NT). ?Set to SEMMNI
·SEMMNU: Number of undo structures in the system. ?Set to SEMMNS
·SEMUME: ?Maximum number of undo entries per undo structure (Not defined in NT). ?Set to SEMMNS
Shared Memory Parameters
·SHMMAX:
Maximum shared memory segment size in bytes. Bulletin Board Size (must
be greater than 1,400,000). Largest BB today is approx. 5 MB (this
parameter is normally set much higher for the database, so use their
rules)
·SHMSEG: Maximum number of segments one process can attach to (for a busy ?application you need to set this from 32-64)
·SHMMNI:
Maximum number of shared memory identifiers in the system. Normally the
default of 100 is acceptable (unless more than 100 entities plan on
allocating shared memory)
·SHMMIN: Minimum shared memory segment size in bytes. ?MUST be set to 1.
Other Tunables
·ULIMIT:
Maximum file size. ULIMIT needs to be large enough so that you can
install BEA TUXEDO and build servers. 4 megabytes recommended.
·MAXUP:
Maximum number of processes per non-super user. The BEA ? ? TUXEDO
system processes--servers and administrative processes—run ? ? ?with
the UID specified in the application's UBBCONFIG file. MAXUP needs ? ?
?to be large enough to allow all of these processes to run.
·NOFILES: ?Maximum number of open files per process. A BEA TUXEDO server requires a minimum of four file descriptors.
·NPROC: ?Maximum number of processes (systemwide).
·NREGION:
?Number of region table entries to allocate. Most processes have three
regions: text, data, and stack. Additional regions are needed for each
shared memory segment and shared library (text and data) attached.
However, the region table entry for the text of a ``shared text''
program is shared by all processes executing that program. Each shared
memory segment attached to one or more processes uses another region
table entry.
·NUMTIM: Maximum number of STREAMS modules that can
be pushed by the Transport Layer Interface (TLI). A typical default
value is 16; you should have it set to at least 256.
·NUMTRW: The
number of TLI read/write structures to allocate in kernel data ?space.
A typical default value is 16; you should have it set to at least 256.
Tuxedo系統(tǒng)平臺(tái)的調(diào)試參數(shù)及步驟
1.配置MAXSERVERS、MAXSERVICES兩個(gè)參數(shù),看是否滿足ubbfile文件的配置的服務(wù)數(shù)和服務(wù)參數(shù)的個(gè)數(shù)。Tmadmin——bbs,看里面的參數(shù)個(gè)數(shù)。
2.?dāng)?shù)據(jù)庫(kù)的可以連接數(shù)的大小是否滿足ubbfile文件里面同一個(gè)數(shù)據(jù)庫(kù)連接得servers的數(shù)目。參照xa_NULL*.trc文件的錯(cuò)誤提示。
3.用命令tmloadcf –c ubbfile看tuxedo的進(jìn)程所需要的共享內(nèi)存配置。然后修改系統(tǒng)的共享內(nèi)存的配置。除了AIX平臺(tái)外,系統(tǒng)的共享內(nèi)存參數(shù)——set shmsys:shminfo_shmmin要設(shè)置為1。
4.Tmunloadcf ?看現(xiàn)在運(yùn)行的TUXEDO環(huán)境。
5.Tmadmin——crdl ?-b ? -z ?創(chuàng)建日志文件。
6.TUXEDO環(huán)境的設(shè)置順序。Tuxconfig——tmadmin——TLOG;
-- 作者: whiteclude
-- 發(fā)布時(shí)間: 2002/07/27 05:53pm
TUXEDO與ORACLE數(shù)據(jù)庫(kù)的互連
(來(lái)源:http://www.ccw.com.cn)
前言在 銀行、電信、金融等行業(yè)的大型計(jì)算機(jī)應(yīng)用系統(tǒng)中,中間件的使用日益普及,中間件已與操作系統(tǒng)、數(shù)據(jù)庫(kù)并列為三大基礎(chǔ)軟件。BEA Tuxedo作為最優(yōu)秀的中間件產(chǎn)品,在我國(guó)的很多行業(yè)中廣泛使用,本文通過(guò)一個(gè)簡(jiǎn)單的例子介紹如何在TUXEDO中訪問(wèn)ORACLE數(shù)據(jù)庫(kù)。
在 兩層的C/S結(jié)構(gòu)中,客戶端直接訪問(wèn)數(shù)據(jù)庫(kù),當(dāng)采用TUXEDO中間件后,形成三層結(jié)構(gòu)。這時(shí),客戶端不直接訪問(wèn)數(shù)據(jù)庫(kù),而是改為調(diào)用中間件TUXEDO 服務(wù)端上的服務(wù),由TUXEDO服務(wù)端訪問(wèn)數(shù)據(jù)庫(kù),并把結(jié)果返回給客戶端。TUXEDO服務(wù)端可以和ORACLE在同一臺(tái)服務(wù)器上,也可以在不同的機(jī)器 上,如果在不同的機(jī)器上,在TUXEDO的服務(wù)端所在的機(jī)器要安裝一個(gè)ORACLE的客戶端。
TUXEDO服務(wù)端與ORACLE數(shù)據(jù)庫(kù)連接有兩種方式:
1、不通過(guò)XA接口直接互連。適用于整個(gè)系統(tǒng)只有一個(gè)數(shù)據(jù)庫(kù)的情況。
2、通過(guò)XA接口互連,對(duì)整個(gè)系統(tǒng)有一個(gè)數(shù)據(jù)庫(kù)或多個(gè)數(shù)據(jù)庫(kù)都適用,建議采用,本文介紹這種互連的配置方法。
系統(tǒng)說(shuō)明
TUXEDO版本:7.1 安裝目錄 d:\tuxedo71
ORACLE版本:8.1.5 安裝目錄 d:\ora81
操作系統(tǒng): win2000
配置的步驟
一、ORACLE的的配置
1.用internal用戶(缺省的口令是oracle)進(jìn)入SQLPLUS
C:\>sqlplus internal/oracle
2.運(yùn)行ORACLE的安裝路徑下的/rdbms/admin/xaview.sql
SQL> @d:\ora81\rdbms\admin\xaview.sql
3.授權(quán)
SQL>grant select on v$xatrans$ to public with grant option;
SQL>grant select on v$pending_xatrans$ to public with grant option;
4. 用system用戶(缺省的口令是manager)連接并授權(quán)
SQL>connect system/manager
SQL>grant select any table to public;
二、TUXEDO的配置
1.修改TUXEDO安裝路徑的udataobj目錄下的RM文件,把以O(shè)racle_XA:xaosw:開(kāi)頭的一行用#注釋掉,并加入一行:
Oracle_XA;xaosw;d:\ora81\rdbms\xa\oraxa8.lib d:\ora81\precomp\lib\msvc\orasql8.lib
如果是在UNIX環(huán)境下,則為:
Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh
2. 在TUXEDO用戶下創(chuàng)建TMS文件:TMS_ORA8i,TUXEDO通過(guò)TMS_ORA8i與ORACLE數(shù)據(jù)庫(kù)采用XA協(xié)議進(jìn)行通訊
buildtms -o d:\tuxedo71\bin\TMS_ORA8i -r Oracle_XA
注意:如果TUXEDO 服務(wù)端與ORACLE數(shù)據(jù)庫(kù)不在同一臺(tái)服務(wù)器上,可能會(huì)提示找不到 庫(kù)文件oraxa8.lib和orasql8.lib,可到ORACLE數(shù)據(jù)庫(kù)的服務(wù)端相應(yīng)目錄下把這兩個(gè)文件拷到當(dāng)前機(jī)器ORACLE的客戶端下的對(duì)應(yīng)目錄下。
3. 配置 UBBCONFIG
(1)在*MACHINES節(jié)中增加:
TLOGDEVICE = "/home/oracle/temp/simpdb/TLOG"
TLOGNAME=TLOG
TLOGSIZE=200
(2)改*GROUPS節(jié)的配置為:(scott/tiger為本數(shù)據(jù)庫(kù)所采用的用戶及口令,可根據(jù)需要更改)
*GROUPS
GROUP1 LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA8i" TMSCOUNT=2
修改后的配置文件ubb內(nèi)容如下,用tmloadcf -y ubb重新生成tuxconfig
IPCKEY 123456
DOMAINID simpapp
MASTER simple
MAXACCESSERS 100
MAXSERVERS 50
MAXSERVICES 100
MODEL SHM
LDBAL N
*MACHINES
server LMID=simple
APPDIR="d:\test"
TUXCONFIG="d:\test\tuxconfig"
TUXDIR="d:\tux71"
TLOGDEVICE = "d:\test\TLOG"
TLOGNAME=TLOG
TLOGSIZE=100
*GROUPS
GROUP1 LMID=simple GRPNO=1
OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTm=600+MaxCur=5+LogDir=."
TMSNAME="TMS_ORA8i" TMSCOUNT=2
*SERVERS
DEFAULT:
CLOPT="-A"
test SRVGRP=GROUP1 SRVID=1
*SERVICES
4.重命名下列文件,因?yàn)橄铝形募cORACLE帶的文件名有沖突,所以要改名。
(1)TUXEDO安裝路徑include目錄下的下面文件
把sqlca.h 改名為 sqlca.h.bbb
把sqlcode.h 改名為 sqlcode.h.bbb
把sqlda.h 改名為 sqlda.h.bbb
(2)重命名TUXEDO安裝路徑lib目錄下的下面文件
把libsql.lib 改名為 libsql.lib.bbb
5.用TMADMIN創(chuàng)建TLOG文件,TUXEDO用一個(gè)文件TLOG記錄對(duì)數(shù)據(jù)庫(kù)操作的日志。用于協(xié)調(diào)分布式數(shù)據(jù)庫(kù)的提交與回滾。
D:\>tmadmin
>crdl -b 500 -z d:\test\TLOG
>crlog -m simple
>q
三、服務(wù)端的程序:test.pc
功能:根據(jù)客戶端傳的EMPNO到表EMP中取ENAME的值,并把它返回給客戶端
#include <stdio.h>
#include <atmi.h>
#include <userlog.h>
EXEC SQL INCLUDE sqlca;
EXEC SQL BEGIN DECLARE SECTION;
long al_empno=0;
char ac_ename[11]="";
EXEC SQL VAR ac_ename IS STRING(11); ?
EXEC SQL END DECLARE SECTION;
TEST(TPSVCINFO *rqst)
{
/*接收客戶端來(lái)的數(shù)據(jù)*/
al_empno = (FBFR32 *)rqst->data;
EXEC SQL select ename into :ac_ename from EMP where empno=:al_empno;
if(sqlca.sqlcode!=0)
{ ?
userlog("select from EMP failure,sqlcode=%ld, sqlerr=%s\n",sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
strcpy(rqst->data,sqlca.sqlerrm.sqlerrmc);
tpreturn( TPFAIL, 0, rqst->data, 0, 0 );
}
/*把取出的結(jié)果返回給客戶端*/
strcpy(rqst->data,ac_ename);
tpreturn( TPSUCCESS, 0, rqst->data, 0, 0 );
}
四、編寫(xiě)客戶端程序: testcli.c
功能:調(diào)用TUXEDO服務(wù)端的服務(wù)TEST,取EMPNO=1000所對(duì)應(yīng)的ENAME的值,并顯示出來(lái)
#include <stdio.h>
#include "atmi.h" ?
main(argc, argv)
{
long reqlen=1024;
char *reqbuf;
/* 與TUXEDO服務(wù)端建立連接 */
if (tpinit((TPINIT *) NULL) == -1)
{
(void) fprintf(stderr, "Tpinit failed\n");
exit(1);
}
/* 分配發(fā)送緩沖區(qū)*/
reqbuf = (char *)tpalloc("STRING",NULL,reqlen);
if ( reqbuf == (char *)NULL)
{
printf("tpalloc failed\n");
tpterm();
}
strcpy(reqbuf,"1000");
/*調(diào)用TUXEDO的服務(wù)TEST*/
if (tpcall("TEST", (char *)reqbuf, 0L, (char **)&reqbuf, (long *)&reqlen, 0< 0 )
{
printf("tpcall failed,tperrno=%ld,tperrtext=%s\n",tperrno,tpstrerror(tperrno));
tpfree(reqbuf);
tpterm();
exit(1);
}
printf("name=%s\n",reqbuf);
tpfree(reqbuf);
tpterm();
return(0);
}
五、編譯服務(wù)端程序
1.用ORACLE的PROC把test.pc 文件預(yù)編譯成test.c文件
d:\test> proc test.pc include=%TUXDIR%/include
2.用buildserver把test.c編譯成可執(zhí)行文件,注意-r 后帶的Oracle_XA 與RM文件中的一致。
d:\test> buildserver -o simpserv -f simpserver.c -r Oracle_XA -s TEST
六、編譯客戶端程序
d:\test> buildclient -o testcli -f testcli.c
七、用 tmboot –y 啟動(dòng)TUXEDO
應(yīng) 能看到所有的SERVER都啟動(dòng)成功。這時(shí),我們的服務(wù)端程序test 會(huì)自動(dòng)與ORACLE數(shù)據(jù)庫(kù)建立連接,并一直保持這個(gè)連接,直到TUXEDO系統(tǒng)或ORACLE數(shù)據(jù)庫(kù)關(guān)閉。所以在我們的程序test.pc中看不到與數(shù) 據(jù)庫(kù)連接的語(yǔ)句,因?yàn)楝F(xiàn)在與數(shù)據(jù)庫(kù)的連接由TUXEDO自動(dòng)管理。如果TMS_ORA8i啟動(dòng)失敗會(huì)在當(dāng)前目錄生成一個(gè)*.trc文件,記錄失敗的原因, 同時(shí)TUXEDO的ULOG文件中也會(huì)有一些錯(cuò)誤信息。可參考這些錯(cuò)誤信息進(jìn)行錯(cuò)誤分析。
d:\test> tmboot -y
exec TMS_ORA8i-A :
process id=1072 ... Started.
exec TMS_ORA8i-A :
process id=528 ... Started.
exec test -A :
process id=876 ... Started.
八、運(yùn)行客戶端程序
運(yùn)行后應(yīng)能看到服務(wù)端返回的結(jié)果。
d:\test> testcli
name=bill
到此,整個(gè)配置過(guò)程就大功告成了。ORACLE的其他版本的配置及在其他操作系統(tǒng)上的配置基本與本文所述差不多,差別主要在RM文件中所連的庫(kù)文件可能會(huì)不樣。
posted on 2006-09-04 23:23 Vincent.Chen 閱讀(2453) 評(píng)論(0) 編輯 收藏 所屬分類: BEA