tuxedo之UBBCONFIG介紹

來源:互聯網
上載者:User

設定檔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/linux下用uname -n 或者hostname 查看SERVER的名字,
2. 在NT,windows下用ECHO %COMPUTERNAME%或者hostname 查看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服務,並把結果返回給用戶端,這一切對用戶端來說是透明的

問題1:
tmloadcf -y ubb出現如下錯誤:
NLS:4: Cannot open message catalog CMDTUX_CAT, set 1, num 883; check TUXDIR=/home/dev/app/tuxedo8.1, LANG=zh_CN.GB18030
顯然跟環境變數的設定有關
export LANG=C
export LC_ALL=C
重新執行tmloadcf -y ubb,沒有錯誤,問題解決

http://www.cnblogs.com/macros/articles/685015.html 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.