TUXEDO配置參數詳解

 
2007-07-10 09:39:47
TUXEDO應用系統的配置
3.1 TUXEDO應用系統的常見配置
配置文件UBBCONFIG介紹
一個TUXEDO應用系統的所有資源都在一個文本文件中進行定義,該文件稱爲UBBCONFIG,在配置完成後,UBBCONFIG被編譯成一個二進制的文件TUXCONFIG.在TUXEDO系統啓動時,從該文件中讀取系統的配置信息。 UBBCONFIG文件類似WINDOWS下的*.INI文件。它包括以下9大部分, 我們稱之爲節,RESOURCES,MACHIENS,GROUPS
這三個節必須的,其他的節是可選的。
RESOURCES(必需): 與整個系統有關的配置信息
MACHINES(必需): 一個TUXEDO應用系統可以跨越多臺服務器,在該節中配置與每臺服務
器有關的信息
GROUPS(必需): TUXEDO中的服務可被分爲多個組,在該節中配置與組有關的信息
SERVERS(可選): 與SERVER有關的信息在該節配置
SERVICES(可選): 與SERVICES有關的信息在該節配置
NETWORK(可選):與網絡有關的信息在該節配置
ROUTING(可選) :路由規則在該節配置
NETGROUPS(可選):與網絡分組有關的信息在該節配置
名稱解釋:
TUXEDO應用系統
一個TUXEDO應用系統包括服務端,客戶端,服務端安裝在服務器上,客戶端一般安裝在PC機上,從開發角度看,一個TUXEDO應用系統包括服務端程序,客戶端程序,一個配置文件。此外,一個TUXEDO應用系統可以部署在一臺服務器上,也可以部署在多臺服務器上。
SERVER:
服務端程序用C或COBAL編寫,每一個程序文件編譯成一個相應可執行文件,該可執行文件在運行時稱爲SERVER,它實際上就是一個進程。每個SERVER都有一個名字,也就是該進程的名字。爲與TUXEDO應用系統的服務端區分,我們在本書中,我們用SERVER表示該進程,用服務端表示TUXEDO應用系統的服務端。
SERVICE:
在每個服務端程序中,主要是一個個的函數,在TUXEDO中稱這些函數爲SERVICE,一般
也稱之爲服務。在該SERVICE中實現業務邏輯,在客戶端中調用這些SERVICE來實現各
種操作,如在前面的例子simpapp中,服務端程序爲simpserv.c,它編譯成可執行文件
simperv, simpserv就是一個SERVER,該SERVER包括SERVICE:TOUPPER。

下面我們給出一個配置文件的例子:
*RESOURCES
IPCKEY 123456
MASTER simple
UID 0
GID 0
PERM 0666
MAXACCESSERS 100
DOMAINID simpapp
MODEL SHM
LDBAL Y
SCANUNIT 10
SANITYSCAN 12
BLOCKTIME 6
NOTIFY DIPIN
MAXCONV 10
*MACHINES
"MYSYS" LMID="simple"
TUXCONFIG="d:/tuxdemo/pbdemo/tuxconfig"
TUXDIR="d:/tuxedo65"
APPDIR="d:/tuxdemo/pbdemo"
TLOGDEVICE="d:/tuxdemo/pbdemo/TLOG"
TLOGNAME="TLOG"
TLOGSIZE=100
MAXWSCLIENTS=5
CMPLIMIT="MAXLONG,MAXLONG"
NETLOAD=0
SPINCOUNT=0
MAXACLCACHE=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"
"simpserv" SRVGRP="GROUP1" SRVID=1
CLOPT="-A"
RQADDR="simpserv"
RQPERM=0660 REPLYQ=Y RPPERM=0660 MIN=5 MAX=5 CONV=N
MAXGEN=1 GRACE=86400 RESTART=N
"WSL" SRVGRP="GROUP1" SRVID=1116
CLOPT="-A -- -n //MYSERVER:8888 -m 2 -M 5 -x 6"
*SERVICES
"TOUPPER"
LOAD=50 PRIO=50
BUFTYPE="ALL"
TRANTIME=30
AUTOTRAN=N
*ROUTING
各節之間的包含關係:
從上到下,是一對多的關係,即:一個TUXEDO系統可以跨越多臺服務器,一臺服務器上可以有多個GROUP,但一個GROUP只能在一臺服務器上,一個GROUP中可以有多個SERVER,一個SERVER中可以有多個SERVICE。

