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就可以在图形界面安装了。

204345398.jpg

解包到temp目录

204401129.png

一路回车就可以。

204418687.png

204437403.png

204452636.png

204512546.png

204527887.png

204543451.png

204557880.png

204612773.png

204626536.png

安装完成后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

tmadminv//快速测试,返回版本号安装成功

INFO:oracletuxedo,version10.3.0.0,64bit,patchlevel(none)

Tuxedo的目录结构

Cd/app/tuxedo/bea/tuxedo10gR3

Tux.env//tuxedo的环境变量。

Samples//示例:atmicorbajolt

Jre//java运行环境。

Help//帮助文件。GUI用到。

Bin//二进制可执行文件,tuxedo1、可执行文件2、动态库:开发时使用的。

Uninstaller//删除使用。

Locale//设置语言。

Udataobj//类似控制管理目录。

Lib//动态库,用于连接。

Include//头文件开发需要用到由其ATMI很重要。

Cobinclude//

注:tuxedo客户端需要的是binlibinclude这三个文件。

卸载tuxedo

删除前要结束所有的tuxedo的程序

1Shutdown-y

2可以删除所有tuxedo的目录。

3Cd$tuxedir/uninstall

4shUninstall_Tuxedo_10.0iconsole//

部署tuxedo的基本应用

UBBCONFIG//配置文件,也可以叫其他名字。由开发人员配置,管理人员可以根据负载情况可以更改。

它主要包括四个参数:resourcesmachinesgroupsservers

Tuxedo的部署过程:

1、设置环境变量

2、编辑ubbconfig//tmloadcfyubbconfig生成二进制文件

3、C语言程序server端或者client端程序,需要.h头文件或者其他源码程序。

4、Buildclient//编译客户端生成客户端的可执行文件

5、Builidserver//编译服务端生成服务端的可执行文件

6、Tmbooty//启动程序。

设置环境变量

可以把设置环境变量设置到.bash_profile中,每次启动时会自动执行,每个用户都有个.bash_profile

需要至少设置的环境变量(4个):

1、TUXDIRtuxedo服务文件位置

2、TUXCONFIG(应用配置文件位置)

3、LD_LIBRARY_PATH库文件位置

4、APPDIR(应用位置)

编辑配置文件

tmloadcfyubbconfig生成二进制文件

tmunloadcf>UBB_TEXT//可以反编译将二进制从新生成可读配置文件,可以重新定向生成文件。

编译后台程序

buildserverosimpservfsimpserv.csTOUPPER

Buildclientosimpclfsimpcl.c

-o功能和gcc-o相同simpserv为生成的文件名,-f后面跟着源文件,simpservC为源文件,-s后的TOUPPER为在这个服务中service名就是大写转大写的函数。

生成的文件必须名必须和配置文件中的名字相同。否则不能磁盘中找到。

开启服务

开启之前关闭selinux进入/etc/selinux/config

设置selinux=disabled

Tmbooty//启动tuxedo

-A//只启动管理进程(如:DBBL,BBL,Bridge)。

-l//启动指定机器上的进程

-g//启动某一组的进程。

-I//启动指定serverid

-s//根据文件名启动

-w//快速启动(很少有人用)

-y//相当于yes

-e//任何一个进程失败(-e后可以跟程序或者脚本)例如:-etmshutdown

Tmboot中的可选项也适用于tmshutdown,只是相反的操作

注:tmshutdown只能在masternode机器上使用

-w//延时多久后关闭server

-c//强制tmshutdownc,(当有客户端连接时强制退出)

serverclient在一台机器上是ipc通讯,不同机器为tcp通讯

Tuxedo管理工具

Tmadmin//console管理命令,类似sqlplus命令。

注:Tmadmin必须运行在master机器上在命令行执行tmadmin后,使用help命令可以查看当前的帮助信息同一时间使用tmadmin用户,只有第一个登陆的才有特权如(shutdownboot等),其他用户也可以使用tmadmin但是只能查看viewinfo视图信息。

Ipcs//同一台机器上的进程间通信

Socket//不同机器进程间的通信。

IPC在单台机器不同间进程通信,Socket解决不同电脑间进程间通信。

Psr//获取servers的信息

Psc//获取services的信息

Help//将支持的命令都列出来

204646607.png

RqDone是指处理了几笔交易。

Psr//打印server信息

Psc//打印service信息

Pq//打印队列信息

Pclt//打印客户端信息

Tuxedo的基本配置

