Tuxedo是一个很好的交易中间件,包含消息中间件等功能,历史悠久,功能强大,是由BEA开发的,不过现在属于Oracle了。网上的Tuxedo入门教程千千万万,几乎没有一个可用的。尤其是在licsence和远程客户端配置这两个问题上,都没有交代清楚。很符合中国的IT教程特色:“懂得人看得懂,但是并没有更懂;不懂的人更加不懂了!”。
本文集中讨论了四个问题:
l Tuxedo的安装;
l SDK和RTC的License;
l Simpapp例子
l 远程客户端配置
好了,开始吧,我的开发环境如下,如果开发环境不同,也许本教程不适合你:
l Tuxedo8.1
l VC6
l 服务器:windows XP
l 客户端:Windows XP(VMWARE上)
本文的源代码在这里,你也许要根据下面的教程修改后才能成功运行:
http://download.csdn.net/source/1107802
1. Tuxedo8.1安装 Tuxedo8.1下载地址如下:
Microsoft Windows (32 bit) http://ftpmain.bea.com/download/pub/tuxedo...uxedo81_win.exe
下载完成后直接双击就可以安装了,可以选择安装服务器或者客户端。安装的时候需要选择bea的home目录和Tuxedo的目录,都可以采用默认配置。服务端还需要指定tlisten密码。其他都暂时不需要配置,包括license都可以留到后面配置。
2. License Tuxedo的license分为SDK和RTC两种,SDK即开发版,RTC即发布版。我刚开始就是得到了一个RTC,兴高采烈的run例子的时候编译不过,告诉我“你没有一个合法的SDK license”。其实bea已经公布了所有的license,直接去官方网站下载就可以了,不要到处找所谓的无限制xx license,Tuxedo8.1的SDK license地址如下:
http://licensecodes.oracle.com/downloads/LIC-TUX81-SDK-56B.zip
下载后解压,将文件名改为lic.txt,然后拷贝到TUXEDO_HOME\udataobj目录下面就可以了。我的TUXEDO_HOME是C:\bea\tuxedo8.1。
拷贝完成后license马上生效。
3. Simpapp例子 Simpapp是Tuxedo自带的一个简单例子,只有服务器版本带有例子程序。我的例子在C:\bea\tuxedo8.1\samples\atmi\simpapp。将该例子拷贝到另外一个目录,例如:C:\tuxedo_test\simpapp。
例子中有如下几个文件:
l README和README.NT,是说明文件,但是我认为说得不详细,起码license和远程客户端配置就没说清楚;
l setenv.cmd,设置环境变量的批处理文件;
l ubbsimple,Tuxedo的应用程序配置文件,它会被编译为二进制的配置文件,所有服务端程序都需要该配置文件;
l simpapp.nt,makefile文件,用来编译服务器和客户端程序;
l simpcl.c,客户端源程序;
l simpserv.c,服务端源程序;
要编译运行Simpapp例子,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。
注意:这是本地客户端的步骤,若是远程客户端,还有一些变动。
设置环境变量 首先,把本文的系统相关变量列举如下,大家要根据自己的情况在下面的各种配置文件中更改:
Tuxedo目录:C:\bea\tuxedo8.1
Tuxedo应用程序目录:C:\tuxedo_test\simpapp
服务器IP:192.168.222.1
客户端IP:192.168.222.2
修改setenv.bat文件:其解释已经在源代码中
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
rem 设置TUXEDO应用程序配置文件
set TUXCONFIG=%APPDIR%\tuxconfig
然后打开一个windows控制台,将目录变更为tuxedo应用程序所在目录,即C:\tuxedo_test\simpapp,运行setenv.bat。
C:\tuxedo_test\simpapp>setenv
修改编译配置文件 在修改配置文件前,先得到自己的计算机名称,运行:
C:\tuxedo_test\simpapp>echo %computername%
就可以得到自己的计算机名称,一般都是大写的。
Ubbsimple是本程序(即simpapp)的配置文件,将其修改为:
*RESOURCES
IPCKEY 123496 #这个数字可以自己定
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="C:\tuxedo_test\simpapp"
TUXCONFIG="C:\tuxedo_test\simpapp\tuxconfig"
TUXDIR="C:\bea\tuxedo8.1"
"WXB" LMID=simple #注意,把”WXB”改成自己的计算机名称
*GROUPS
GROUP1
LMID=simple GRPNO=1 OPENINFO=NONE
*SERVERS
DEFAULT:
CLOPT="-A"
simpserv SRVGRP=GROUP1 SRVID=1
*SERVICES
TOUPPER
配置文件是Tuxedo中最繁琐的部分,稍有不对服务就无法发布和执行,所以一定要仔细检查。目前不需要太多了解,按我写的做就可以了。注意,配置文件和源程序的编译链接无关,只和服务发布相关,客户端也不需要配置文件。
修改完配置文件后,就需要将其编译为二进制的配置文件,其名称和目录由系统变量TUXCONFIG决定,该变量已经在setenv.bat中设置了,此处是C:\tuxedo_test\simpapp\\tuxconfig,这个tuxconfig就是服务用来发布时的二进制配置文件。
编译配置文件:
C:\tuxedo_test\simpapp>tmloadcf -y ubbsimple
若成功完成,则会生成tuxconfig。
编译源程序 使用makefile的方式编译源程序,这里我使用的是vc6自带的nmake命令,要确保你的vc相关目录已经正确在windows的path变量中设置。Makefile文件已经写好,不需要更改,即simpapp.nt。执行命令如下:
C:\tuxedo_test\simpapp>nmake -f simpapp.nt
当然,如果你不熟悉makefile,那么可以使用如下两个命令别分编译客户端和服务端,其实这两条命令是我从simpapp.nt中抄出来的:
buildclient -o simpcl -f simpcl.c
buildserver -s TOUPPER -o simpserv -f simpserv.c
若成功,则可发现在目录下出现了simpcl.exe和simpserv.exe文件。
启动服务 启动服务非常easy,如果你前面都做对了的话:
C:\tuxedo_test\simpapp>tmboot -y
启动成功后会告诉你,两个进程已经成功启动。
运行客户端 如下命令:
C:\tuxedo_test\simpapp>simpcl "hello,wenwen"
Returned string is: HELLO,WENWEN
客户端会将一个字符串传送给服务器,服务器返回该字符串的大写形式。为什么是“hello,wenwen”而不是“hello,tuxedo”呢?嗯,因为写到这儿的时候刚好雯雯到我身边来了。
关闭服务 关闭服务很容易,而且不会失败:
C:\tuxedo_test\simpapp>tmshutdown –y
4. 远程客户端配置 好了,重点终于来了。毕竟对于大部分人来说,用中间件就是为了使用远程客户端,本地客户端只是玩玩而已嘛。远程客户端需要服务器端修改一些配置,远程客户端也要进行一些配置。
服务器端 要编译运行Simpapp例子,使其能够为本地客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译源程序;4)启动服务;5)运行客户端;6)关闭服务。
要编译运行Simpapp例子,使其能够为远程客户端提供服务,需要六个步骤:1)设置环境变量;2)修改编译配置文件;3)编译远程客户端源程序;4)启动服务;5)运行远程客户端;6)关闭服务。
为了不让读者出错,我还是用最详细的方式把这些步骤都完成写一遍,当然,与上面不同的部分会用红色标注出来。
(1)设置环境变量
再次修改seten.bat文件:
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置WSN地址和端口
set WSNADDR=\\192.168.222.1:8888
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
rem 设置TUXEDO应用程序配置文件
set TUXCONFIG=%APPDIR%\tuxconfig
注意,其中加入了WSN地址和端口的配置,地址就是本服务器IP地址,端口可以随意指定,只要不冲突就好。
运行setenv
C:\tuxedo_test\simpapp>setenv
(2)修改编译配置文件
再次修改ubbsimple
*RESOURCES
IPCKEY 123496 #这个数字可以自己定
DOMAINID simpapp
MASTER simple
MAXACCESSERS 10
MAXSERVERS 5
MAXSERVICES 10
MODEL SHM
LDBAL N
*MACHINES
DEFAULT:
APPDIR="C:\tuxedo_test\simpapp"
TUXCONFIG="C:\tuxedo_test\simpapp\tuxconfig"
TUXDIR="C:\bea\tuxedo8.1"
"WXB" LMID=simple #注意,把"WXB"改成自己的计算机名称
MAXWSCLIENTS=5 #指定的最大客户端连接数
*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.222.1:8888 -m 2 -M 5 -x 10" #WSL发布地址
*SERVICES
TOUPPER
仅仅增加了两行代码,即最大客户端连接数和WSL的发布地址。其具体意义可以看书,这个倒是很多书都说清楚了。
编译配置文件:
C:\tuxedo_test\simpapp>tmloadcf -y ubbsimple
(3)编译远程客户端源程序
上面已经编译了服务端和本地客户端程序,远程客户端程序的编译下节再说。
(4)启动服务
同上。不过这次会启动三个进程,其中一个是WSL。Look:
C:\tuxedo_test\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.222.1:8888 -m 2 -M 5 -x 10 :
process id=760 ... Started.
3 processes started.
(6)运行远程客户端
下面详细交代。
(7)关闭服务
同上。
远程客户端 运行远程客户端需要三个步骤:1)设置环境;2)修改编译远程客户端程序;3)运行。
首先,将如下文件拷贝到远程客户端计算机:
l Setenv.bat
l Simplecl.c
l Simpapp.nt
(1)设置环境
根据远程客户端的系统相关配置修改setenv.bat,注意WSNADDR要和服务器的一致:
rem 设置TUXEDO目录
set TUXDIR=C:\bea\tuxedo8.1
rem 设置WSN地址和端口
set WSNADDR=\\192.168.222.1:8888
rem 设置TUXEDO应用程序目录
set APPDIR=C:\tuxedo_test\simpapp
rem 设置系统path
set PATH=%TUXDIR%\bin;%APPDIR%;%PATH%
然后执行setenv:
C:\tuxedo_test\simpapp>setenv
(2)修改编译远程客户端程序
为了实现远程初始化,需要在客户端程序的tpinit函数前中加入一行代码:
tuxputenv("WSNADDR=//192.168.222.1:8888");
当然,为了使得程序可移植性更强,可以从系统变量中读取这个字符串。
然后,用makefile生成远程客户端程序:
C:\tuxedo_test\simpapp>nmake -f simpapp.nt wsimpcl.exe
不懂nmake的可以执行如下命令:
buildclient -w -o wsimpcl -f simpcl.c
成功后得到远程客户端执行程序wsimpcl.exe。
(3)运行
C:\tuxedo_test\simpapp>wsimpcl "hello,remote wenwen"
Returned string is: HELLO,REMOTE WENWEN
为什么是”hello,remote wenwen”呢?因为此时雯雯已经和妈妈在卧室睡着了。
5. 总结 但愿此文能够使大家熟悉Tuxedo的时间缩短一点,不要像我一样用了两天时间到处找资料。其中,SDK和RTC license的问题就花了我一个下午;配置远程客户端花了我一天的时间。其实有好的资料的话,所有的安装配置运行估计一个上午就全部搞定了。
愿中国和所有懂中文的Tuxedo初学者省下一天半的时间陪老婆孩子吧!我花了周末的半天时间来写这篇文档,我真的是个好人!
|
相关推荐
tuxedo配置参数详解及远程客户端配置[借鉴].pdf
本文总结了Tuxedo的安装、license、例子运行和远程客户端配置四个主要问题,给出了一篇真正可用的Tuxedo入门教程。这个是该文章的例子,文章地址在:http://blog.csdn.net/wxb_nudt
tuxedo 本地和远程客户端
tuxedo license (9.0/9.1/10.0)
tuxedo安装与配置
TUXEDO安装配置规范,每类服务器在项目实施中总是按其规范化去布置。此文档就是TUXEDO的配置规范。
在Linux下安装和配置Tuxedo,对于新手上路,很有裨益
tuxedo安装和配置(linux).doc
TUXEDO第七章客户端编程
通过本人的尝试,经过了部署成功后总结出来的tuxedo中间件在windows平台上的部署文档,提供给大伙作为参考。
TUXEDO SDK license 即开发的license,用这个license注册TUXEDO可以进行编译。 适用32位的操作系统。
tuxedo8.1 SDK license
TUXEDO安装手册.pdf
tuxedo安装文档,tuxedo在linux上的安装,把安装遇到的问题也写了进去。 安装完成后编译simpapp可以测试安装
tuxedo10 sdk license
tuxedo安装步骤
2.5远程客户端配置 22 2.6 Tuxedo Domains配置 23 3. TUXEDO的缓冲区 27 3.1 概述 27 3.2 FML缓冲区 27 3.2 FML域表文件 29 3.3与缓冲区使用有关的函数 32 3.4 程序中的例子 34 4. TUXEDO应用程序开发 35 4.1 常用的...
服务端配置:http://blog.csdn.net/lu476036355/article/details/13505123 代码包含两个示例: 1、/simpapp 2、/servlet/client
TUXEDO安装手册包括6部分: 安全前准备工作 在unix上安装tuxedo 在windows上安装tuxedo 安装license 建立tuxedo和数据库之间的连接 调试子程序
linux系统tuxedo安装指导借鉴.pdf