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不要写机器名字因为需要解析多了个环节可能会出错。