Tuxedo簡介
Tuxedo是一個客戶機/服務器的中間件產品,Tuxedo是基於socket編程的。它在客戶機和服務器之間進行調節,保證正確處理事務,是一個數據處理監督器。
tuxedo下載oracle官網地址:
http://www.oracle.com/technetwork/cn/middleware/tuxedo/downloads/index.html
Tuxedo發展
Tuxedo研發中心在北京。
1983AT&T貝爾實驗室誕生(UNIX平臺)。
1989USL//unixsystemlaboratories得到
1993//novell
1996//BEA
2008//oracle
Tuxedo安裝
三種安裝方法:
1.圖形安裝GUI。
2.命令行安裝console
3.靜默安裝(批處理)腳本
Groupaddoracle//增加oracle組
useraddoracle-goracle//添加oracle用戶
Passwdoracle//設置oracle密碼
chownoracle:oracle*//更改屬組到oracle上。
chmod+x//增加執行
./tuxedo安裝文件-iconsole//默認爲GUI安裝增加了-Iconsole就可以在圖形界面安裝了。
解包到temp目錄
一路回車就可以。
安裝完成後temp文件被刪除。
運行環境變量
Sh./tux.env
TUXDIR=/app/tuxedo/bea/tuxedo10gR3;exportTUXDIR
JAVA_HOME=$TUXDIR/jre;exportJAVA_HOME
JVMLIBS=$JAVA_HOME/lib/amd64/server:$JAVA_HOME/jre/bin
PATH=$TUXDIR/bin:$JAVA_HOME/bin:$PATH;exportPATH
COBCPY=:$TUXDIR/cobinclude;exportCOBCPY
COBOPT="-CANS85-CALIGN=8-CNOIBMCOMP-CTRUNC=ANSI-COSEXT=cbl";exportCOBOPT
SHLIB_PATH=$TUXDIR/lib:$JVMLIBS:$SHLIB_PATH;exportSHLIB_PATH
LIBPATH=$TUXDIR/lib:$JVMLIBS:$LIBPATH;exportLIBPATH
LD_LIBRARY_PATH=$TUXDIR/lib:$JVMLIBS:$LD_LIBRARY_PATH;exportLD_LIBRARY_PATH
WEBJAVADIR=$TUXDIR/udataobj/webgui/java;exportWEBJAVADIR
tmadmin–v//快速測試,返回版本號安裝成功
INFO:oracletuxedo,version10.3.0.0,64bit,patchlevel(none)
Tuxedo的目錄結構
Cd/app/tuxedo/bea/tuxedo10gR3
Tux.env//tuxedo的環境變量。
Samples//示例:atmi、corba、jolt。
Jre//java運行環境。
Help//幫助文件。GUI用到。
Bin//二進制可執行文件,tuxedo:1、可執行文件2、動態庫:開發時使用的。
Uninstaller//刪除使用。
Locale//設置語言。
Udataobj//類似控制管理目錄。
Lib//動態庫,用於連接。
Include//頭文件開發需要用到由其ATMI很重要。
Cobinclude//
注:tuxedo客戶端需要的是bin、lib和include這三個文件。
卸載tuxedo
刪除前要結束所有的tuxedo的程序
1、Shutdown-y
2、可以刪除所有tuxedo的目錄。
3、Cd$tuxedir/uninstall
4、shUninstall_Tuxedo_10.0–iconsole//
部署tuxedo的基本應用
UBBCONFIG//配置文件,也可以叫其他名字。由開發人員配置,管理人員可以根據負載情況可以更改。
它主要包括四個參數:resources、machines、groups、servers。
Tuxedo的部署過程:
1、設置環境變量
2、編輯ubbconfig//tmloadcf–yubbconfig生成二進制文件
3、C語言程序server端或者client端程序,需要.h頭文件或者其他源碼程序。
4、Buildclient//編譯客戶端生成客戶端的可執行文件
5、Builidserver//編譯服務端生成服務端的可執行文件
6、Tmboot–y//啓動程序。
設置環境變量
可以把設置環境變量設置到.bash_profile中,每次啓動時會自動執行,每個用戶都有個.bash_profile。
需要至少設置的環境變量(4個):
1、TUXDIR(tuxedo服務文件位置)
2、TUXCONFIG(應用配置文件位置)
3、LD_LIBRARY_PATH(庫文件位置)
4、APPDIR(應用位置)
編輯配置文件
tmloadcf–yubbconfig生成二進制文件
tmunloadcf>UBB_TEXT//可以反編譯將二進制從新生成可讀配置文件,可以重新定向生成文件。
編譯後臺程序
buildserver–osimpserv–fsimpserv.c–sTOUPPER
Buildclient–osimpcl–fsimpcl.c
-o功能和gcc的-o相同simpserv爲生成的文件名,-f後面跟着源文件,simpserv。C爲源文件,-s後的TOUPPER爲在這個服務中service名就是大寫轉大寫的函數。
生成的文件必須名必須和配置文件中的名字相同。否則不能在磁盤中找到。
開啓服務
開啓之前關閉selinux進入/etc/selinux/config
設置selinux=disabled。
Tmboot–y//啓動tuxedo
-A//只啓動管理進程(如:DBBL,BBL,Bridge)。
-l//啓動指定機器上的進程
-g//啓動某一組的進程。
-I//啓動指定serverid
-s//根據文件名啓動
-w//快速啓動(很少有人用)
-y//相當於yes
-e//任何一個進程失敗(-e後可以跟程序或者腳本)例如:-etmshutdown
Tmboot中的可選項也適用於tmshutdown,只是相反的操作
注:tmshutdown只能在masternode機器上使用
-w//延時多久後關閉server
-c//強制tmshutdown–c,(當有客戶端連接時強制退出)
server和client在一臺機器上是ipc通訊,不同機器爲tcp通訊
Tuxedo管理工具
Tmadmin//console管理命令,類似sqlplus命令。
注:Tmadmin必須運行在master機器上;在命令行執行tmadmin後,使用help命令可以查看當前的幫助信息;同一時間使用tmadmin用戶,只有第一個登陸的纔有特權如(shutdown,boot等),其他用戶也可以使用tmadmin但是隻能查看viewinfo視圖信息。
Ipcs//同一臺機器上的進程間通信
Socket//不同機器進程間的通信。
IPC在單臺機器不同間進程通信,Socket解決不同電腦間進程間通信。
Psr//獲取servers的信息
Psc//獲取services的信息
Help//將支持的命令都列出來
RqDone是指處理了幾筆交易。
Psr//打印server信息
Psc//打印service信息
Pq//打印隊列信息
Pclt//打印客戶端信息
Tuxedo的基本配置
配置文件:文本文件或二進制文件
section一共8節:(*星號開頭):
*RESOURCES//tuxedo的domain支持集羣,多臺機器組成一個system,適合跨機器集羣使用tuxedo統治下的所有的機器,是必須(Required)的。統管全局。
*MACHINES//定義的一臺機器的信息,只管自己機器是必須的(Required)。
*GROUPS//是邏輯概念,應用服務的組名,不同的組放到不同的機器上。
*SERVERS//是真實的概念,server分組是爲了便於管理。
*SERVICES//就是函數
*ROUTING//數據依賴路由
*NETGROUPS//設置集羣使用,網絡工作組
*NETWORK//設置集羣使用
注:如果在單機運行使用前五個參數就可以,UNIX大小寫敏感。
如果爲Windows一定大寫。“#”表示註釋。
*RESOURCES配置
IPCKEY//tuxedo在運行時會分配IPC共享內存、信號量、隊列等IPC資源,IPC全局調用唯一的,範圍是32769~262142,IPCKEY類似Oracle的SID。
MASTER//指定主機,hostname查看
MODEL//單機SHM,多機MP。
MAXACCESSERS//同時訪問BB共享內存塊的進程數。
MAXSERVERS//最大進程數(是所有進程的綜合)。
MAXSERVICES//可以對外提供的最大的services數。
Scanunit一次掃描時間
Sanityscan:間隔多少時間
Blocktime超時時間信息
BBL至少5分鐘會掃描一次看包是否損壞。
Oracle很佔資源,Tuxedo佔用資源較少。
Configuremachine段
LMID://操作系統給機器定義的名字uname–n對應的名字。
TUXCONFIG://編譯好的二進制的文件的路徑。
TUXDIR://tuxuedo的根目錄。
APPDIR://應用目錄。
Configuregroups段
LMID//指定在那個組
GRPNO//0-30000個。
Configureservers段
Srvgrp:服務組名
Srvid:在SERVERS中同組的SRVID必須唯一。
MIN文件是一次啓動的的服務數量。
看到ULOG可以看到系統日誌。
BBL爲管理進程,當報沒有足夠的BB空間時需要增加MAXACCESSERS、MAXERVERS、MAXSERVICES的值。
配置實例
*resources
IPCKEY39211
MASTERipapfrt8
MODELSHM
*MACHINES
DEFAULT:MAXWSCLIENTS=500
"ipapitf8"LMID=ipapitf8
APPDIR="/home/tuxedo/work/application"
ULOGPFX="/home/tuxedo/work/Logfile/ULOG"
MAXWSCLIENTS=2500
TUXCONFIG="/home/tuxedo/work/application/tuxconfig"
TUXDIR="/home/tuxedo/bea/tuxedo10gR3"
*GROUPS
GROUP1LMID=ipapitf8GRPNO=1OPENINFO=NONE
GDMADM01LMID=ipapitf8GRPNO=7OPENINFO=NONE
*SERVERS
DEFAULT:
RESTART=YGRACE=3600MAXGEN=100
DMADMSRVGRP=GDMADM01SRVID=29030
GWTDOMAINSRVGRP=GDMADM01SRVID=29050REPLYQ=N
日誌管理
ULOG日誌是最重要的日誌管理工具,它的路徑可以在“machine”中自己指定ULOGPFX="/home/tuxedo/work/Logfile/ULOG"
時分秒.機器名字!進程名.
ERR//錯誤我們需要關心。
WARN(WARNING)//警告我們需要關心的。
INFO//信息我們一般不需要關心
ipcrm//可以刪除死掉的ipc資源
tmipcrm//刪除所有的ipc資源
Tuxedo客戶端配置
BB爲tuxedo的核心部分。類似Oracle的SDI,BRIDGE爲長連接。
env|grepTUX//讀取tuxedo的配置參數。
NativeClient從環境變量(tuxconfig)中讀取配置文件讀取IPCKEY,根據IPCKEY讀取共享內存(tuxedo的BB)如果是本地的那麼就執行本地的SERVICEA,如果是遠端的那麼通過長連接的BRIDGE長連接進程讀取遠端的BB執行到SERVICEB。
Tuxedo是就與WS工作站子系統。
WSL//WorkstationListener監聽進程
WSH//WorkstationHandler工作站握手
客戶端先和WSL建立連接,然後交給WSH處理。
UBBCONFIG中客戶端配置:
CLOPT=“-A---n//gumby:9977–m2–M5-x5”
命令行參數含義:
-A左邊的參數
“—”雙斜槓爲分隔符。
-n//gumby:9977–n網絡連接,雙斜槓後爲用戶名/IP:端口(-n//表示WSL在這樣的IP和端口號環境監聽)。
-m2WSH啓動時啓動2個進程。
-M5當負荷加大時啓動5個進程。
-x5表明WSH可以最多維繫5個客戶端連接。
注:啓動時最多可以連接2*5=10個客戶端,當負荷加大時最多可以連接5*5=25個客戶端。
-I設置超時,當tpinit是的超時時間,如果超時就斷開連接
-N網絡的超時時間
-T客戶端已連接但是不做事情,佔用WSH的資源設置超時如果超時多久就會斷開連接。
-K在http1.1協議中的keepalive,瀏覽網頁時會有很多的資源(圖片、flash等)等通過一個鏈接下載所有的資源,建立一次鏈接在這個鏈接上多次發送通訊。
-p小寫p最小的WSH端口
-P大寫P最大的WSH端口
建議在配置CLOPT中-n//後儘量寫具體的IP不要寫機器名字因爲需要解析多了個環節可能會出錯。
更多的可以關注小布老師的視頻,他是我oracle的締造者這回又成爲我tuxedo的入門者,非常感謝愛學習可以多多關注它的論壇boobooke.com,呵呵