tuxedo 2009-10-26 22:54:41 閱讀33 評論0 字號:大中小 訂閱
Tuxedo 作為系統(tǒng)的中間件,其配置主要包括:資源文件的配置和應(yīng)用環(huán)境的配置;其管理和維護(hù)主要包括:系統(tǒng)的啟動和關(guān)閉、日志的跟蹤查看工作。
Tuxedo應(yīng)用系統(tǒng)的配置
一、應(yīng)用系統(tǒng)的資源配置,全都包含在兩個資源配置文件中(ubbconfig 和dmconfig ),在這兩個配置文件中包含了系統(tǒng)所有的應(yīng)用資源(文件)。
1、 對于ubbconfig文件,可以任意使用一個文件名(如:ubb.txt),使用一種文本編輯工具,將應(yīng)用系統(tǒng)的資源分類進(jìn)行配置,相關(guān)進(jìn)程啟動數(shù)量等等都應(yīng)該配置在其中,然后設(shè)置環(huán)境變量TUXCONFIG,使用系統(tǒng)命令:tmloadcf 來將文本文件ubb.txt,轉(zhuǎn)化生成環(huán)境變量TUXCONFIG制定的二進(jìn)制文件。在該文件中主要包含了幾個參數(shù)的設(shè)置:系統(tǒng)所使用的共享內(nèi)存的鍵值IPCKEY,針對workstation客戶端的監(jiān)聽進(jìn)程的端口(WSL),多臺機(jī)器之間互連(登記中心與各網(wǎng)關(guān))的網(wǎng)絡(luò)地址和端口(NADDR,NLSADDR),數(shù)據(jù)依賴路由的設(shè)定等等。
詳細(xì)的內(nèi)容參看《Ubbconfig配置.doc》
參看模版來實現(xiàn)移植或添加應(yīng)用進(jìn)程等等。
2、 對于dmconfig文件,可以任意使用一個文件名(如:dm.txt),使用一種文本編輯工具,將應(yīng)用系統(tǒng)的多域互聯(lián)及互相調(diào)用的關(guān)系進(jìn)行配置,包括多域之間互聯(lián)的地址和端口,然后使用系統(tǒng)命令:dmloadcf 來將文本文件dm.txt,轉(zhuǎn)化成環(huán)境變量BDMCONFIG所指定的二進(jìn)制文件。在該文件中主要包含了在多個域互連時用到的一些設(shè)置,主要包括:各個域的定義,各個域通訊連接的地址和端口(NWADDR),本地服務(wù)(DM_LOCAL_SERVICES)和遠(yuǎn)端服務(wù)(DM_REMOTE_SERVICES)以及數(shù)據(jù)依賴路由等等。
詳細(xì)的內(nèi)容參看《dmconfig配置.doc》
參看模版來實現(xiàn)移植或添加應(yīng)用遠(yuǎn)端或本地服務(wù)等等。
3、 客戶端代碼:是指使用編譯工具buildclient編譯生成的執(zhí)行代碼。在編譯過程中,當(dāng)使用編譯參數(shù):-w 時,將連接庫wsc等,生成的執(zhí)行代碼將調(diào)用遠(yuǎn)端的服務(wù),即通過環(huán)境變量:WSNADDR來查找相應(yīng)的WSL的地址和端口; 當(dāng)編譯沒有使用參數(shù):–w時,生成的執(zhí)行代碼將調(diào)用本機(jī)的服務(wù),通過環(huán)境變量:TUXCONFIG來實現(xiàn)調(diào)用相應(yīng)的服務(wù),如果要調(diào)用異域(如:代理集中點到登記中心)的服務(wù),就需要在dmconfig文件中配置和公布服務(wù)。
4、 服務(wù)進(jìn)程:是指使用編譯工具buildserver編譯生成的執(zhí)行代碼,不要出現(xiàn)main()函數(shù),啟動和關(guān)閉要使用Tuxedo的工具:tmboot 和 tmshutdown
二、應(yīng)用系統(tǒng)的環(huán)境配置,即系統(tǒng)運行時的環(huán)境變量的設(shè)置
一般的這些環(huán)境變量都放在用戶注冊是的.pro
TUXDIR:其值為TUXEDO的安裝目錄。
例如:TUXDIR=/home/tuxedo 或 TUXDIR=/home/bea
TUXCONFIG:其值為含有絕對路徑二進(jìn)制的資源配置文件的文件名,系統(tǒng)啟動、監(jiān)控、關(guān)閉等等都要用到此環(huán)境變量,當(dāng)客戶端的代碼要調(diào)用應(yīng)用系統(tǒng)的本機(jī)服務(wù)時也需要使用此變量。
例如:TUXCONFIG=/home/work/etc/tuxconfig
BDMCONFIG:其值為含有絕對路徑二進(jìn)制的多域配置文件的文件名,在使用多域間互聯(lián)時要用到此環(huán)境變量。
例如:BDMCONFIG=/home/work/etc/dmcomfig
PRINTERDIR:傳輸文件的放置目錄,主要是針對文件傳輸來使用的。
例如:PRINTERDIR=/home/work/print
FTP_BLOCK_SIZ:針對文件傳輸?shù)?,每次傳輸?shù)目斓拇笮。绻麤]有設(shè)置,則系統(tǒng)默認(rèn)為1024。
例如: FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE
WSNADDR:客戶端(workstation)設(shè)定的,指向服務(wù)器端WSL監(jiān)聽的地址和端口,當(dāng)客戶端的代碼要調(diào)用系統(tǒng)的遠(yuǎn)端服務(wù)時需要此環(huán)境變量。
例如:WSNADDR=//192.168.42.210:7001
Tuxedo 的管理和維護(hù)
一、 系統(tǒng)的啟動:
1、 多機(jī)系統(tǒng)的啟動(如:登記中心的啟動)
首先設(shè)置環(huán)境變量,在各臺機(jī)器上啟動tlisten進(jìn)程,一般設(shè)置在setenv中,然后在主管理機(jī)上,使用命令tmboot啟動應(yīng)用系統(tǒng)
tmboot 命令可以選擇使用多個參數(shù):
-A 在各臺機(jī)器上啟動核心的進(jìn)程(DBBL,BBL)。
-l lmid 啟動某一臺機(jī)器lmid上的全部進(jìn)程,機(jī)器名:lmid是在文件ubb.txt中配置的邏輯名。
-g grpname 啟動某一組grpname中的全部進(jìn)程。
-s server 啟動某一個進(jìn)程server。
2、 單機(jī)系統(tǒng)的啟動(如:代理集中點的起動)
首先設(shè)置環(huán)境變量,然后使用命令tmboot
-A 在機(jī)器上啟動核心的進(jìn)程(BBL)。
-g grpname 啟動某一組grpname中的全部進(jìn)程。
-s server 啟動某一個進(jìn)程server。
二、 系統(tǒng)的關(guān)閉:
1、 多機(jī)系統(tǒng)的關(guān)閉(如:登記中心的關(guān)閉)
應(yīng)該在主管理機(jī)上,使用命令tmshutdown
tmshutdown 命令可以選擇使用多個參數(shù):
-y 關(guān)閉各臺機(jī)器上的全部進(jìn)程。
-l lmid 關(guān)閉某一臺機(jī)器lmid上的全部進(jìn)程。
-g grpname 關(guān)閉某一組grpname中的全部進(jìn)程。
-s server 關(guān)閉某一個進(jìn)程server。
2、 單機(jī)系統(tǒng)的關(guān)閉(如:代理集中點的關(guān)閉)
使用命令tmshutdown
-y 關(guān)閉機(jī)器上的全部進(jìn)程。
-g grpname 關(guān)閉某一組grpname中的全部進(jìn)程。
-s server 關(guān)閉某一個進(jìn)程server。
三、 系統(tǒng)的日志跟蹤:
1、 使用管理工具tmadmin
運行tmadmin進(jìn)入管理維護(hù)界面
2、 查看系統(tǒng)日志 ULOG.mmddyy
在系統(tǒng)設(shè)定的目錄下查看日志文件:ULOG.mmddyy和應(yīng)用系統(tǒng)自己的日志。
代理集中點的安裝和配置
一、 軟件打包
將目前的代理集中點上的配置文件目錄~/etc和簡單測試目錄~/apps打成一個包。在目錄~/apps下的內(nèi)容多適用于測試環(huán)境配置結(jié)束后是否正常,在系統(tǒng)正常啟動運行后就不再有什么作用了。
二、 系統(tǒng)安裝和配置
1、 修改資源管理配置文件:ubb.txt
可以使用任意的文本編輯工具,如vi等等編輯工具,以下同。
修改其中的: IPCKEY,TUXDIR,APPDIR,TUXCONFIG,ENVFILE,ULOGFPX和主機(jī)名(通過uname –n看到的)等的值,使之與實際環(huán)境相一致。修改 WSL的參數(shù):CLOPT=“-A -- -n 地址:端口…”,使之與實際的環(huán)境一致,例如:CLOPT=“-A -- -n 192.168.42.220:7410”。
2、 修改域管理配置文件:dm.txt
修改:NWADDR的地址:端口,例如:NWADDR="http://192.168.42.231:7310"
要注意在系統(tǒng)中的dm.txt中的DOMAINID要保持一致,即在不同的文件重要有統(tǒng)一的命名。
3、 修改環(huán)境變量設(shè)置文件:setenv,將如下環(huán)境變量的值進(jìn)行修改,使之與實際的配置想符合,以下是參考。
例如:
TUXDIR=/home/tuxedo; export TUXDIR
PATH=$TUXDIR/bin
SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX)
LIBPATH=$TUXDIR/lib
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系統(tǒng)上的函數(shù)庫環(huán)境設(shè)置有個不相同的環(huán)境變量(如:SHLIB_PATH、LIBPATH),需要注意。
針對文件傳輸?shù)?,如果文件較大,可以將環(huán)境變量FTP_BLOCK_SIZE的值設(shè)置的大一點,如果沒有設(shè)置該環(huán)境變量,則系統(tǒng)默認(rèn)為1024。例如:
FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE
4、 系統(tǒng)啟動
首先設(shè)置環(huán)境變量,可以放在.pro
然后執(zhí)行tmboot 即可
三、 故障排除
查看系統(tǒng)日志 ULOG.mmddyy
在系統(tǒng)設(shè)定的目錄下查看日志文件:ULOG.mmddyy和應(yīng)用系統(tǒng)自己的日志。
登記中心的安裝和配置
一、 軟件打包
將目前的登記中心及其網(wǎng)關(guān)機(jī)上的配置文件目錄~/etc和簡單測試目錄~/apps,及網(wǎng)關(guān)機(jī)上的~/cjhb打成一個包。在目錄~/cjhb下的內(nèi)容是用于完成成交回報交易的。
二、系統(tǒng)安裝和配置
1、 修改資源管理配置文件:ubb.txt
可以使用任意的文本編輯工具,如vi等等編輯工具,以下同。
修改其中的: IPCKEY,TUXDIR,APPDIR,TUXCONFIG,ENVFILE,ULOGFPX和主機(jī)名(通過uname –n看到的)等的值,使之與實際環(huán)境相一致。修改 WSL的參數(shù):CLOPT=“-A -- -n 地址:端口…”,使之與實際的環(huán)境一致,例如:CLOPT=“-A -- -n 192.168.42.220:7410”。
2、 修改域管理配置文件:dm.txt,此文件可以放在登記中心機(jī)器上,也可以放在網(wǎng)關(guān)機(jī)器上的響應(yīng)目錄下。
修改:NWADDR的地址:端口,例如:NWADDR="http://192.168.42.231:7310"
要注意在系統(tǒng)中的dm.txt中的DOMAINID要保持一致,即在不同的文件重要有統(tǒng)一的命名。
3、 修改環(huán)境變量設(shè)置文件:setenv,將如下環(huán)境變量的值進(jìn)行修改,使之與實際的配置想符合。
例如:
TUXDIR=/home/tuxedo; export TUXDIR
PATH=$TUXDIR/bin
SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX)
LIBPATH=$TUXDIR/lib
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
針對文件傳輸?shù)?,如果文件較大,可以將環(huán)境變量FTP_BLOCK_SIZE的值設(shè)置的大一點,如果沒有設(shè)置該環(huán)境變量,則系統(tǒng)默認(rèn)為1024。例如:
FTP_BLOCK_SIZE=10240;export FTP_BLOCK_SIZE
4、 修改在網(wǎng)關(guān)機(jī)上的環(huán)境設(shè)置文件envfile和setenv,將如下的環(huán)境變量進(jìn)行修改,使之與實際的配置想符合。
除了上面列出的還有如下幾個變量:
MCHSNDFILE=/tmp/beta/matchsend.txt;export MCHSNDFILE
FSNDLOG=/tmp/beta/Fsnd.log;export FSNDLOG
PRINTERDIR=/tmp/beta; export PRINTERDIR
主要是用于成交回報交易的。
5、系統(tǒng)啟動
首先設(shè)置環(huán)境變量,可以放在.pro
然后再登記中心機(jī)器上(MASTER)執(zhí)行tmboot 即可,可以選擇分步來啟動應(yīng)用系統(tǒng),使用:tmboot –A 和 tmboot –l 來逐個啟動系統(tǒng)。
網(wǎng)點的安裝和配置
一、 軟件打包
1、 網(wǎng)點的中間件軟件(tuxedo),只是需要一些客戶端的庫函數(shù)等等,在選擇workstation模式安裝后,將tuxedo的所有文件達(dá)成一個包即可。
2、 需要在網(wǎng)點編譯時,要注意配置環(huán)境變量,參看下面的系統(tǒng)配置。
二、系統(tǒng)的配置
1、 配置環(huán)境變量
修改環(huán)境變量設(shè)置文件(tux.env 或setenv),將如下環(huán)境變量的值進(jìn)行修改,使之與實際的配置想符合。
例如:
TUXDIR=/home/tuxedo; export TUXDIR
PATH=$TUXDIR/bin
SHLIB_PATH=$TUXDIR/lib:/usr/lib:/lib;export SHLIB_PATH (for HPUX)
LIBPATH=$TUXDIR/lib
LD_LIBRARY_PATH=/usr/tuxedo/lib: /usr/informix/lib/esql ( for SCO )
NLSPATH=$TUXDIR/locale;export NLSPATH
LANG=C;export LANG
2、 配置與代理集中點相連接的環(huán)境變量
各個網(wǎng)點的應(yīng)用代碼都是通過工作站(workstation)方式與代理集中點連結(jié)的。因此要配置連結(jié)代理集中點的tcp/ip地址和端口。
例如:
WSNADDR=//192.168.42.220:7520; export WSNADDR
也可以主機(jī)名加端口,例如:
WSNADDR=//hp01:7520; export WSNADDR
常見的問題及解決方法
以下常見的都是在使用中間過程中遇到的問題:
一、 與數(shù)據(jù)庫的連接問題
在測試中看到,應(yīng)用代碼都是自己去聯(lián)的數(shù)據(jù)庫,為了保證效率,都是在進(jìn)程啟動的時候預(yù)先建立起連接,這樣保證了交易進(jìn)行時的效率;但當(dāng)數(shù)據(jù)庫出現(xiàn)宕機(jī)時,連接也將隨之丟失了,這時的應(yīng)用程序就不能再訪問數(shù)據(jù)庫了,在目前的應(yīng)用中都沒有對訪問數(shù)據(jù)庫的返回碼進(jìn)行判斷,如果是連接失敗的可以選擇重新連接數(shù)據(jù)庫,而不是退出交易,這樣交易又可以正常運行了。
目前,這樣的情況出現(xiàn)后,就需要將應(yīng)用系統(tǒng)重新啟動,使應(yīng)用程序同數(shù)據(jù)庫進(jìn)行重新連接。
二、代理集中點上常見的一個問題
在代理集中點上常看到兩條隊列,鍵值是32和3e8,這兩條隊列在寫滿時,因為監(jiān)控進(jìn)程沒有及時讀隊列,常常會影響與之有關(guān)的幾個進(jìn)程,只需要將這兩條隊列清空就可以了。
三、系統(tǒng)啟動不正常
常見的原因有如下幾個:
1、 環(huán)境變量沒有設(shè)好,如上面的所說的各個環(huán)境變量??梢缘絶/etc目錄下使用命令:. ./setenv來設(shè)置一下。
2、 據(jù)庫連接失敗,這樣會導(dǎo)致連接數(shù)據(jù)庫的應(yīng)用進(jìn)程不能啟動。檢查數(shù)據(jù)庫確保能夠正常連接后,再重新啟動這些進(jìn)程。
3、 單個進(jìn)程的問題,比如執(zhí)行權(quán)限等等,參看日志文件來找出原因。
4、 在登記中心使用的是多機(jī)互連方式,主管機(jī)器負(fù)責(zé)啟動所用的進(jìn)程,在所有的機(jī)器上都要有相應(yīng)的監(jiān)聽進(jìn)程:tlisten,對于網(wǎng)關(guān)機(jī)上的服務(wù),如果網(wǎng)關(guān)機(jī)宕機(jī)或被重新啟動時,要將監(jiān)聽進(jìn)程啟動起來,在~/etc目錄下,使用命令:. ./setenv即可,然后先在主管機(jī)器上運行tmadmin,進(jìn)入后并執(zhí)行pcl gwname命令來清理掉網(wǎng)關(guān)機(jī)得響應(yīng)信息,再退出并重新啟動網(wǎng)關(guān)機(jī)上的應(yīng)用系統(tǒng):tmboot –l gwname。
注:gwname時網(wǎng)關(guān)機(jī)的邏輯名,在ubb.txt(Ubbconfig)中定義的,不同的網(wǎng)關(guān)機(jī)有不同的邏輯名。
注:tlisten進(jìn)程可以多次啟動,當(dāng)該進(jìn)程已經(jīng)正常運行時,再次啟動會報出錯誤信息:CMDTUX_CAT:1319: INFO: Terminating tlisten process,在日志文件中也有相應(yīng)的記錄,這說明該進(jìn)程已經(jīng)啟動了。
5、 如果有某些進(jìn)程始終在內(nèi)存中,導(dǎo)致系統(tǒng)不能啟動時,可以將這些進(jìn)程殺掉,并將與之相關(guān)的隊列和內(nèi)存也都清掉,然后重新啟動系統(tǒng)。
四、 系統(tǒng)關(guān)閉不正常
1、 客戶端與系統(tǒng)在發(fā)生交易或連接,如:tmadmin等等或客戶端的某些服務(wù)等正在運行,這些都會導(dǎo)致系統(tǒng)的主進(jìn)程不能正常關(guān)閉。
2、 登記中心使用的是多機(jī)互連方式,主管機(jī)器負(fù)責(zé)啟動和關(guān)閉所用的進(jìn)程,在所有的機(jī)器上都要有相應(yīng)的監(jiān)聽進(jìn)程:tlisten,對于網(wǎng)關(guān)機(jī)上的服務(wù),如果網(wǎng)關(guān)機(jī)宕機(jī)或被重新啟動時,要將監(jiān)聽進(jìn)程啟動起來,在~/etc目錄下,使用命令:. ./setenv即可,然后先在主管機(jī)器上運行tmadmin命令,然后執(zhí)行pcl gwname命令來清理掉網(wǎng)關(guān)機(jī)得響應(yīng)信息,再退出并重新關(guān)閉網(wǎng)關(guān)機(jī)上的應(yīng)用系統(tǒng):tmshutdown –l gwname。
注:gwname時網(wǎng)關(guān)機(jī)的邏輯名,在ubb.txt(Ubbconfig)中定義的,不同的網(wǎng)關(guān)機(jī)有不同的邏輯名。
注:tlisten進(jìn)程可以多次啟動,當(dāng)該進(jìn)程已經(jīng)正常運行時,再次啟動會報出錯誤信息:CMDTUX_CAT:1319: INFO: Terminating tlisten process,在日志文件中也有相應(yīng)的記錄,這說明該進(jìn)程已經(jīng)啟動了。
3、 如果有某些進(jìn)程始終在內(nèi)存中,導(dǎo)致系統(tǒng)不能正常關(guān)閉時,可以將這些進(jìn)程殺掉,并將與之相關(guān)的隊列和內(nèi)存也都清掉;這些進(jìn)程往往都是由于運行中出現(xiàn)的異常導(dǎo)致僵死在內(nèi)存里了,需要手工干預(yù)的。
4、 有時候,有幾個操作人員在同時啟動系統(tǒng),會導(dǎo)致系統(tǒng)的某些進(jìn)程與主進(jìn)程失去聯(lián)系,這樣就很難關(guān)閉了,只好手工來殺掉(kill),并將與之相關(guān)的隊列、信號燈和共享內(nèi)存也都清掉(ipcrm)。
五、 交易連接失敗
1、環(huán)境變量設(shè)置有誤,特別是使用客戶端代碼,直接連接遠(yuǎn)端服務(wù)的;需要重新設(shè)定環(huán)境變量,如:WSNADDR,TUXCONFIG等等,環(huán)境變量設(shè)置正確后,再進(jìn)行交易就可以了。
2、對方交易沒有啟動,這是的出錯代碼在日志文件中tperrno=6,是很典型的,找不到相應(yīng)的服務(wù);檢查服務(wù)是否存在,重新啟動服務(wù)即可。
3、在代理集中點上常常因為某條隊列(32或 3e8)阻塞,影響幾個進(jìn)程的訪問,如操作員注冊等會因為超時而失敗;只需要將這兩條隊列清空就可以了。
六、成交回報的交易出錯
1、 進(jìn)程(gwreadfs)啟動時有錯誤;檢查網(wǎng)關(guān)機(jī)上環(huán)境設(shè)置是否正確,查看文件~/etc/envfile中的內(nèi)容,并根據(jù)其中的環(huán)境變量MCHSNDFILE和FSNDLOG所指定的文件, 如:~/da
2、 成交回報的內(nèi)容沒有正確的傳到代理集中點上,要檢查文件:senderr.log看其中的代理集中點號是否正確,主要是位置是否正確,并且看看在路由表中是否有配置,這類問題在測試初期曾出現(xiàn)過多次。
3、 交易過程中,文件如果被刪除掉了,(特別是目前放在臨時目錄下的這種情況),就需要在啟動進(jìn)程前,手工創(chuàng)建一個同名的空文件matchsend.txt;如果進(jìn)程已經(jīng)啟動,則需要重新啟動該進(jìn)程。