配置文件:文本文件二进制文件

section一共8节:(*星号开头):

*RESOURCES//tuxedodomain支持集群,多台机器组成一个system,适合跨机器集群使用tuxedo统治下的所有的机器,是必须(Required)的。统管全局。

*MACHINES//定义的一台机器的信息,只管自己机器是必须的(Required)。

*GROUPS//是逻辑概念,应用服务的组名,不同的组放到不同的机器上。

*SERVERS//是真实的概念,server分组是为了便于管理。

*SERVICES//就是函数

*ROUTING//数据依赖路由

*NETGROUPS//设置集群使用,网络工作组

*NETWORK//设置集群使用

注:如果在单机运行使用前五个参数就可以UNIX大小写敏感。

如果为Windows一定大写。“#”表示注释。

*RESOURCES配置

IPCKEY//tuxedo在运行时会分配IPC共享内存、信号量、队列等IPC资源,IPC全局调用唯一的,范围是32769~262142IPCKEY类似OracleSID

MASTER//指定主机hostname查看

MODEL//单机SHM,多机MP

MAXACCESSERS//同时访问BB共享内存块的进程数。

MAXSERVERS//最大进程数(是所有进程的综合)。

MAXSERVICES//可以对外提供的最大的services数。

Scanunit一次扫描时间

Sanityscan:间隔多少时间

Blocktime超时时间信息

BBL至少5分钟会扫描一次看包是否损坏。

Oracle很占资源Tuxedo占用资源较少。

Configuremachine

LMID://操作系统给机器定义的名字unamen对应的名字。

TUXCONFIG://编译好的二进制的文件的路径。

TUXDIR://tuxuedo的根目录。

APPDIR://应用目录。

Configuregroups

LMID//指定在那个组

GRPNO//0-30000个。

Configureservers

Srvgrp:服务组名

SrvidSERVERS中同组的SRVID必须唯一。

MIN文件是一次启动的的服务数量。

看到ULOG可以看到系统日志。

BBL为管理进程当报有足够的BB空间时需要增加MAXACCESSERSMAXERVERSMAXSERVICES的值。

配置实例

*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"

204702906.png

时分秒.机器名字!进程名.

ERR//错误我们需要关心。

WARNWARNING//警告我们需要关心的。

INFO//信息我们一般不需要关心

ipcrm//可以删除死掉的ipc资源

tmipcrm//删除所有的ipc资源

Tuxedo客户端配置

BBtuxedo的核心部分。类似OracleSDIBRIDGE为长连接。

env|grepTUX//读取tuxedo配置参数。

NativeClient从环境变量(tuxconfig)中读取配置文件读取IPCKEY,根据IPCKEY读取共享内存(tuxedoBB)如果是本地的那么就执行本地的SERVICEA,如果是远端的那么通过长连接的BRIDGE长连接进程读取远端的BB执行到SERVICEB

204715716.png

Tuxedo是就与WS工作站子系统。

WSL//WorkstationListener监听进

WSH//WorkstationHandler工作站握手

客户端先和WSL建立连接,然后交给WSH处理。

204729490.png

UBBCONFIG客户端配置:

CLOPT=-A---n//gumby:9977m2M5-x5

命令行参数含义:

-A左边的参数

”双斜杠为分隔符。

-n//gumby:9977n网络连接,双斜杠后为用户名/IP:端口(-n//表示WSL在这样的IP和端口号环境监听)。

-m2WSH启动时启动2个进程。

-M5当负荷加大时启动5个进程。

-x5表明WSH可以最多维系5个客户端连接。

注:启动时最多可以连接2*5=10个客户端,当负荷加大时最多可以连接5*5=25个客户端。

-I设置超时,当tpinit是的超时时间,如果超时就断开连接

-N网络的超时时间

-T客户端已连接但是不做事情,占用WSH的资源设置超时如果超时多久就会断开连接。

-Khttp1.1协议中的keepalive,浏览网页时会有很多的资源(图片、flash等)等通过一个链接下载所有的资源,建立一次链接在这个链接上多次发送通讯。

-p小写p最小的WSH端口

-P大写P最大的WSH端口

建议在配置CLOPT-n//后尽量写具体的IP不要写机器名字因为需要解析多了个环节可能会出错。

更多的可以关注小布老师的视频,他是我oracle的缔造者这回又成为我tuxedo的入门者,非常感谢爱学习可以多多关注它的论坛boobooke.com,呵呵