Chinaunix首页 | 论坛 | 博客
  • 博客访问: 755447
  • 博文数量: 128
  • 博客积分: 7079
  • 博客等级: 少将
  • 技术积分: 1326
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-16 08:53
文章分类

全部博文(128)

文章存档

2011年(3)

2010年(12)

2009年(9)

2008年(23)

2007年(61)

2006年(20)

我的朋友

分类:

2009-11-11 11:56:03

Tuxedo安装license例子和远程客户端配置

摘要:本文总结了Tuxedo的安装、license、例子运行和远程客户端配置四个主要问题,给出了一篇真正可用的Tuxedo入门教程。

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上)

本文的源代码在这里,你也许要根据下面的教程修改后才能成功运行:

1.      Tuxedo8.1安装
Tuxedo8.1下载地址如下:

Microsoft Windows (32 bit)

下载完成后直接双击就可以安装了,可以选择安装服务器或者客户端。安装的时候需要选择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地址如下:

下载后解压,将文件名改为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初学者省下一天半的时间陪老婆孩子吧!我花了周末的半天时间来写这篇文档,我真的是个好人!

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wxb_nudt/archive/2009/03/14/3991060.aspx

阅读(4940) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~