转载百度网友isees的博客,博主实在写的比较详尽明了,特此转载一下,希望对初学tuxedo的朋友有所帮助拉.
Tuxedo安装license例子和远程客户端配置
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安装 Microsoft Windows (32 bit) http://ftpmain.bea.com/download/pub/tuxedo...uxedo81_win.exe 下载完成后直接双击就可以安装了,可以选择安装服务器或者客户端。安装的时候需要选择bea的home目录和Tuxedo的目录,都可以采用默认配置。服务端还需要指定tlisten密码。其他都暂时不需要配置,包括license都可以留到后面配置。 2. 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例子 例子中有如下几个文件: 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。 编译源程序 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文件。 启动服务 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)关闭服务。 为了不让读者出错,我还是用最详细的方式把这些步骤都完成写一遍,当然,与上面不同的部分会用红色标注出来。 (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)关闭服务 同上。 远程客户端 首先,将如下文件拷贝到远程客户端计算机: 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初学者省下一天半的时间陪老婆孩子吧!我花了周末的半天时间来写这篇文档,我真的是个好人! |