最近在研究Tuxedo,想把它做成消息服务器,在网上搜了一些资料,真正入门级的太少了,搞了几天,终于在《Tuxedo安装license例子和远程客户端配置 》这篇文章指导下测试成功,真得很感谢这个作者。但此文也少了一些细节,如C开发环境的配置等,以下是我在实践和这篇文章结合下写的,也是作为自己的学习笔记吧。
一、Tuxedo简单介绍
Tuxedo作为电子商务交易平台,它允许客户机和服务器参与一个涉及多个数据库协调更新的交易.并能够确保数据的完整性。BEA Tuxedo一个特色功能是能够保证对电子商务应用系统的不间断访问。它可以对系统组件进行持续的监视,查看是否有应用系统、交易、网络及硬件的故障。一旦出现故障,BEA Tuxedo会从逻辑上把故障组件排除,然后进行必要的恢复性步骤。BEA Tuxedo根据系统的负载指示,自动开启和关闭应用服务,可以均衡所有可用系统的负载。以下列出Tuxedeo的一些技术特点。
服务整合
TUXEDO将原来的多个应用单元 (进程、Server),整合为应用单元中的一项功能服务(Services),通过多Server、多Services、多队列提高系统并发度,提高系统容量,无论Client端多请求AAAA、BBBB、ABCD、CCDD等,不可欲计地变化,都能把请求均匀地分配到各队列去,保证系统快速、平稳地运行。
高速数据通道
TUXEDO提供高速数据甬道,所谓数据通道,是指能够把前端的大量网络连接汇聚成较少的后端连接并减少数据传送量。采用数据甬道技术,保证应用系统即使在大量用户同时请求服务的时候,也能够保持快速、稳定的工作状态。
灵活多样的通讯机制
TUXEDO提供灵活多样的通讯机制,多达7种,既支持同步通讯又支持异步通讯。包括同步请求/回答方式、异步请求/回答方式、对话方式、广播通知方式、队列方式、事件订阅方式。
负载平衡
在网络环境中,根据可动态改变的服务的负载因子及网络通讯的负载因子(由用户根据服务器的性能和网络情况设置)的变化情况,将请求发向总负载最小的机器中的服务进程的请求队列。利用多服务进程单队列(MSSQ)机制,使多个服务进程能均匀地分担单一队列的请求。
伸缩性与动态配置的支持
TUXEDO支持“二维”的可伸缩性,它不仅可动态增加同类资源的个数来提高系统的性能和可用性,还可在系统中的任意位置动态增加不同机器、不同数据库、不同服务进程等异质资源,而不改变已存在的应用的结构
二、Tuxedo的安装
目前最新版本的应为tuxedo11gR1,下载完成后直接双击就可以安装了,可以选择安装服务器或者客户端。安装的时候需要选择bea的home目录和Tuxedo的目录,都可以采用默认配置。服务端还需要指定tlisten密码。其他都暂时不需要配置。安装时请勾选Simpapp,会安装相关样例程序。
三、Tuxedo环境设置
1.Tuxedo服务端程序开发语言为C或COBOL,本文的演示例子,也是以C编写的,所以我们需要安装好VC(本人是Microsoft Visual C++ 6.0)。
2.添加系统变量:
1).PATH=C:\Program Files\Microsoft Visual Studio\VC98\Bin;C:\Program Files\Microsoft Visual Studio\VC98;
2).INCLUDE=C:\Program Files\Microsoft Visual Studio\VC98\Include;
3).LIB=C:\Program Files\Microsoft Visual Studio\VC98\Lib;
4).NLSPATH=C:\tuxedo\tuxedo11gR1\locale\C
5).WEBJAVADIR=%TUXDIR%\udataobj\webgui\java
6).Path中包含 %TUXDIR%\BIN
四、在本机客户端调用的服务程序和本地客户端例子。
1.把C:\tuxedo\tuxedo11gR1\samples\atmi下的simpapp文件夹及下文件拷贝到C盘根目录(这个就是我们的样例程序)。
2.修改setenv.cmd,此文件提供了修改编译程序需要的环境。
set TUXDIR=C:\tuxedo\tuxedo11gR1 //tuxedo的安装路径,Tuexedo安装时已被设为全局变量,这里是重复设,可删除。
set APPDIR=C:\simpapp //源程序所在目录
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH% //%TUXDIR%\bin,已在全局变量中设过,这里是重复设,不要紧。
set TUXCONFIG=%APPDIR%\tuxconfig //注意不要在源程序目录下建这个tuxconfig
3.修改配置文件ubbsimple。注意代码后面的#后注释说明.
# (c) 2003 BEA Systems, Inc. All Rights Reserved. #ident "@(#) samples/atmi/simpapp/ubbsimple $Revision: 1.7 $" #Skeleton UBBCONFIG file for the TUXEDO Simple Application. #Replace the <bracketed> items with the appropriate values. *RESOURCES IPCKEY 78111 #随便写 #Example: #IPCKEY 781111 DOMAINID simpapp MASTER simple MAXACCESSERS 10 MAXSERVERS 5 MAXSERVICES 10 MODEL SHM LDBAL N *MACHINES DEFAULT: APPDIR="C:\simpapp" #按实际目录写 TUXCONFIG="C:\simpapp\tuxconfig" TUXDIR="C:\tuxedo/tuxedo11gR1" #Example: # APPDIR="/home/me/simpapp" # TUXCONFIG="/home/me/simpapp/tuxconfig" # TUXDIR="/usr/tuxedo" "WIN-LQ" LMID=simple #换成自己电脑名字,注意大写 #Example: #beatux LMID=simple *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO=NONE *SERVERS DEFAULT: CLOPT="-A" simpserv SRVGRP=GROUP1 SRVID=1 *SERVICES TOUPPER
4.配置文件的编译。
1).打开一个windows控制台,将目录变更为tuxedo应用程序所在目录,即C:\simpapp,运行setenv.bat。
2).编译配置文件:修改完配置文件后,就需要将其编译为二进制的配置文件,其名称和目录由系统变量TUXCONFIG决定,该变量已经在setenv.bat中设置
c:\simpapp>tmloadcf -y ubbsimple
若成功完成,则会生成tuxconfig,并会生成.adm文件夹。
5.编译客户端程序
buildclient -o simpcl -f simpcl.c
若成功,则可发现在目录下出现了simpcl.exe文件。
6.编译服务端程序
buildserver -s TOUPPER -o simpserv -f simpserv.c
若成功,则可发现在目录下出现了simpserv.exe文件。
7.启动服务器:
C:\simpapp>tmboot -y
启动成功后会告诉你,两个进程已经成功启动。
8.运行客户端
C:\simpapp>simpcl "hello,wenwen"
Returned string is: HELLO,WENWEN
客户端会将一个字符串传送给服务器,服务器返回该字符串的大写形式。变成大写说明成功。
9.关闭服务
C:/tuxedo_test/simpapp>tmshutdown –y
五、可在远程客户端调用的服务程序
1.把C:\tuxedo\tuxedo11gR1\samples\atmi下的simpapp文件夹及下文件拷贝到C盘根目录(这个就是我们的样例程序)。
2.修改setenv.cmd,此文件提供了修改编译程序需要的环境。
set TUXDIR=C:\tuxedo\tuxedo11gR1 //tuxedo的安装路径,Tuexedo安装时已被设为全局变量,这里是重复设,可删除
set WSNADDR=192.168.6.135:8888 //比本地客户端多了这个
set APPDIR=C:\simpapp //源程序所在目录
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH% //%TUXDIR%\bin,已在全局变量中设过,这里是重复设,不要紧。
set TUXCONFIG=%APPDIR%\tuxconfig //注意不要在源程序目录下建这个tuxconfig
3.修改配置文件ubbsimple。注意代码后面的#后注释说明.
# (c) 2003 BEA Systems, Inc. All Rights Reserved. #ident "@(#) samples/atmi/simpapp/ubbsimple $Revision: 1.7 $" #Skeleton UBBCONFIG file for the TUXEDO Simple Application. #Replace the <bracketed> items with the appropriate values. *RESOURCES IPCKEY 78111 #Example: #IPCKEY 781111 DOMAINID simpapp MASTER simple MAXACCESSERS 10 MAXSERVERS 5 MAXSERVICES 10 MODEL SHM LDBAL N *MACHINES DEFAULT: APPDIR="C:\simpapp" TUXCONFIG="C:\simpapp\tuxconfig" TUXDIR="C:\tuxedo/tuxedo11gR1" #Example: # APPDIR="/home/me/simpapp" # TUXCONFIG="/home/me/simpapp/tuxconfig" # TUXDIR="/usr/tuxedo" "WIN-LQ" LMID=simple MAXWSCLIENTS=5 #指定的最大客户端连接数 #比本地客户端例子调用加了这个 #Example: #beatux LMID=simple *GROUPS GROUP1 LMID=simple GRPNO=1 OPENINFO=NONE *SERVERS DEFAULT: CLOPT="-A" simpserv SRVGRP=GROUP1 SRVID=1 WSL SRVGRP=GROUP1 SRVID=5 CLOPT="-A -t -- -n //192.168.6.135:8888 -m 2 -M 5 -x 10" #WSL发布地址 比本地客户端例子调用加了这个 *SERVICES TOUPPER
4.配置文件的编译。
1).打开一个windows控制台,将目录变更为tuxedo应用程序所在目录,即C:\simpapp,运行setenv.bat。
2).编译配置文件:修改完配置文件后,就需要将其编译为二进制的配置文件,其名称和目录由系统变量TUXCONFIG决定,该变量已经在setenv.bat中设置
c:\simpapp>tmloadcf -y ubbsimple
若成功完成,则会生成tuxconfig,并会生成.adm文件夹。
5.编译客户端程序
buildclient -o simpcl -f simpcl.c
若成功,则可发现在目录下出现了simpcl.exe文件。
6.编译服务端程序
buildserver -s TOUPPER -o simpserv -f simpserv.c
若成功,则可发现在目录下出现了simpserv.exe文件。
7.启动服务器:
不过这次会启动三个进程,其中一个是 WSL 。 Look :
C:\simpapp>tmboot -y
Booting all admin and server processes in C:/tuxedo_test/simpapp/tuxconfig
INFO: BEA Tuxedo, Version 8.1
INFO: Serial #: 454493271161-2671077484631, Expiration NONE, Maxusers 1000000
INFO: Licensed to: Customer
Booting admin processes ...
exec BBL -A :
process id=2556 ... Started.
Booting server processes ...
exec simpserv -A :
process id=3564 ... Started.
exec WSL -A -t -- -n //192.168.6.135:8888 -m 2 -M 5 -x 10 :
process id=760 ... Started.
3 processes started.
8.运行客户端
以下交待
9.关闭服务。语句同上。
六、远程客户端
1.客户端IP地址:192.168.1.131
2.在131机子安装好Tuxedo程序。
3..把C:\tuxedo\tuxedo11gR1\samples\atmi下的simpapp文件夹下 (Setenv.bat、Simplecl.c)拷贝到C盘根目录(这个就是我们的样例程序)。
4.修改setenv.cmd,此文件提供了修改编译程序需要的环境。
set TUXDIR=C:\tuxedo\tuxedo11gR1 //tuxedo的安装路径,
set WSNADDR=192.168.6.135:8888 // 这个是我们远程服务所在IP
set APPDIR=C:\simpapp //源程序所在目录
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
5.修改编译远程客户端程序Simplecl.c 为了实现远程初始化,需要在客户端程序的tpinit函数前中加入一行代码
tuxputenv("WSNADDR=//192.168.6.135:8888");
当然,为了使得程序可移植性更强,可以从系统变量中读取这个字符串。
6.编译客户端程序
buildclient -o wsimpcl -f simpcl.c
若成功,则可发现在目录下出现了wsimpcl.exe文件。
7.运行客户端
C:\simpapp> wsimpcl "hello,wenwen"
Returned string is: HELLO,WENWEN
客户端会将一个字符串传送给服务器,服务器返回该字符串的大写形式。变成大写说明成功。注意,要关闭服务器防火墙,否则不会不成功。
七、如何启动和使用WebGUI管理工具
1.打开windos控制台
1) 启动web控制台服务
tuxwsvr -l //192.168.6.135:8080 -i C:\tuxedo\tuxedo11gR1\udataobj\tuxwsvr.ini
2)启动服务侦听
wlisten
2.打开IE,在地址栏里打入 http://192.168.6.135:8080/webguitop.html,在页面下部可以看到进入Tuxedo管理控制台的按钮。
3.点击启动gui窗口的按钮,然后输入安装Tuxedo时的TLISTEN密码(此密码为你安装Tuxedo时设定),gui管理工具为JavaApplet程序,请确保你的电脑已安装JAVA虚拟机运行环境;
5.管理控制台中可以查看和管理Tuxedo服务器,比如察看日志等。
七、查看服务状态
1.进入管理近制台 tmadmin
C:\Users\admin>tmadmin
tmadmin - Copyright (c) 1996-2010 Oracle.
Portions * Copyright 1986-1997 RSA Data Security, Inc.
All Rights Reserved.
Distributed under license by Oracle.
Tuxedo is a registered trademark.
2. 查看交易 psr,其中RqDone为交易次数
> psr
Prog Name Queue Name Grp Name ID RqDone Load Done Current Service
--------- ---------- -------- -- ------ --------- ---------------
GWTDOMAIN.exe 00004.00040 GROUP4 40 0 0 ( IDLE )
DMADM.exe 00004.00020 GROUP4 20 6 300 ( IDLE )
BBL.exe 123456 simple 0 35 1750 ( IDLE )
simpserv.exe 00001.00001 GROUP1 1 2 100 ( IDLE )
WSL.exe 00001.00005 GROUP1 5 0 0 ( IDLE )
GWADM.exe 00004.00030 GROUP4 30 0 0 ( IDLE )
3.退出控制台 quit
> quit
wlisten wlisten