下面我們分別對每個節種具體的常見配置進行說明,NETWORK,NETGROUP,ROUTING三節及其他比較高級的配置我們在後面的內容中說明
RESOURCES(必需):
該節是必須的,在這裏配置與整個TUXEDO應用系統有關的信息,主要包括:
IPCKEY: TUXEDO使用它標識公告板及其他的IPC資源。它不能與該服務器上其他的IPC資源的ID號衝突範圍:32,769-262,142
MASTER: 指定該TUXEDO應用系統的MASTER服務器,在該服務器上對整個TUXEDO系
統進行管理配置,可以爲該MASTER服務器指定一臺備份服務器,當該MASTER
服務器當機時,可從BACKUP服務器上進行管理。在進行系統遷移時,也要指定
BACKUP服務器。
DOMAINID:該TUXEDO應用系統的唯一標識
UID, GID, PERM:這三個參數控制對系統IPC資源的存取權限
UID: 可對該TUXEDO應用系統進行管理的TUXEDO系統管理員的用戶ID,在UNIX下
就是UNIX系統的用戶ID,默認爲執行TMLOADCF的用戶的ID。在NT下該設置
沒有用,要設爲0。
GID: 在UNIX下爲UID中所指定的用戶所在的組ID,在NT下該設置沒有用,要設爲0
PERM: 指定對TUXEDO系統IPC資源的存取權限。默認值爲0666,即任何人都可以對該IPC資源進行存取。
MAXACCESSERS,MAXSERVERS,MAXSERVICES:這三個參數控制該TUXEDO應用系統對IPC資源的使用情況。
MAXACCESSERS: 在本系統的一個節點(一臺服務器)上,同時可以有多少個進程可以訪問
該TUXEDO系統的公告板,默認值爲50,它包括本地客戶端進
程,SERVER進程,但不包括管理進程如:BBL,DBBL等
MAXSERVERS: 在本系統中,總共可以有多少個SERVER存在,包括進行管理的SERVER,
如:BBL,TMS等。默認值爲50。
MAXSERVICES: 在本系統中,總共可以有多少個SEVICE存在, 默認值爲100。
 
TUXEDO應用系統的部署方式:
一個TUXEDO應用系統可能部署在一臺服務器上或多臺服務器上,也可能是部署在共用一塊全局共享內存的幾臺服務器上,可在MODEL,OPTIONAS中配置該TUXEDO應用系統的部署模式。
MODLE:
SHM: 單機或多臺服務器但共用一個全局共享內存
MP: 多臺服務器但沒有共用一個全局共享內存
OPTION: LAN: 是多機(MP)部署模式
MIGRATE: 可對該系統進行遷移

