[原创]远程客户端以及WSL_MQ, Tuxedo及OLTP讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MQ, Tuxedo及OLTP讨论区 »
总帖数
4
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4794 | 回复: 3   主题: [原创]远程客户端以及WSL        下一篇 
meng.luo
注册用户
等级:上尉
经验:657
发帖:22
精华:0
注册:1970-1-1
状态:离线
发送短消息息给meng.luo 加好友    发送短消息息给meng.luo 发消息
发表于: IP:您无权察看 2014-4-30 16:38:13 | [全部帖] [楼主帖] 楼主

一、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正在被监听,如图

    北京联动北方科技有限公司

第七步、运行远程客户端

北京联动北方科技有限公司



赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-5-2 6:54:56 | [全部帖] [楼主帖] 2  楼

对了,楼主,如果远程客户端和Tuxedo服务器之间有防火墙怎么办? 1. 要开放哪些端口? 2. 如果防火墙有内外地址映射呢?(就是内外地址不同)



赞(0)    操作        顶端 
meng.luo
注册用户
等级:上尉
经验:657
发帖:22
精华:0
注册:1970-1-1
状态:离线
发送短消息息给meng.luo 加好友    发送短消息息给meng.luo 发消息
发表于: IP:您无权察看 2014-5-4 1:58:16 | [全部帖] [楼主帖] 3  楼

嗯,对于这个问题,其实,上次你在我的一篇文章中也问过,当时,我只是简单的说了用防火墙的网络地址转换!

然后,对于这个问题,我有写了一篇帖子《远程客户端与服务器之间防火墙问题》,具体,我也是根据我的理解写的,希望大神给我指点指点!

还有,估计帖子写的时间有点长,然后,论坛的网站session保存的时间估计最多1个小时,所以,直接把session关闭了,所以,造成发送帖子的是匿名,我点击了四下,所以,发送了四个匿名....

给版主带来麻烦,深表歉意.....



赞(0)    操作        顶端 
koei
版主
等级:大校
经验:4186
发帖:7
精华:0
注册:2011-7-21
状态:离线
发送短消息息给koei 加好友    发送短消息息给koei 发消息
发表于: IP:您无权察看 2014-5-4 6:56:00 | [全部帖] [楼主帖] 4  楼

第一个问题的回复,楼主非常精准;

第二个问题,我继续在那个帖子里谈了自己的看法 :-)



赞(0)    操作        顶端 
总帖数
4
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论