ULOG:
CMDTUX_CAT:1685: ERROR: Application initialization failure
201838.dzyh!WSH.882.3086894784.0: 11-17-2008: Tuxedo Version 8.1, 32-bit
201838.dzyh!WSH.882.3086894784.0: LIBTUX_CAT:681: ERROR: Failure to create message queue
201838.dzyh!WSH.882.3086894784.0: WSNAT_CAT:1088: ERROR: tpinit() failed, tperrno = 7
201838.dzyh!WSL.878.3085956800.0: WSNAT_CAT:1079: ERROR: Error starting minimum number of handlers
201838.dzyh!WSL.878.3085956800.0: LIBTUX_CAT:250: ERROR: tpsvrinit() failed
原因分析:Linux系統(tǒng)的內(nèi)核參數(shù)msgmni設(shè)置太小無法滿足Tuxedo的需求而導(dǎo)致該服務(wù)啟動(dòng)失敗
解決方法:
1.以tmloadcfg -c ubbcfg 所顯示要求的是系統(tǒng)最低的資源要求
2.
root登陸
sysctl -a
kernel.msgmni = 16
kernel.msgmax = 8192 (默認(rèn)值)
vi /etc/sysctl.conf
#添加
kernel.msgmni = 260
kernel.msgmax = 16384
sysctl -p
tmboot -y
====================================================================================================
1、執(zhí)行tmadmin命令,出現(xiàn)如下錯(cuò)誤
NLS:4: Cannot open message catalog TMADMIN_CAT, set 1, num 184; check TUXDIR=/home/dev/app/tuxedo8.1, LANG=zh_CN.GB18030
可以肯定,這個(gè)錯(cuò)誤是由字符集引起的,我用的是簡(jiǎn)體中文linux
添加環(huán)境變量vi .bash_profile 添加如下內(nèi)容
export LANG=C
保存退出,source .bash_profile 使環(huán)境變量生效
2、再執(zhí)行tmadmin,這個(gè)錯(cuò)誤消失,但是出現(xiàn)了如下錯(cuò)誤:
tmadmin - Copyright (c) 1996-1999 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.
TMADMIN_CAT:188: ERROR: Error while obtaining the Bulletin Board parameters
分析上面的信息,因?yàn)?font color="#ff0000">沒有編譯生成TUXCONFIG指向的文件,即公告牌文件
經(jīng)過上面一些配置,已經(jīng)可以使用tuxedo了,后面配置公告文件和開發(fā)程序都是開發(fā)的內(nèi)容
3、在tuxedo客戶端程序中,調(diào)用tpinit失敗,返回-1,tperrno=12:internal system error。
在用buildclient編譯客戶端程序的時(shí)候,如果加入了-w選項(xiàng),那么必須設(shè)置WSADDR環(huán)境變量,如果沒有采用-w選項(xiàng),那么默認(rèn)請(qǐng)求本地的服務(wù)。
如果在編譯客戶端程序的時(shí)候,采用了-w選項(xiàng),而又沒有正確設(shè)置WSADDR環(huán)境變量,那么tpinit失敗,返回-1,tperrno=12;
如果在編譯客戶端程序的時(shí)候,沒有采用-w選項(xiàng),默認(rèn)訪問本地的服務(wù),不需要設(shè)置WSADDR環(huán)境變量。
4.WSL啟動(dòng)失敗
WSL啟動(dòng)失敗的原因有很多,比如:UBB中沒配置MAXWSCLIENTS,WSL的端口和別人沖突等等。需要看ULOG才能確定具體原因。
5\tpcall有時(shí)莫名的返回-1
tpcall后,不管是否成功,都要釋放memory(上邊tpalloc等函數(shù)申請(qǐng)的memory)。然后才能tpterm。
6、啟動(dòng)服務(wù)的時(shí)候現(xiàn)實(shí)如下的信息:
CMDTUX_CAT:819: INFO: Process id=1956 Assume started (pipe).
這時(shí)需要看一下程序,是否在程序中tpsvrinit函數(shù)時(shí)已經(jīng)異常退出。
7、啟動(dòng)服務(wù)tmboot -y的時(shí)候出現(xiàn)如下的錯(cuò)誤信息:
mboot: WARN: No BBL available on site srd.
注意:該方法錯(cuò)誤:去除MACHINES中的TLOGDEVICE="/home/srd/srdapp/bin/TLOG"定義就可以解決。
正確方法如下:
tmadmin登錄到管理界面,使用crdl和crlog創(chuàng)建tlog,比如:
> crdl -z /home/tuxedo/logs/tlog -b 2048
> crlog -m simple
8、在啟動(dòng)tuxedo服務(wù)的時(shí)候,報(bào)如下錯(cuò)誤信息:
LIBTUX_CAT:328: ERROR: No space in Bulletin Board for Server Table
ubb中的MAXWSCLIENTS,MAXACCESSERS參數(shù)值太小,適當(dāng)修改這個(gè)兩個(gè)參數(shù)值就可以了.
9、在執(zhí)行tmloadcf的時(shí)候,報(bào)如下錯(cuò)誤:
CMDTUX_CAT:1615: ERROR: Identifier or number must be followed by white space or punctuation
說明某個(gè)關(guān)鍵字后面需要有空格或者回車,根據(jù)錯(cuò)誤信息在相應(yīng)出錯(cuò)的位置添加空格就可以了。
10、執(zhí)行tmboot -y啟動(dòng)服務(wù)的時(shí)候,報(bào)如下錯(cuò)誤:
TPELIMIT - a system limit has been reached
CMDTUX_CAT:1685: ERROR: Application initialization failure
No space in Bulletin Board for Service Table
有上面的信息可以看出,是tuxedo配置的一些資源有限制,可以修改ubbconfig配置文件中的參數(shù) MAXACCESSERS,MAXSERVERS,MAXSERVICES,MAXGTT來申請(qǐng)更多的資源,將上面的參數(shù)適當(dāng)增大知道不出現(xiàn)錯(cuò)誤信息為止,具體增加多少根據(jù)自己的系統(tǒng)配置和需求決定。
------------------------------------------------------------------------------------------------------------
1. ubbconfig配置中機(jī)器名配置:windows環(huán)境中一定要大寫,unix中可用uname -n查看。
2. tmboot 起不來常與這幾個(gè)參數(shù)相關(guān),并容易混淆,建議關(guān)注。
MAXACCESSERS,MAXSERVERS,MAXSERVICES:這三個(gè)參數(shù)控制該TUXEDO應(yīng)用系統(tǒng)對(duì)IPC資源的使用情況。
MAXACCESSERS: 在本系統(tǒng)的一個(gè)節(jié)點(diǎn)(一臺(tái)服務(wù)器)上,同時(shí)可以有多少個(gè)進(jìn)程可以訪問該TUXEDO系統(tǒng)的公告板,默認(rèn)值為50,它包括本地客戶端進(jìn)程,SERVER進(jìn)程,但不包括管理進(jìn)程如:BBL,DBBL等。
MAXSERVERS: 在本系統(tǒng)中,總共可以有多少個(gè)SERVER存在,包括進(jìn)行管理的SERVER,如:BBL,TMS等。默認(rèn)值為50。
MAXSERVICES: 在本系統(tǒng)中,總共可以有多少個(gè)SEVICE存在, 默認(rèn)值為100。
MAXCONV: 在一臺(tái)服務(wù)器上最多可以有多少個(gè)會(huì)話同時(shí)存在。范圍:0-32768,默認(rèn)為10
3. 不同版本的tuxedo互連問題:如果是WSL模式:低聯(lián)高版本在WSL中加入-t參數(shù),如CLOPT=”-A -t ??n//機(jī)器名:端口號(hào),高聯(lián)低版本應(yīng)在環(huán)境變量中設(shè)置WSINTOPPRE71=yes;如果是域模式:低聯(lián)高版本應(yīng)該在ubbconfig中的 SERVERS配置GWADM的CLOPT中加入-t參數(shù),例如GWADM
4. 在dmconfig中如果配置了多個(gè)域,并且指定遠(yuǎn)端域服務(wù)時(shí)應(yīng)該指定域服務(wù)路由(即遠(yuǎn)端服務(wù)的本地域是什么,遠(yuǎn)端域是什么),否則報(bào)協(xié)議錯(cuò)誤,例如*DM_REMOTE_SERVICES
SERV_1
SERV_2
5. 用戶用tmadmin進(jìn)入了管理進(jìn)程,如果沒有退出,另外用戶用tmadmin進(jìn)入管理進(jìn)程,就成為受限管理用戶,部分命令不能使用。
6. Tuxedo Domain-level Failover 的工作特點(diǎn)和配置方式:
特點(diǎn)
當(dāng)本地domain與主的遠(yuǎn)端domain連接失敗時(shí),本地Domain將請(qǐng)求轉(zhuǎn)發(fā)到另一個(gè)備份的遠(yuǎn)端domain上。支持自動(dòng)failback。當(dāng)主 domain恢復(fù)正常時(shí),本地domain可以將請(qǐng)求轉(zhuǎn)發(fā)回主domain。CONNECTION_POLICY必須配置成ON_STARTUP或者是 INCOMING_ONLY 。Domain-level要求本地domain與主domain和備份domain之間都建立好socket連接??梢杂卸鄠€(gè)遠(yuǎn)端的備份domain
配置方法
在Domain 配置文件(dmconfig)中的DM_REMOTE_SERVICES處按以下方法配置Service,用逗號(hào)分割Service所在的遠(yuǎn)端 domain ID,如:RDOM=identifier_1, identifier_2, identifier_3
7. Tuxedo7.1及其以后的版本才正式支持多線程環(huán)境。在6.5版本,在Windows上有個(gè)客戶端的多線程附加包,安裝后可以用多線程方式并發(fā)調(diào)用服務(wù),而在unix環(huán)境下6。5版不支持。
8. 如何在Tuxedo7.1中使用Fprint打印中文,應(yīng)該配置環(huán)境變量 FML_PRINT_NOHEX =yes
9. unix環(huán)境下可以通過配置環(huán)境變量TUXCONFIG和BDMCONFIG的不同目錄,可以在一個(gè)用戶中啟動(dòng)兩套完全獨(dú)立的BBL和兩套應(yīng)用,并在相應(yīng)的環(huán)境變量下管理相應(yīng)的應(yīng)用。
10. 在Tuxedo中有許多關(guān)于時(shí)間方面的參數(shù),
SCANUNIT :
BBL系統(tǒng)進(jìn)程對(duì)Bulletin Board的管理和監(jiān)控是基于時(shí)間片的輪詢方式,時(shí)間片的大小就是SCANUNIT的值,SCANUNIT是Tuxedo對(duì)系統(tǒng)進(jìn)行管理的最基本時(shí)間單位,其他許多時(shí)間方面的參數(shù)均是SCANUNIT的倍數(shù)。每隔SCANUNIT,BBL對(duì)Bulletin Board進(jìn)行一次檢查,看看有無超時(shí)的事務(wù)或服務(wù)請(qǐng)求。SCANUNIT必須是大于0的5的倍數(shù),最大是60,缺省10,單位為秒。
BLOCKTIME:
服務(wù)請(qǐng)求的超時(shí)值,BBL發(fā)現(xiàn)有超時(shí)的Request時(shí),會(huì)給相應(yīng)的Client端發(fā)信息,Client端如果在調(diào)用時(shí)未加TPNOTIME標(biāo)記,會(huì)報(bào)錯(cuò)返回,tperrno值為13。由于BLOCKTIME是以SCANUNIT為單位的,所以時(shí)間的絕對(duì)值為(BLOCKTIME * SCANUNIT),BLOCKTIME缺省為(60/SCANUNIT)。
SANITYSCAN
健全性檢查掃描,健全性檢查主要檢查Server進(jìn)程狀態(tài)和Bulletin Board數(shù)據(jù)結(jié)構(gòu), BBL檢查Server進(jìn)程是否存活,如果已經(jīng)不存在,會(huì)清理Bulletin Board中相應(yīng)的數(shù)據(jù)項(xiàng)及IPC資源,并根據(jù)參數(shù)配置決定是否重新啟動(dòng),如果設(shè)了RESTART=Y,所占的Message Queue不會(huì)被清,Queue中的Request得到保留,仍會(huì)被處理。如果是MP模式,BBL還會(huì)給DBBL發(fā)狀態(tài)消息。SANITYSCAN缺省為 (120/SCANUNIT)。
BBLQUERY
BBL檢查,在MP模式下,DBBL會(huì)每隔一段時(shí)間檢查是否所有的BBL都發(fā)了" I am ok "心跳信息給自己,如果沒有收到某個(gè)BBL的信息,它會(huì)發(fā)Request給那個(gè)BBL,如果等了DBBLWAIT后仍然沒有回復(fù),DBBL會(huì)認(rèn)為那臺(tái)機(jī)器有問題,將其partition。BBL QUERY缺省為(300/SCANUNIT),DBBLWAIT缺省為(20/SCANUNIT)。BBLQUERY必須大于等于 SANITYSCAN,tmloadcf 時(shí)會(huì)強(qiáng)制檢查,如果設(shè)的值小于SANITYSCAN,tmloadcf會(huì)自動(dòng)調(diào)整為SANITYSCAN。
其它和時(shí)間相關(guān)的參數(shù)還有:
WSL [-I init-timeout]
WorkStation Client和后臺(tái)建立連接的超時(shí)參數(shù)值,缺省60秒
WSL [-T Client-timeout]
WorkStation Client和WSH建立連接后,如果在指定的時(shí)間內(nèi)沒有信息交互,WSH會(huì)自動(dòng)釋放和這個(gè)Client端的連接,并將此Client在Bulletin Board中的數(shù)據(jù)項(xiàng)請(qǐng)空,RollBack它未完成的事務(wù) 。
WSL [-N network-timeout]
此值實(shí)際上是WorkStation Client在做receive時(shí)的超時(shí)值,如果發(fā)生超時(shí),此操作會(huì)出錯(cuò),WorkStation Client會(huì)斷開和后臺(tái)的連接。
SERVICES中的SVCTIMEOUT
如果SERVICE執(zhí)行時(shí)間超過SVCTIMEOUT,BBL會(huì)自動(dòng)將此Server進(jìn)程Kill掉。
SERVICES中的TRANTIME
如果此SERVICE設(shè)置了AUTOTRAN=Y,則此值為事務(wù)超時(shí)值,超時(shí)后Transaction
Manager會(huì)自動(dòng)RollBack此transaction
聯(lián)系客服