TUXEDO的管理進程BBL定時對它所在的服務器上的TUXEDO系統進行檢查,檢查超時的事務,超時的客戶端連接等。
SCANUNIT: 指定檢查的最小時間單位,它單位爲秒,必須是5的倍數。默認值爲10,即10
秒。
SANTIYSCAN: 每隔多少個SCANUNIT檢查一次, SANITYSCAN*SCANUNIT不能大於
300秒。默認值爲12,即120秒
BLOCKTIME: 指定一個消息可以阻塞多長時間,如果過了SANITYSCAN*SCANUNIT秒該
消息還沒有發送出去,將超時出錯。 SANITYSCAN*SCANUNIT不能大於
32767秒。默認值爲6,即60秒。
同步調用的超時說明
對同步調用TPCALL,指從TPCALL()開始調用,到SERVER端的返回結果到到該客戶端並寫到輸入緩衝區這一段時間。包括:
客戶端開始調用TPCALL()
把數據通過網絡發送到SERVER端
SERVER端的處理時間
SERVER端把處理結果通過網絡返回給客戶端
客戶端TPCALL()調用返回
異步調用和會話方式的超時說明
對異步調用和會話方式,當一個進程調用TPACALL(),TPCONNECT(),TPSEND()時,超時時間只包括如果接收隊列滿時,這些調用的等待時間,如在TPACALL()中,所調用的SERVICE的接收隊列如果滿了,那麼TPACALL()可阻塞在那裏,直到該隊列不滿,可以接收該TPACALL()發送的請求。從TPACALL()開始阻塞到TPACALL()返回這段時間爲它的超時時間。
對TPGETRPLY(),TPRECV()的超時時間是指如果要接收的隊列爲空時,它們應該阻塞在那裏等待有消息到來的時間。
如:超時時間爲60秒, 一點整調用TPGETRPLY()從接收的隊列取消息,這時接收隊列爲空,如果到了一點零一分該接受隊列還爲空,那麼TPGETRPLY()將超時出錯。
LDBAL: 要不要進行負載均衡,Y:要,N:不要,默認值爲不要
MAXCONV: 在一臺服務器上最多可以有多少個會話同時存在。範圍:0-32768,默認值爲10
NOTIFY : 設置消息的通知方式,有以下3種:默認爲DIPIN
IGNORE: 該TUXEDO系統中的CLIENT不接收任何消息
SIGNAL: 用SIGUSR1,SIGUSR2信號通知CLIENT有消息到來,如果在非UNIX平臺上設
置採用該方式,那麼會被自動轉化爲DIPIN方式。
DIPIN: 當CLIENT調用ATMI函數時,順便檢查看是否有消息,如果有就發送給該
CLIENT默認值爲DIPIN

*MACHINES(必需):
該TUXEDO應用系統所包含的每臺服務器都要在該節中進行配置
LMID: 在TUXEDO,要爲該應用系統中的每臺服務器指定一個邏輯服務器名。如在上面的例子中,TUXEDO應用服務器MYSYS對應的邏輯服務器名爲:simple,
TUXEDO應用服務器名的查看方法:
1. 在UNIX下用uname -n 查看SERVER的名字,
2. 在NT,WIN2000下用ECHO %COMPUTERNAME$查看SERVER的名字
注意:如果SERVER的名字太長(>8)或含有“.”等可以" "引起來,如: "DEMOSERVER.COM"
TUXCONFIG: 配置文件TUXCONFIG所在的路徑
TUXDIR: TUXEDO的安裝目錄
APPDIR: TUXEDO應用系統所在的目錄
注意:TUXCONFIG,TUXDIR,APPDIR的值要與它們在環境變量中的設置的值一樣
ENVFILE: 該服務器上與TUXEDO有關的環境變量(如FIELDTBLS等)可以放到一個文件中,在ENVFILE中指定該文件名。
TYPE: 指定該服務器的類型,當兩臺服務器的TYPE不一樣時,在它們之間傳送數據時要進行
編碼/解碼工作
ULOGPFX: 指定ULOG文件所在的目錄及前綴。默認目錄爲$APPDIR,前綴爲ULOG。
UID,GID,PERM,MAXACCESSERS,MAXCONV這些在RESOURCES中的配置,在MACHINES中可以被重新配置,並且這些新的配置值會覆蓋在RESOURCES中的配置值。

