一、TUXEDO两种客户端类
TUXEDO有两种类型的客户端,即本地客户端,和工作站客户端,它们与服务器端的关系如图1,本地客户端通过共享内存与服务器通信,从物理上看,总是与服务器部署在同一台主机上。工作站客户端总是使用TCP/IP协议和服务器进行通信,即便两者都部署在同一台主机上,也是如此,在通常情况下,工作站客户端总是部署在服务器之外的主机上。
本地客户端直接通过TUXCONFIG环境变量就可以得到公告板,而工作站客户端则要通过WSNADDR环境变量连接到WSL,再由WSL分配WSH作为请求代理来调用服务。因此,如果本地客户端连接TUXEDO服务失败,首先应该检查的是TUXCONFIG环境变量设置是否正确,如果是工作站客户端,应该检查WSNADDR。 决定客户机属于哪一种类型是在链接时而不是在设计时。同样一个源程序,链接了TUXEDO本地库(libtux.lib)生成的客户端就是本地客户端,链接了/WS库(libwsc.lib、wtuxws32.lib)生成的客户端就是工作站客户端。使用buildclient编译TUXEDO的C语言的客户端时,加��-w选项就可以指示编译器链接/WS库,而不是本地库。如果不加-w,链接的是本地库。因此,对于simpapp来说,如果生成工作站客户端,编译命令应该写成:Buildclient –o wsimpcl –f simpcl.c –w
二、WSL的工作原理
wsl是TUXEDO系统提供的工作站监听服务器,当应用程序启动时,它开始监听服务器上的某个端口,并根据配置指令自动启动若干个WSH,形成“WSH Pool”,如图所示
当客户机执行tpinit连接服务器时,图中的操作1,WSL从“WSH Pool”中取出一个负载最小的WSH,图中的操作2,并当客户请求放到他的请求队列中,图中的操作3。WSH代表客户机,把请求放到服务器的请求队列中,图中的操作4,服务器处理完成请求后,把响应结果传给WSH,WSH再把它返回给客户机,图中的操作5,TUXEDO系统会根据配置指令和并发压力的大小,动态调整“FWSH Pool”中的WSH进程数量。
三、WSL的配置
配置WSL需要对UBBConfignt文件进行3处修改。第一处在*MACHINES部分添加MAXWSCLIENTS参数的定义,这个参数指定了可以同时连接到某台主机上的最大客户端数量,器最大值不得超过lic.txt中定义的并发用户的1.1倍
*MACHINES
MAXWSCLIENTS=50
第二处 是在 *GROUPS部分添加一个新组WSGRP
*GROUPS
WSGRP LMID=SITE1 GRPNO=2
第三处 是在*SERVERS部分添加WSL的配置指令
*SERVERS
WSL SRVID=10 SRVGRP=WSGRP RESTART=Y MAXGEN=10 GRACE=3600
CLOPT=“-A -- -n //10.130.1.199:7110 –m 5 –M 10 –x 5”
"RESTART=Y"表示如果WSL意外终止了,TUXEDO 系统会尝试着重新启动它。在CLOPT参数中,"-n//10.103.1.199:7110"定义了WSL进程监听的IP端口。"-m 5"表示在WSL启动的同时,会启动5个WSH进程,"-M 10"表示WSH Pool中最多只能启动10个进程。"-x 5"表示每个WSH可以同时受理的工作站请求数,取值必须大于1小于4096
四、下面详细说一下远程客户端的配置
对于使用中间件的人来说,主要还是使用远程客户端,本地客户端只是刚刚开始学习的人玩玩而已!远程客户端需要服务器端修改一些配置,当然,客户端也是需要配置的。我记得上一篇文章《xp系统平台下simpapp的运行》中就以本地客户端为主进行练习的,分了7个步骤。同样,要编译运行simpapp例子,使其能够为远程客户端提供服务,需要7个步骤:
1)安装TUXEDO系统和C语言编译器,
2)设置环境变量,
3)修改编译配置文件,
4)编译远程客户端源程序,
5)启动服务,
6)运行远程客户端,
7)关闭服务
第一步,安装TUXEDO系统,一般情况下是,至少两台主机,一台主机安装客户端,一台主机安装服务器端,进行各自的设置!这里安装不步骤就省去了!前面我们选择的是全部安装(即客户端和服务器段全部安装),唯一不同的是客户端和服务器的环境变量分开设置,直接进入环境变量的设置
第二步,设置环境变量,TUXEDO应用程序在建立、启动和运行过程中,要从环境变量中读取一些配置参数,下面就以表格的形式对这些变量的含义和用法进行说明
表一 TUXEDO服务器端环境变量
环境变量 含义和用法
TUXDIR TUXEDO系统的安装路径。只要设置了TUXDIR,TUXEDO的build系统命令就会自 动到$TUXDIR/include和$TUXDIR/lib目录下去找头文件和文件库。
APPDIR 应用程序的存放路径。
TUXCONFIG 应用程序配置文件名
LD_LIBRARY_PATH 这些变量的作用都一样用于指定除了¥TUXDIR/lib目录以外的其他公共库路径。 LIBPATH、LIB LD_LIBRARY_PATH一般用于UNIX系统,SHLIB——PATH用于HP-UX,LIBPATH 用于AIX,LIB用于NT平台
PATH 它应该包含TUXEDO的bin目录
INCLUDE 仅用于NT平台,指定C语言头文件(.h文件)
cc、CFLAGS 仅用于UNIX平台,指定C编译器和编译选项,不是必须的
TUXEDO客户端也需要设置一些环境变量,如表二 表二 TUXEDO服务器端环境变量
环境变量 含义和用法
TUXCONFIG 本地客户机加入TUXEDO系统时,要从这个配置文件中查找公告板信息,仅对本地 客户机意义
WSNADDR 远程客户机加入TUXEDO系统时,要从当地WSNADDR环境变量中读取服务器上 WSL进程监听的IP和端口,仅对远程客户机有意义。
WSTYPE 一个字符串,用于指定/WS的机器类型,仅对客户机有意义。如果与服务器上定义 的TYPE串值相同,则TUXEDO传输系统就不再做码制转换。
上述两张表,主要加深对环境变量的理解。下面开始修改环境变量 再次修改setenv.cmd文件 运行setenv.cmd 第三步,修改编译配置文件 再次修改ubbsimple 编译配置文件: 第三步,编译远程客户端源程序 运行远程客户端需要三个步骤:1)设置环境变量;2)修改编译远程客户端程序;3)运行。
首先,将如下文件拷贝到远程客户端计算机(这里仍是本机):
setenv.cmd、simplecl.c、simpapp.nt
setenv.cmd主要是用来设置环境变量的
然后执行setenv.cmd,和上面一样
这里先编译远程客户端,等服务器开启后,再运行,这里用的是buildclient -o wsimpcl -f simpcl.c -w
第六步,编译启动服务器
使用netstat命令查看网络,可以看到127.0.0.1::7110正在被监听,如图 第七步、运行远程客户端