*GROUPS(必需):
在TUXEDO中,要對SERVER進行分組,配置GROUP主要有三個目的,
1.因爲GROUP與數據庫之間是一對一的關係,在一TUXEDO應用系統中,如果有多個數據庫,就要配置多個GROUP,在該GROUP中配置TUXEDO與數據庫的連接參數等。
2. 數據依賴路由是以GROUP爲單位的。
3.進行系統遷移時也時以GROUP爲單位的一個GROUP有一個名字,還有一個GROUP
ID,GROUP的名字和GROUP ID在一個TUXEDO系統中必須唯一。
每個GROUP要指定該GROUP所在的服務器,及它的ID號,如果該GROUP中的SERVER
要與數據庫或其他的資源管理器相連,那麼要在OPENINFO中設置連接的參數。具體的配置我們在講數據庫編程時再說明。
*SERVERS:
該系統所包含的所有的SERVER都在該節進行配置。
在DEFAULT中的設置對所有的SERVER起作用。
SRVGRP: 該SERVER所在的GROUP
SRVID: 該SERVER所對應的ID,在一個GROUP中必須唯一
MIN: 該SERVER最少啓動的進程數
MAX: 該SERVER最多可啓動的進程數
RESTART,RCMD,MAXGEN,GRACE: 在TUXEDO系統了,當一個SERVER進程因某中原因死掉時,可設置它可以自動重起,這4個參數指定TUXEDO的重起信息。
RESTART 該進程死掉時是否可以自動重起,默認爲N(不可以)
GRACE,MAXGEN:在GRACE秒內,該進程最多可以重啓MAXGEN次。
RCMD: 指定該SERVER重啓時,要執行的一個可執行文件名
注意:
1.爲了使一個SERVER可以自動重起,光設置了RESTART=Y還不夠,還要設置
GRACE,MAXGEN才能在該SERVER死掉時,自動重起,
2. 該SERVER能夠被自動重起的一個前提條件時它還沒有被從BULLITION BOARD中清
除。
例子:
test SRVGRP=GROUP1 SRVID=1 RESTART=Y GRACE=100000 MAXGEN=255
該設置指定在100000秒的時間內,SERVER進程:test可以啓動255次。
在缺省情況下,TUXEDEO的每一個SERVER對應一個請求隊列,該SERVER從該請求隊列中取客戶端發來的請求,並把處理的結果通過該請求隊列返回給客戶端,TUXEDO的SERVER可以配置成多個SERVER對應一個請求隊列,即MSSQ方式,以提高響應的速度。
與MSSQ有關的參數是:
RQADDR:該請求隊列的名字,一般設成與該SERVER的名字一樣
RAPERM:該請求隊列的存取權限,默認爲0666
REPLYQ:該SERVER中的某個SERVICE調用其他的SERVICE,並有返回結果,則應設置
REPLYQ=Y,即把其他SERVICE的應答放到該隊列中
CONV: 該SERVER是否採用會話(CONVERSATION)通訊方式,注意採用會話通訊方式的SERVICE要單獨在一個SERVER中,不能與採用其他通訊方式的SERVICE在同一個SERVER中,並且該SERVER要設置CONV=Y
CLOPT: 指定該SERVER的啓動參數。默認爲-A,即再該SERVER啓動時,發佈該SERVER
包含的所有的SERVICE。通用的有:
-e: 指定錯誤輸出文件,默認爲$APPDIR下的stderr
-o: 指定標準輸出文件,默認爲$APPDIR下的stdout
-r: 記錄該SERVER中SERVICE每次調用的處理時間,並記錄在錯誤輸出文件中,然後可採用
TUXEDO的性能分析工具txrpt對該SERVER進行性能分析。
-A: 發佈該SERVER包含的所有的SERVICE
 
*SERVICES:
在SERVICES中可針對每個SERVICE進行配置,主要有:
AUTOTRAN: 調用該SERVICE時是否自動啓一個全局事務。默認爲N
LOAD:如果採用負載均衡,指定該SERVICE的負載因子,默認爲50
PRIO: 指定該SERVICE的優先級,默認爲50
DDR: 指定數據依賴路由規則
與遠程客戶端有關的配置:
1.在MACHINES中要配置MAXWSCLIENTS,即最多可以有多少個遠程客戶端同時連接
到該服務器上,在上面的例子中爲5個
2. 在SERVERS中要配置SERVER:WSL
WSL SRVGRP="GROUP1" SRVID=1116 CLOPT="-A -- -n //192.168.120.113:8888 -m 2 -M 5 -x 6"
說明:
-n //192.168.120.113:8888: 遠程客戶端通過該端口與服務器建立連接
-m 2 :最少啓動多少個WSH進程
-M 5::最多啓動多少個WSH進程,默認值爲MAXWSCLIENTS/m
-x 6:每個WSH進程可同時處理多少個遠程客戶端
3.程客戶端所在的服務器上要配置WSNADDR環境變量,它的值爲-n參數的值,如在上面的配置中爲:
SET WSNADDR= //192.168.120.113:8888
配置文件UBBCONFIG的編譯:
用下面的命令進行編譯:
tmloadcf –y UBBCONFIG文件名
如:下面的命令編譯名爲ubbsimple的TUXEDO配置文件,生成二進制的配置文件
TUXCONFIG
tmloadcf –y ubbsimple
有時候在改變了TUXCONFIG的目錄後,執行tmloadcf,會出現類似下面的錯誤,可把原來的TUXCONFIG文件刪除,然後再編譯。
D:/simpdb>tmloadcf -y ubb
CMDTUX_CAT:1601: ERROR: TUXCONFIG,TUXOFFSET d:/simpdb/tuxconfig 0 doesn't match first device entry on configuration d:/tuxdemo/simpdb/tuxconfig 0
D:/simpdb>del tuxconfig
D:/simpdb>tmloadcf -y ubb
D:/simpdb>
用tmunloadcf命令可對二進制的配置文件TUXCONFIG的進行反編譯
如下面的命令反編譯TUXCONFIG,並把結果輸出到文件myubb中。通過反編譯TUXCONFIG可查看該TUXEDO應用系統的一些屬性默認值。
Tmunloadcf >myubb
 

3.2 多機(MP)模式的配置
一個TUXEDO應用系統可以部署在多臺服務器上,這些服務器通過網絡連接,這種部署方式稱爲MP方式,在這些服務器中要選擇一臺服務器做MASTER服務器,在該服務器上有一個DBBL進程,負責整個TUXEDO應用系統的管理工作。在每臺服務器上都有一個BBL進程,它與DBBL進程進行通信,管理各自服務器上的配置。每臺服務器上還有一個名爲BRIDGE的進程和一個名爲TLISTEN的進程,他們負責服務器之間的通訊。MP模式的結構如圖:
 

如果配置了MP方式,那麼在這些服務器之間可以做負載均衡和容錯,客戶端可以和其中的任何一臺服務器建立連接,如果該服務器上沒有該客戶端所要調用的服務(SERVICE),TUXEDO可以自動把請求發送到別的有該服務的機器取處理,並把結果返回個客戶端,如圖,SITE1上的客戶端調用了TRANSFER,當在SITE1上沒有該SERVICE,在SITE3上有,
那麼SITE1通過BRIDGE把請求發送到SITE3上,SITE3把處理結果也通過BRIDGE發送到SITE1上,通過SITE1把結果返回給該客戶端。這些對客戶端時透明的。
如果SITE1,STIE2,SITE3上都有TRANSFER,並且設置了負載均衡(LDBAL =Y),那麼TUXEDO將根據他們的負載情況把請求發送到負載較小的服務器上。
如果SITE1,SITE2,SITE3中的某一臺或兩臺服務器出故障了,那麼正常的機器仍然能夠繼續運行,如果時他們之間的網絡連接斷了,BRIDGE進程會自動進行重試,並且在這些服務器之間可以配置多個網絡連接通路,當其中的一個出現故障時,會自動採用別的連接通路。
所以MP方式提供了一個高可靠性的分佈式應用系統。
配置成MP方式的步驟:
1. 這些服務器之間可以通過網絡互相訪問
2. 在每臺服務器上都正確安裝了TUXEDO SERVER
3. 應用已發佈到這些服務器上
4. 選擇一臺服務器做MASTER機,
6. 在RESOURCES,MACHINES,NETWORK,NETGROUPS中做相應的配置
RESOURCE:
MODEL要設爲MP
OPTIONS中要有LAN
MASTER服務器上的DBBL負責與其他服務器上的服務器BBL進行通訊,
BBLQUERY: 每臺服務器上的BBL每隔SCANUNIT*BBLQUERY秒,向MASTER機上的
DBBL發送一次狀態信息。默認爲300秒
DBBLWAIT: 如果MASTER機沒有收到某臺服務器發送的狀態信息,它將等待
SCANUNIT*DBBLWAIT秒,如果還沒有收到該服務器發送的狀態信息,這臺服務
器將被分離出去(PARTITIONED),默認爲20秒
MACHIENS:
在MACHINES中要配置該TUXEDO應用系統包括的每臺服務器,如果該服務器時UNIX服務器,那麼要配置UID,GID,UID,GID爲TUXEDO用戶所對應的UID,GID,在UNIX下可以用ID命令查看。

NETWORK:
在該節中配置服務器之間通訊的IP地址及BRIDGE進程,
在一個MP方式的TUXEDO應用系統中,不同的服務器之間通過BRIDGE進程進行通訊,該BRIDGE的偵聽IP地址及端口
在NADDR中指定。如果是在UNIX下要指定該BRIDGE所用的網絡設備,如果是在NT下則不要。
在TUXEDO系統啓動前,不同服務器之間的通訊是通過tlisten進程來進行的,因爲這時還沒有BRIDGE進程。
NLSADDR爲tlisten進程偵聽的IP地址及端口。
一個MP方式的配置例子。
環境:WIN2000服務器一臺,安裝TUXEDO6.5, 服務器名WIN,IP地址:10.13.1.124
SUN5.8服務器一臺,安裝TUXEDO6.5, 服務器名SUN,IP地址:12.22.32.35
MASTER機爲WIN2000服務器,BACKUP機爲SUN。
在WIN2000服務器上的UBBCONFIG的內容如下,在SUN服務器上不用編寫UBBCONFIG文件。當啓動時DBBL會自動
把WIN2000服務器上的TUXCONFIG文件發送到SUN服務器上。
*RESOURCES
IPCKEY 87656
MASTER site1,site2
MAXACCESSERS 40
MAXSERVERS 40
MAXSERVICES 40
MODEL MP
OPTIONS LAN
*MACHINES
WIN LMID=site1
APPDIR="d:/tuxdemo/mp"
TUXCONFIG="d:/tuxdemo/mp/tuxconfig"
TYPE="win2000"
TUXDIR="d:/tuxedo65"
SUN LMID=site2
UID=1006
GID=30
APPDIR="/export/home/simpapp"
TUXCONFIG="/export/home/simpapp/tuxconfig"
TYPE="sun"
TUXDIR="/export/home/tuxedo"
*GROUPS
GROUP1
LMID=site1 GRPNO=1 OPENINFO=NONE
GROUP2
LMID=site2 GRPNO=2 OPENINFO=NONE

*NETWORK
site1 NADDR="//10.13.1.124:6000"
NLSADDR="//10.13.1.124:6001"

site2 NADDR="//12.22.32.35:6000"
NLSADDR="//12.22.32.35:6001"
BRIDGE="/dev/tcp"
 
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP2 SRVID=3
*SERVICES
TOUPPER

1. 在WIN2000服務器上把該UBBCONFIG編譯成TUXCONFIG
tmloadcf -y ubbmp
2. 在WIN2000服務器上啓動tlisten進程
tlisten -l //10.13.1.124:6001
3. 在SUN服務器上啓動tlisten進程
tlisten -d /dev/tcp -l /12.22.32.35:6001
4. 在WIN2000服務器上啓動該TUXEDO應用系統
tmboot -y
TUXEDO會先啓動WIN2000服務器上的進程,然後再啓動SUN服務器上的進程。
5. 在WIN2000服務器上執行
simpcl mp test
因爲WIN2000服務器上沒有TOUPPER服務,TUXEDO會自動調用SUN服務器上的TOUPPER服務,並把結果返回給客戶端,這一切對客戶端來說是透明的。
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章